Function at 0x140024b80
Capabilities:
Get disk size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x88], rbx
mov r15, rdx
mov r12, rcx
mov rax, qword [rcx]
xor ebp, ebp
cmp dword [rax - 0x10], ebp
jne 0x140024c44
mov rax, qword [rdx]
lea rdx, [rax - 0x18]
mov rbx, qword [rdx]
cmp dword [rdx + 8], ebp
je 0x140024c04
cmp dword [rdx + 0x10], ebp
jge 0x140024be4
cmp dword [rax - 0xc], ebp
jge 0x140024bd9
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rax - 0x10], ebp
mov rax, qword [r15]
mov word [rax], bp
jmp 0x140024c04
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140024bf4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
add rax, 0x18
mov qword [r15], rax
mov ecx, dword [0x1401a9d80]
imul ecx, ecx
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xd
jne 0x140024c3d
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov al, 1
jmp 0x140024eb3
mov byte [rsp + 0x80], 0
mov eax, dword [0x1401a9d80]
mov ecx, eax
imul ecx, eax
imul ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 0x16
jne 0x140024c8d
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetMailslotInfo]
mov rdi, qword [r12]
lea rcx, [0x1401a19a8]
mov rax, qword [0x1401a19a8]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x90], rbx
test rdi, rdi
je 0x140024ce0
test rdi, 0xffffffffffff0000
jne 0x140024ce0
movzx edi, di
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x140024cf8
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.14001a250
jmp 0x140024cf0
mov rdx, rdi
lea rcx, [rsp + 0x90]
call fcn.140019710
mov rbx, qword [rsp + 0x90]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rbp
or rsi, 0xffffffffffffffff
mov r9d, esi
mov r8, rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r13, eax
test eax, eax
jne 0x140024d47
mov rdx, r12
mov rcx, r15
call fcn.1400023c0
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], esi
jg 0x140024eab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140024eab
mov eax, 2
mul r13
cmovo rax, rsi
mov rcx, rax
call fcn.1400c1e58
mov r14, rax
lea r8, [r13*2]
xor edx, edx
mov rcx, rax
call fcn.1400c7c50
lea edx, [r13*2]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], r14
mov r9d, dword [rbx - 0x10]
mov r8, rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
mov r8d, dword [0x1401a9d80]
lea edx, [r8 + 2]
lea ecx, [r8 + 1]
imul edx, ecx
imul edx, r8d
and edx, 0x80000007
jge 0x140024dbc
dec edx
or edx, 0xfffffff8
inc edx
cmp edx, 1
jne 0x140024dff
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r8d, edx
add r8d, 0x141
movsxd rcx, r8d
mov eax, 4
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400c1e58
mov rcx, rax
call fcn.1400c2f38
test edi, edi
jne 0x140024e29
mov rdx, r12
mov rcx, r15
call fcn.1400023c0
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140024e9e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140024e9e
test r14, r14
je 0x140024e3e
mov rcx, rsi
inc rcx
cmp word [r14 + rcx*2], 0
jne 0x140024e31
mov ebp, ecx
mov r8d, ebp
mov rdx, r14
mov rcx, r15
call fcn.140002460
mov byte [rsp + 0x80], 1
mov ecx, dword [0x1401a9d80]
lea r8d, [rcx + 1]
imul r8d, ecx
mov eax, 0x2aaaaaab
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub r8d, eax
cmp r8d, 0x13
jne 0x140024e89
dec dword [0x1401aa18c]
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140024e9e
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
test r14, r14
je 0x140024eab
mov rcx, r14
call fcn.1400c2f38
movzx eax, byte [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret