Function at 0x10002f384
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov r13, r8
mov rsi, rdx
mov rbp, rcx
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f3d9
test byte [rcx + 0x1c], 1
je 0x10002f3d9
cmp byte [rcx + 0x19], 4
jb 0x10002f3d9
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x1a3
call fcn.10001c7b8
xor ebx, ebx
cmp dword [rbp + 0x14c], 1
lea rdi, [0x1000046e0]
mov qword [rsp + 0xe8], rbx
mov r12, rbx
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x50], rbx
mov r14, rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x58], rbx
jne 0x10002f431
lea r8, [0x100004d20]
mov edx, 0x259f
mov rcx, rdi
call fcn.100099ad8
cmp rsi, rbx
jne 0x10002f44a
lea r8, [0x100004dc8]
mov edx, 0x25a0
mov rcx, rdi
call fcn.100099ad8
cmp r13, rbx
jne 0x10002f463
lea r8, [0x100004dd8]
mov edx, 0x25a1
mov rcx, rdi
call fcn.100099ad8
mov qword [r13], rbx
mov r15, qword [rsi + 0xd8]
cmp r15, rbx
jne 0x10002f487
lea r8, [0x100004df0]
mov edx, 0x25a5
mov rcx, rdi
call fcn.100099ad8
mov ecx, 0x208
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rdi, rax
mov qword [rsp + 0x40], rax
cmp rax, rbx
jne 0x10002f567
mov ebx, 0x8007000e
mov rsi, r12
lea rcx, [rbp + 0x28]
call fcn.10010aed8
test ebx, ebx
jns 0x10002f4c2
mov dword [rbp + 0x20], 0x807800c5
mov dword [rbp + 0x24], ebx
test r14, r14
je 0x10002f4d0
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x10002f4e0
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0xe8]
test rcx, rcx
je 0x10002f4f3
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rdi, rdi
je 0x10002f501
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r12, r12
je 0x10002f50f
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rsi, rsi
je 0x10002f51d
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f551
test byte [rcx + 0x1c], 1
je 0x10002f551
cmp byte [rcx + 0x19], 4
jb 0x10002f551
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x1a6
call fcn.10001c7b8
mov eax, ebx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor edx, edx
mov r8d, 0x208
mov rcx, rax
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.1000210d4
mov ebx, eax
test eax, eax
js 0x10002f4a8
lea r12, [rsi + 0xe0]
cmp qword [r12], r14
jne 0x10002f6bb
movdqu xmm0, xmmword [rsi + 0x44]
mov rdx, qword [rbp + 0x1d8]
lea r8, [rsp + 0xe8]
lea rcx, [rsp + 0x60]
movdqu xmmword [rsp + 0x60], xmm0
call fcn.10011eb8c
mov ebx, eax
test eax, eax
js 0x10002f815
test byte [rsi + 0x54], 0x10
jne 0x10002f7ba
mov rcx, qword [rbp + 0x158]
lea r8, [rsp + 0x38]
lea rdx, [0x100002954]
call fcn.10009b5b0
mov ebx, eax
test eax, eax
js 0x10002f7a0
lea rcx, [rbp + 0x28]
xor edx, edx
call fcn.10010ad48
mov ebx, eax
test eax, eax
js 0x10002f7a0
mov r14, qword [rsp + 0x38]
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x10002f63b
mov rcx, r14
call fcn.100134ad4
mov ebx, eax
jmp 0x10002f63d
xor ebx, ebx
test ebx, ebx
js 0x10002f7a5
lea rcx, [rbp + 0x28]
call fcn.10010aed8
mov edx, dword [rsi + 0x54]
lea r8, [rsp + 0xd0]
lea rcx, [rsi + 0x44]
xor r9d, r9d
call fcn.10009c5ec
mov ebx, eax
test eax, eax
js 0x10002f7a5
mov rcx, qword [rsp + 0xd0]
lea rdx, [rsp + 0x58]
call fcn.10009c118
mov ebx, eax
test eax, eax
js 0x10002f7a5
mov r9, qword [rsi + 0x60]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xe8]
mov rcx, rbp
mov qword [rsp + 0x20], r12
call fcn.10002e4dc
mov ebx, eax
test eax, eax
js 0x10002f7a5
mov r13, qword [rsp + 0xe0]
mov rcx, qword [r12]
lea rdx, [rsp + 0x40]
call fcn.10009b37c
mov rdi, qword [rsp + 0x40]
mov ebx, eax
test eax, eax
js 0x10002f7a5
mov rdx, qword [rsi + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
test eax, eax
jne 0x10002f743
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r11d, eax
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f743
test byte [rcx + 0x1c], 1
je 0x10002f743
cmp byte [rcx + 0x19], 3
jb 0x10002f743
mov r9, qword [rsi + 0x60]
mov rcx, qword [rcx + 0x10]
movzx eax, r11w
or eax, 0x80070000
test r11d, r11d
lea r8, [0x100003d08]
cmovle eax, r11d
mov edx, 0x1a5
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call fcn.10001e360
test rdi, rdi
jne 0x10002f760
lea r8, [0x100004e00]
lea rcx, [0x1000046e0]
mov edx, 0x261b
call fcn.100099ad8
mov rdx, rdi
mov rcx, r15
call fcn.10008a328
mov ebx, eax
test eax, eax
js 0x10002f7a5
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.10009b37c
mov r12, qword [rsp + 0xd0]
mov ebx, eax
test eax, eax
js 0x10002f825
mov rax, qword [rsp + 0x30]
xor esi, esi
mov qword [r13], rax
jmp 0x10002f4ab
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
jmp 0x10002f4ab
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f7f6
test byte [rcx + 0x1c], 1
je 0x10002f7f6
cmp byte [rcx + 0x19], 4
jb 0x10002f7f6
mov r9, qword [rsp + 0xe8]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x1a4
call fcn.10001da24
mov rdx, qword [rsp + 0xe8]
mov r8, r12
mov rcx, rbp
call fcn.100039f1c
mov ebx, eax
test eax, eax
jns 0x10002f6bb
jmp 0x10002f7a5
mov r12, qword [rsp + 0xd0]
mov rsi, r14
jmp 0x10002f4ab
mov rsi, qword [rsp + 0x30]
jmp 0x10002f4ab