Function at 0x10002f464
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 0x10002f4b9
test byte [rcx + 0x1c], 1
je 0x10002f4b9
cmp byte [rcx + 0x19], 4
jb 0x10002f4b9
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x1a3
call fcn.10001c854
xor ebx, ebx
cmp dword [rbp + 0x14c], 1
lea rdi, [0x100004680]
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 0x10002f511
lea r8, [0x100004cc0]
mov edx, 0x259f
mov rcx, rdi
call fcn.10009a050
cmp rsi, rbx
jne 0x10002f52a
lea r8, [0x100004d68]
mov edx, 0x25a0
mov rcx, rdi
call fcn.10009a050
cmp r13, rbx
jne 0x10002f543
lea r8, [0x100004d78]
mov edx, 0x25a1
mov rcx, rdi
call fcn.10009a050
mov qword [r13], rbx
mov r15, qword [rsi + 0xd8]
cmp r15, rbx
jne 0x10002f567
lea r8, [0x100004d90]
mov edx, 0x25a5
mov rcx, rdi
call fcn.10009a050
mov ecx, 0x208
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rdi, rax
mov qword [rsp + 0x40], rax
cmp rax, rbx
jne 0x10002f647
mov ebx, 0x8007000e
mov rsi, r12
lea rcx, [rbp + 0x28]
call fcn.10010b368
test ebx, ebx
jns 0x10002f5a2
mov dword [rbp + 0x20], 0x807800c5
mov dword [rbp + 0x24], ebx
test r14, r14
je 0x10002f5b0
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x10002f5c0
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0xe8]
test rcx, rcx
je 0x10002f5d3
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rdi, rdi
je 0x10002f5e1
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r12, r12
je 0x10002f5ef
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rsi, rsi
je 0x10002f5fd
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f631
test byte [rcx + 0x1c], 1
je 0x10002f631
cmp byte [rcx + 0x19], 4
jb 0x10002f631
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x1a6
call fcn.10001c854
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.100021160
mov ebx, eax
test eax, eax
js 0x10002f588
lea r12, [rsi + 0xe0]
cmp qword [r12], r14
jne 0x10002f79b
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.10011ec30
mov ebx, eax
test eax, eax
js 0x10002f8f5
test byte [rsi + 0x54], 0x10
jne 0x10002f89a
mov rcx, qword [rbp + 0x158]
lea r8, [rsp + 0x38]
lea rdx, [0x100002934]
call fcn.10009bb88
mov ebx, eax
test eax, eax
js 0x10002f880
lea rcx, [rbp + 0x28]
xor edx, edx
call fcn.10010b1d8
mov ebx, eax
test eax, eax
js 0x10002f880
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 0x10002f71b
mov rcx, r14
call fcn.100134b20
mov ebx, eax
jmp 0x10002f71d
xor ebx, ebx
test ebx, ebx
js 0x10002f885
lea rcx, [rbp + 0x28]
call fcn.10010b368
mov edx, dword [rsi + 0x54]
lea r8, [rsp + 0xd0]
lea rcx, [rsi + 0x44]
xor r9d, r9d
call fcn.10009cbc4
mov ebx, eax
test eax, eax
js 0x10002f885
mov rcx, qword [rsp + 0xd0]
lea rdx, [rsp + 0x58]
call fcn.10009c6f0
mov ebx, eax
test eax, eax
js 0x10002f885
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.10002e568
mov ebx, eax
test eax, eax
js 0x10002f885
mov r13, qword [rsp + 0xe0]
mov rcx, qword [r12]
lea rdx, [rsp + 0x40]
call fcn.10009b954
mov rdi, qword [rsp + 0x40]
mov ebx, eax
test eax, eax
js 0x10002f885
mov rdx, qword [rsi + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
test eax, eax
jne 0x10002f823
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r11d, eax
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f823
test byte [rcx + 0x1c], 1
je 0x10002f823
cmp byte [rcx + 0x19], 3
jb 0x10002f823
mov r9, qword [rsi + 0x60]
mov rcx, qword [rcx + 0x10]
movzx eax, r11w
or eax, 0x80070000
test r11d, r11d
lea r8, [0x100003cc8]
cmovle eax, r11d
mov edx, 0x1a5
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call fcn.10001e39c
test rdi, rdi
jne 0x10002f840
lea r8, [0x100004da0]
lea rcx, [0x100004680]
mov edx, 0x261b
call fcn.10009a050
mov rdx, rdi
mov rcx, r15
call fcn.10008a8a0
mov ebx, eax
test eax, eax
js 0x10002f885
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.10009b954
mov r12, qword [rsp + 0xd0]
mov ebx, eax
test eax, eax
js 0x10002f905
mov rax, qword [rsp + 0x30]
xor esi, esi
mov qword [r13], rax
jmp 0x10002f58b
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
jmp 0x10002f58b
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10002f8d6
test byte [rcx + 0x1c], 1
je 0x10002f8d6
cmp byte [rcx + 0x19], 4
jb 0x10002f8d6
mov r9, qword [rsp + 0xe8]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x1a4
call fcn.10001db08
mov rdx, qword [rsp + 0xe8]
mov r8, r12
mov rcx, rbp
call fcn.100039ffc
mov ebx, eax
test eax, eax
jns 0x10002f79b
jmp 0x10002f885
mov r12, qword [rsp + 0xd0]
mov rsi, r14
jmp 0x10002f58b
mov rsi, qword [rsp + 0x30]
jmp 0x10002f58b