Function at 0x10012f9e0
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 0x10012fa3c
test byte [rcx + 0x1c], 1
je 0x10012fa3c
cmp byte [rcx + 0x19], 4
jb 0x10012fa3c
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov edx, 0x1b
call fcn.10001c7b8
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 0x10012fa8a
lea r8, [0x100014518]
lea rcx, [0x100014530]
mov edx, 0x18b
call fcn.100099ad8
cmp qword [rsp + 0xf0], rsi
jne 0x10012faac
lea r8, [0x100014570]
lea rcx, [0x100014530]
mov edx, 0x18c
call fcn.100099ad8
cmp qword [rsp + 0xf8], rsi
jne 0x10012face
lea r8, [0x100014590]
lea rcx, [0x100014530]
mov edx, 0x18d
call fcn.100099ad8
mov rbx, qword [rsp + 0x100]
test rbx, rbx
jne 0x10012faf3
lea r8, [0x1000145a8]
lea rcx, [0x100014530]
mov edx, 0x18e
call fcn.100099ad8
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 0x10012fb3a
cmp dword [rbp + 8], 3
je 0x10012fb3a
cmp dword [rbp + 8], 2
je 0x10012fb3a
mov ebx, 0x80070057
lea r12, [0x1001653b8]
jmp 0x10012fc22
lea rcx, [rsp + 0x50]
call fcn.1000a06f0
mov ebx, eax
test eax, eax
js 0x10012fff1
cmp dword [rbp + 8], 4
jne 0x10012fdd9
mov r12, qword [rsp + 0xd8]
mov dl, 1
mov rcx, r12
call fcn.10010ad48
mov ebx, eax
test eax, eax
js 0x10012fff1
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0x48]
mov rdx, rsi
call fcn.100123720
mov ebx, eax
test eax, eax
js 0x10012fdcf
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 0x10012fbc0
mov rcx, rbx
call fcn.100134ad4
mov ebx, eax
jmp 0x10012fbcc
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
xor ebx, ebx
test ebx, ebx
jns 0x10012fcb2
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fc10
test byte [rcx + 0x1c], 1
je 0x10012fc10
cmp byte [rcx + 0x19], 2
jb 0x10012fc10
mov r9, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov edx, 0x1c
mov dword [rsp + 0x20], ebx
call fcn.10001daa4
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0xe0]
mov r15, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xd8]
call fcn.10010aed8
test rsi, rsi
je 0x10012fc3d
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rdi, rdi
je 0x10012fc4b
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x10012fc61
mov rcx, r15
call fcn.1000a9128
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r14, r14
je 0x10012fc6f
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
cmp rcx, r12
je 0x10012fc9c
test byte [rcx + 0x1c], 1
je 0x10012fc9c
cmp byte [rcx + 0x19], 4
jb 0x10012fc9c
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov edx, 0x23
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
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.100122f48
mov ebx, eax
test eax, eax
jns 0x10012fd3f
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fc15
test byte [rcx + 0x1c], 1
je 0x10012fc15
cmp byte [rcx + 0x19], 2
jb 0x10012fc15
mov edx, 0x1d
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov r9, rdi
mov dword [rsp + 0x20], eax
call fcn.10001daa4
jmp 0x10012fc15
mov rcx, r12
call fcn.10010aed8
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
lea rbp, [0x1001653b8]
mov rcx, qword [0x1001653b8]
cmp rcx, rbp
je 0x10012fd97
test byte [rcx + 0x1c], 1
je 0x10012fd97
cmp byte [rcx + 0x19], 4
jb 0x10012fd97
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x30], r13
lea r8, [0x100002ea0]
mov edx, 0x22
mov r9, r12
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
call fcn.10012f08c
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 0x10012fc15
mov rdi, qword [rsp + 0x48]
jmp 0x10012fb2e
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0xe0]
lea rdx, [0x100002954]
call fcn.10009b5b0
mov ebx, eax
test eax, eax
js 0x10012ffdf
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 0x10012fe2b
mov rcx, rbx
call fcn.100134ad4
mov ebx, eax
jmp 0x10012fe37
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x70]
xor ebx, ebx
mov rsi, qword [rsp + 0x50]
test ebx, ebx
js 0x10012fdc3
mov rcx, qword [rsp + 0xe0]
lea r8, [rsp + 0x48]
mov rdx, rsi
call fcn.100123528
mov ebx, eax
test eax, eax
jns 0x10012feb4
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012fc10
test byte [rcx + 0x1c], 1
je 0x10012fc10
cmp byte [rcx + 0x19], 2
jb 0x10012fc10
mov r14, qword [rsp + 0xe0]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov r9, r14
mov edx, 0x1e
mov dword [rsp + 0x20], eax
call fcn.10001daa4
mov rdi, qword [rsp + 0x48]
jmp 0x10012fc1d
mov rdi, qword [rsp + 0x48]
test rdi, rdi
jne 0x10012ff09
mov rcx, qword [0x1001653b8]
lea rbp, [0x1001653b8]
cmp rcx, rbp
je 0x10012fd97
test byte [rcx + 0x1c], 1
je 0x10012fd5f
cmp byte [rcx + 0x19], 4
jb 0x10012fd5f
mov r9, qword [rsp + 0xe0]
mov rcx, qword [rcx + 0x10]
lea edx, [rdi + 0x1f]
lea r8, [0x100002ea0]
call fcn.10001da24
jmp 0x10012fd58
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.100121424
test eax, eax
jns 0x10012ff67
mov rcx, qword [0x1001653b8]
lea r12, [0x1001653b8]
cmp rcx, r12
je 0x10012ff6e
test byte [rcx + 0x1c], 1
je 0x10012ff6e
cmp byte [rcx + 0x19], 3
jb 0x10012ff6e
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002ea0]
mov edx, 0x20
mov r9d, eax
call fcn.10001c7dc
jmp 0x10012ff6e
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.100122f48
mov ebx, eax
test eax, eax
jns 0x10012fd47
mov rcx, qword [0x1001653b8]
cmp rcx, r12
je 0x10012fc15
test byte [rcx + 0x1c], 1
je 0x10012fc15
cmp byte [rcx + 0x19], 2
jb 0x10012fc15
mov edx, 0x21
jmp 0x10012fd23
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0xe0]
jmp 0x10012fb2e
mov rsi, qword [rsp + 0x50]
jmp 0x10012fb2e