Function at 0x10012fa84
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rbx, r9
mov rbp, r8
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10012fae0
test byte [rcx + 0x1c], 1
je 0x10012fae0
cmp byte [rcx + 0x19], 4
jb 0x10012fae0
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov edx, 0x1b
call fcn.10001c854
xor r14d, r14d
xor esi, esi
xor edi, edi
xor r15d, r15d
xor r12d, r12d
xor r13d, r13d
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
test rbx, rbx
jne 0x10012fb2e
lea r8, [0x100014488]
lea rcx, [0x1000144a0]
mov edx, 0x18b
call fcn.10009a050
cmp qword [rsp + 0xf0], rsi
jne 0x10012fb50
lea r8, [0x1000144e0]
lea rcx, [0x1000144a0]
mov edx, 0x18c
call fcn.10009a050
cmp qword [rsp + 0xf8], rsi
jne 0x10012fb72
lea r8, [0x100014500]
lea rcx, [0x1000144a0]
mov edx, 0x18d
call fcn.10009a050
mov rbx, qword [rsp + 0x100]
test rbx, rbx
jne 0x10012fb97
lea r8, [0x100014518]
lea rcx, [0x1000144a0]
mov edx, 0x18e
call fcn.10009a050
mov rax, qword [rsp + 0xf0]
and qword [rax], rsi
mov rax, qword [rsp + 0xe8]
and qword [rax], rsi
mov rax, qword [rsp + 0xf8]
and qword [rax], rsi
and qword [rbx], rsi
cmp dword [rbp + 8], 4
je 0x10012fbde
cmp dword [rbp + 8], 3
je 0x10012fbde
cmp dword [rbp + 8], 2
je 0x10012fbde
mov ebx, 0x80070057
lea r12, [0x1001653b8]
jmp 0x10012fcc6
lea rcx, [rsp + 0x50]
call fcn.1000a0ccc
mov ebx, eax
test eax, eax
js 0x100130095
cmp dword [rbp + 8], 4
jne 0x10012fe7d
mov r12, qword [rsp + 0xd8]
mov dl, 1
mov rcx, r12
call fcn.10010b1d8
mov ebx, eax
test eax, eax
js 0x100130095
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0x48]
mov rdx, rsi
call fcn.1001237c4
mov ebx, eax
test eax, eax
js 0x10012fe73
mov rbx, qword [rbp + 0x10]
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x68]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x10012fc64
mov rcx, rbx
call fcn.100134b20
mov ebx, eax
jmp 0x10012fc70
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
xor ebx, ebx
test ebx, ebx
jns 0x10012fd56
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fcb4
test byte [rcx + 0x1c], 1
je 0x10012fcb4
cmp byte [rcx + 0x19], 2
jb 0x10012fcb4
mov r9, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov edx, 0x1c
mov dword [rsp + 0x20], ebx
call fcn.10001ddb0
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0xe0]
mov r15, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xd8]
call fcn.10010b368
test rsi, rsi
je 0x10012fce1
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rdi, rdi
je 0x10012fcef
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x10012fd05
mov rcx, r15
call fcn.1000a94fc
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r14, r14
je 0x10012fd13
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
cmp rcx, r12
je 0x10012fd40
test byte [rcx + 0x1c], 1
je 0x10012fd40
cmp byte [rcx + 0x19], 4
jb 0x10012fd40
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov edx, 0x23
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
mov rdi, qword [rsp + 0x48]
mov r9, qword [rbp + 0x58]
mov r8, qword [rbp + 0x50]
lea rax, [rsp + 0x60]
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.100122fec
mov ebx, eax
test eax, eax
jns 0x10012fde3
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fcb9
test byte [rcx + 0x1c], 1
je 0x10012fcb9
cmp byte [rcx + 0x19], 2
jb 0x10012fcb9
mov edx, 0x1d
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov r9, rdi
mov dword [rsp + 0x20], eax
call fcn.10001ddb0
jmp 0x10012fcb9
mov rcx, r12
call fcn.10010b368
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
lea rbp, [0x1001653b8]
mov rcx, qword [0x1001653b8]
cmp rcx, rbp
je 0x10012fe3b
test byte [rcx + 0x1c], 1
je 0x10012fe3b
cmp byte [rcx + 0x19], 4
jb 0x10012fe3b
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x30], r13
lea r8, [0x100002e60]
mov edx, 0x22
mov r9, r12
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
call fcn.10012f130
mov rax, qword [rsp + 0xf8]
mov qword [rax], r12
mov rax, qword [rsp + 0xf0]
mov qword [rax], r15
mov rax, qword [rsp + 0xe8]
mov qword [rax], r14
mov rax, qword [rsp + 0x100]
mov qword [rax], r13
lea r12, [0x1001653b8]
jmp 0x10012fcb9
mov rdi, qword [rsp + 0x48]
jmp 0x10012fbd2
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0xe0]
lea rdx, [0x100002934]
call fcn.10009bb88
mov ebx, eax
test eax, eax
js 0x100130083
mov rbx, qword [rsp + 0xe0]
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x10012fecf
mov rcx, rbx
call fcn.100134b20
mov ebx, eax
jmp 0x10012fedb
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x70]
xor ebx, ebx
mov rsi, qword [rsp + 0x50]
test ebx, ebx
js 0x10012fe67
mov rcx, qword [rsp + 0xe0]
lea r8, [rsp + 0x48]
mov rdx, rsi
call fcn.1001235cc
mov ebx, eax
test eax, eax
jns 0x10012ff58
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fcb4
test byte [rcx + 0x1c], 1
je 0x10012fcb4
cmp byte [rcx + 0x19], 2
jb 0x10012fcb4
mov r14, qword [rsp + 0xe0]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov r9, r14
mov edx, 0x1e
mov dword [rsp + 0x20], eax
call fcn.10001ddb0
mov rdi, qword [rsp + 0x48]
jmp 0x10012fcc1
mov rdi, qword [rsp + 0x48]
test rdi, rdi
jne 0x10012ffad
mov rcx, qword [0x1001653b8]
lea rbp, [0x1001653b8]
cmp rcx, rbp
je 0x10012fe3b
test byte [rcx + 0x1c], 1
je 0x10012fe03
cmp byte [rcx + 0x19], 4
jb 0x10012fe03
mov r9, qword [rsp + 0xe0]
mov rcx, qword [rcx + 0x10]
lea edx, [rdi + 0x1f]
lea r8, [0x100002e60]
call fcn.10001db08
jmp 0x10012fdfc
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rsp + 0xd0]
lea rax, [rsp + 0x40]
mov r9b, 1
mov r8, rsi
mov qword [rsp + 0x20], rax
call fcn.1001214c8
test eax, eax
jns 0x10013000b
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x100130012
test byte [rcx + 0x1c], 1
je 0x100130012
cmp byte [rcx + 0x19], 3
jb 0x100130012
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002e60]
mov edx, 0x20
mov r9d, eax
call fcn.10001c878
jmp 0x100130012
lea r12, [0x1001653b8]
mov r9, qword [rbp + 0x58]
mov r8, qword [rbp + 0x50]
mov rdx, qword [rsp + 0x40]
lea rax, [rsp + 0x60]
mov rcx, rdi
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.100122fec
mov ebx, eax
test eax, eax
jns 0x10012fdeb
mov rcx, qword [0x1001653b8]
cmp rcx, r12
je 0x10012fcb9
test byte [rcx + 0x1c], 1
je 0x10012fcb9
cmp byte [rcx + 0x19], 2
jb 0x10012fcb9
mov edx, 0x21
jmp 0x10012fdc7
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0xe0]
jmp 0x10012fbd2
mov rsi, qword [rsp + 0x50]
jmp 0x10012fbd2