Function at 0x140027c00
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rbp, r8
mov r14, rdx
mov r13, rcx
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027c57
test byte [rcx + 0x1c], 1
je 0x140027c57
cmp byte [rcx + 0x19], 4
jb 0x140027c57
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015d600]
mov edx, 0x238
call fcn.140004e50
xor ebx, ebx
mov edi, ebx
mov r15d, ebx
mov esi, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0xa0], ebx
cmp dword [r13 + 0x170], ebx
ja 0x140027c8d
lea r8, str.m_cVolume___0
mov edx, 0x3469
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008f4c8
test r14, r14
jne 0x140027caa
lea r8, str.prgVolumes
mov edx, 0x346a
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008f4c8
mov qword [r14], rbx
mov dword [rbp], ebx
mov eax, dword [r13 + 0x170]
test eax, eax
je 0x140027ce3
mov rcx, qword [r13 + 0xd8]
mov edx, eax
add rcx, 0x14
cmp dword [rcx], 0xc
lea eax, [r15 + 1]
lea rcx, [rcx + 0x170]
cmove eax, r15d
mov r15d, eax
sub rdx, 1
jne 0x140027cc8
mov eax, r15d
imul rbp, rax, 0x78
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
mov r12, rax
test rax, rax
jne 0x140027d0b
mov edi, 0x8007000e
jmp 0x140027fa2
mov r8, rbp
xor edx, edx
mov rcx, r12
call sub.msvcrt.dll_memset
mov eax, ebx
mov dword [rsp + 0xb8], eax
cmp dword [r13 + 0x170], ebx
jbe 0x140027f17
imul r14, rax, 0x170
add r14, qword [r13 + 0xd8]
test rsi, rsi
je 0x140027d55
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov qword [rsp + 0x30], rbx
mov edx, dword [r14 + 0x54]
lea rcx, [r14 + 0x44]
xor r9d, r9d
lea r8, [rsp + 0x30]
call fcn.1400932a4
mov edi, eax
test eax, eax
js 0x14002809a
cmp dword [r14 + 0x14], 0xc
mov rsi, qword [rsp + 0x30]
jne 0x140027dc8
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027ef2
test byte [rcx + 0x1c], 1
je 0x140027ef2
cmp byte [rcx + 0x19], 4
jb 0x140027ef2
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015d600]
mov edx, 0x23a
mov r9, rsi
call fcn.140005f10
jmp 0x140027ef2
movups xmm0, xmmword [r14 + 0x44]
mov ecx, dword [rsp + 0xa0]
xor r8d, r8d
imul rbp, rcx, 0x78
inc ecx
add rbp, r12
mov dword [rsp + 0xa0], ecx
movdqu xmmword [rbp], xmm0
lea rdx, [rbp + 0x18]
movups xmm1, xmmword [r14 + 0x138]
movdqu xmmword [rbp + 0x50], xmm1
mov eax, dword [r14 + 0x54]
mov dword [rbp + 0x10], eax
mov eax, dword [r14 + 0x40]
mov dword [rbp + 0x40], eax
mov rcx, qword [r14 + 0x58]
call fcn.14009039c
mov edi, eax
test eax, eax
js 0x140027f4a
mov rcx, qword [r14 + 0x60]
lea rdx, [rbp + 0x20]
xor r8d, r8d
call fcn.14009039c
mov edi, eax
test eax, eax
js 0x140027f4a
mov byte [rbp + 0x28], bl
lea r8, [rbp + 0x14]
mov al, byte [r14 + 0x68]
mov dl, 1
mov rcx, rsi
mov byte [rbp + 0x29], al
call fcn.14013de5c
mov edi, eax
test eax, eax
js 0x140028068
lea rdx, [rbp + 0x30]
mov rcx, rsi
call fcn.14013cc40
mov edi, eax
test eax, eax
js 0x140028036
lea r9, [rsp + 0x40]
mov qword [rbp + 0x38], rbx
lea r8, [rsp + 0x48]
mov rcx, rsi
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
nop dword [rax + rax]
test eax, eax
jne 0x140027ea2
mov rcx, rsi
call fcn.14013f1f4
mov edi, eax
jmp 0x140027ead
mov rax, qword [rsp + 0x38]
mov qword [rbp + 0x38], rax
mov edi, ebx
test edi, edi
js 0x140027fea
mov rdx, qword [r14 + 0x70]
lea r9, [rbp + 0x48]
movzx ecx, word [r14 + 0x6a]
lea r8, [rbp + 0x44]
call fcn.1400933c0
mov edi, eax
test eax, eax
js 0x140027f4a
mov rax, qword [r14 + 0xe8]
mov qword [rbp + 0x60], rax
mov rax, qword [r14 + 0xf0]
mov qword [rbp + 0x68], rax
mov rax, qword [r14 + 0xf8]
mov qword [rbp + 0x70], rax
mov eax, dword [rsp + 0xb8]
inc eax
mov dword [rsp + 0xb8], eax
cmp eax, dword [r13 + 0x170]
jb 0x140027d2e
mov r14, qword [rsp + 0xa8]
cmp r15d, dword [rsp + 0xa0]
je 0x140027f39
lea r8, str.cVolume__iVolume
mov edx, 0x34d8
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008f4c8
mov rax, qword [rsp + 0xb0]
mov qword [r14], r12
mov r12, rbx
mov dword [rax], r15d
mov rcx, qword [0x140183048]
test rsi, rsi
je 0x140027f6c
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140183048]
test r12, r12
je 0x140027fa9
cmp dword [r13 + 0x170], ebx
jbe 0x140027f93
mov eax, ebx
imul rcx, rax, 0x78
add rcx, r12
call fcn.14010a190
inc ebx
cmp ebx, dword [r13 + 0x170]
jb 0x140027f7a
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027fd6
test byte [rcx + 0x1c], 1
je 0x140027fd6
cmp byte [rcx + 0x19], 4
jb 0x140027fd6
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015d600]
mov edx, 0x23e
call fcn.140004e50
mov eax, edi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027f51
test byte [rcx + 0x1c], 1
je 0x140027f51
cmp byte [rcx + 0x19], 2
jb 0x140027f51
mov edx, 0x23d
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015d600]
mov r9, rsi
mov dword [rsp + 0x20], edi
call fcn.140005f80
jmp 0x140027f4a
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027f51
test byte [rcx + 0x1c], 1
je 0x140027f51
cmp byte [rcx + 0x19], 2
jb 0x140027f51
mov edx, 0x23c
jmp 0x14002801a
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x140027f51
test byte [rcx + 0x1c], 1
je 0x140027f51
cmp byte [rcx + 0x19], 2
jb 0x140027f51
mov edx, 0x23b
jmp 0x14002801a
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x1400280db
test byte [rcx + 0x1c], 1
je 0x1400280db
cmp byte [rcx + 0x19], 2
jb 0x1400280db
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015d600]
mov edx, 0x239
mov r9d, edi
call fcn.140004e7c
mov rsi, qword [rsp + 0x30]
jmp 0x140027f4a
mov rsi, qword [rsp + 0x30]
jmp 0x140027f51