Function at 0x140022690
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x14036e3c8]
xor rax, rsp
mov qword [rbp + 0x70], rax
movzx r13d, dl
lea rcx, [rsp + 0x68]
call fcn.140037670
nop
mov rcx, rax
call fcn.140022f80
mov rdx, qword [rax]
xor ebx, ebx
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], bx
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop dword [rax]
inc r8
cmp word [rdx + r8*2], bx
jne 0x140022700
lea rcx, [rbp + 0x50]
call fcn.14000a430
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022732
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
lea rcx, [rsp + 0x70]
call fcn.140035410
nop
mov rcx, rax
call fcn.140022f80
mov rdx, qword [rax]
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], bx
mov r8, rsi
nop
inc r8
cmp word [rdx + r8*2], 0
jne 0x140022760
lea rcx, [rbp + 0x30]
call fcn.14000a430
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022793
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
cmp qword [rbp + 0x60], 1
jb 0x140022d89
cmp qword [rbp + 0x40], 1
jb 0x140022d89
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x20], rbx
mov r9d, 7
mov qword [rbp + 0x28], r9
mov word [rbp + 0x10], bx
lea rax, [rbp + 0x50]
cmp qword [rbp + 0x68], 8
cmovae rax, qword [rbp + 0x50]
movzx edx, word [rax]
mov word [rbp + 0x10], dx
mov ecx, 2
mov qword [rbp + 0x20], rcx
mov dword [rbp + 0x12], 0x3a
mov qword [rbp - 0x10], rbx
mov qword [rbp], rbx
mov qword [rbp + 8], r9
mov word [rbp - 0x10], bx
lea rax, [rbp + 0x30]
cmp qword [rbp + 0x48], 8
cmovae rax, qword [rbp + 0x30]
movzx r8d, word [rax]
mov word [rbp - 0x10], r8w
mov qword [rbp], rcx
mov dword [rbp - 0xe], 0x3a
cmp dx, r8w
jb 0x140022843
mov rax, rbx
ja 0x140022843
cmp rcx, 1
je 0x140022a8e
dec rcx
add rax, 2
movzx edx, word [rbp + rax + 0x10]
movzx r8d, word [rbp + rax - 0x10]
cmp dx, r8w
jae 0x14002281f
xor r12b, r12b
xor dil, dil
nop dword [rax]
lea rcx, [rbp + 0x10]
cmp r9, 8
cmovae rcx, qword [rbp + 0x10]
lea r9, [rsp + 0x78]
lea r8, [rbp - 0x78]
lea rdx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x14002288e
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
lea rcx, str.GetDiskFreeSpaceEx_failed_
call fcn.140039ff0
mov r15, qword [rsp + 0x78]
shr r15, 0x14
lea rcx, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rcx, qword [rbp - 0x10]
lea r9, [rbp - 0x80]
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x1400228d5
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
lea rcx, str.GetDiskFreeSpaceEx_failed_
call fcn.140039ff0
mov r14, qword [rbp - 0x80]
shr r14, 0x14
call fcn.140004ca0
test rax, rax
je 0x140022ef7
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rax, qword [rbp - 0x10]
lea r8, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae r8, qword [rbp + 0x10]
mov qword [rsp + 0x38], 0x1c7
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x28a
mov r9, r15
lea rdx, str.Disk_info:_system_free__s_:_I64dMB__system_benchmark:_I64dMB__install_free__s_:_I64dMB__install_benchmark::_I64dMB
lea rcx, [rsp + 0x40]
call fcn.140012910
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
mov rcx, qword [rsp + 0x40]
call fcn.140039ff0
cmp r15, 0x28a
jae 0x140022b6c
test r12b, r12b
jne 0x140022a96
cmp r14, 0x1c7
jae 0x140022a96
call fcn.140004ca0
test rax, rax
je 0x140022eca
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea r11, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae r11, qword [rbp - 0x10]
lea r10, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae r10, qword [rbp + 0x10]
lea r9, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae r9, qword [rbp - 0x10]
lea r8, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae r8, qword [rbp + 0x10]
lea rdx, [0x140368608]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae rdx, qword [0x140368608]
mov qword [rsp + 0x38], 0x1c7
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x28], 0x28a
mov qword [rsp + 0x20], r10
lea rcx, [rsp + 0x48]
call fcn.140012910
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.140039ff0
test r13b, r13b
jne 0x140022c91
lea r8, [0x1403685a8]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae r8, qword [0x1403685a8]
mov r9d, 1
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
sete dil
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022c5f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x140022c5f
mov r12b, 1
jmp 0x140022846
call fcn.140004ca0
test rax, rax
je 0x140022ed5
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea r9, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae r9, qword [rbp + 0x10]
lea r8, [rbp + 0x10]
cmovae r8, qword [rbp + 0x10]
lea rdx, [0x1403685c8]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae rdx, qword [0x1403685c8]
mov qword [rsp + 0x20], 0x28a
lea rcx, [rsp + 0x50]
call fcn.140012910
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.140039ff0
test r13b, r13b
jne 0x140022c93
lea r8, [0x1403685a8]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae r8, qword [0x1403685a8]
mov r9d, 1
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
sete dil
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022c5f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x140022c5f
cmp r14, 0x1c7
jae 0x140022c48
call fcn.140004ca0
test rax, rax
je 0x140022ee6
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea r9, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae r9, qword [rbp - 0x10]
lea r8, [rbp - 0x10]
cmovae r8, qword [rbp - 0x10]
lea rdx, [0x1403685e8]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae rdx, qword [0x1403685e8]
mov qword [rsp + 0x20], 0x1c7
lea rcx, [rsp + 0x58]
call fcn.140012910
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.140039ff0
test r13b, r13b
jne 0x140022c95
lea r8, [0x1403685a8]
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae r8, qword [0x1403685a8]
mov r9d, 1
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
sete dil
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022c46
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
xor ebx, ebx
cmp r15, 0x28a
jb 0x140022c5f
movzx edi, dil
cmp r14, 0x1c7
cmovae edi, ebx
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022c7d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test dil, dil
je 0x140022d68
mov r9, qword [rbp + 0x28]
xor ebx, ebx
jmp 0x140022850
jmp 0x140022c95
jmp 0x140022c95
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022caf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140022ccb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov bl, 1
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x140022d0d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022d08
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ee0
call fcn.1402434a4
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], 7
mov word [rbp - 0x10], ax
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x140022e17
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022d5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ef1
call fcn.1402434a4
jmp 0x140022e17
cmp r15, 0x28a
jb 0x140022ccb
cmp r14, 0x1c7
jb 0x140022ccb
xor bl, bl
jmp 0x140022ccd
call fcn.140004ca0
mov rcx, rax
test rax, rax
je 0x140022f02
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rbp + 0x30]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rbp + 0x40]
movaps xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [rbp + 0x50]
movaps xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rbp + 0x60]
movaps xmmword [rbp - 0x20], xmm1
lea r9, [rbp - 0x50]
lea r8, [rbp - 0x30]
lea rdx, str.Get_Path_Failed._systemFolderPath__s___installationFolderPath__s_
lea rcx, [rsp + 0x60]
call fcn.140012910
lea r8, [0x140284a60]
lea rdx, str.IsDiskFull
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.140039ff0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140022e15
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
xor bl, bl
mov rdx, qword [rbp + 0x48]
cmp rdx, 8
jb 0x140022e58
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022e52
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022f0d
call fcn.1402434a4
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x140022e94
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022e8f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ec4
call fcn.1402434a4
movzx eax, bl
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.1402435c0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14024a84c
nop
mov ecx, 0x80004005
call fcn.140004b20
nop
mov ecx, 0x80004005
call fcn.140004b20
nop
call fcn.14024a84c
nop
mov ecx, 0x80004005
call fcn.140004b20
nop
call fcn.14024a84c
nop
mov ecx, 0x80004005
call fcn.140004b20
nop
mov ecx, 0x80004005
call fcn.140004b20
nop
call fcn.14024a84c
int3