Function at 0x140022030
Capabilities:
Get disk size

Disassembly:
push rbx
push r12
push r13
push r15
sub rsp, 0x48
mov r10d, dword [0x1401d6d80]
mov r13, rdx
mov eax, 0x2e8ba2e9
mov r11d, r10d
mov rbx, r9
mov r15, r8
mov r12, rcx
imul r11d, r10d
imul r11d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub r11d, edx
cmp r11d, 0x11
jne 0x1400220f2
test r10d, r10d
je 0x1400220f2
nop dword [rax]
mov eax, r10d
and eax, 0x80000001
jge 0x140022091
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400220a8
mov eax, r10d
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
mov dword [0x1401d6d80], eax
jmp 0x1400220b7
lea r10d, [r10*2 + 1]
mov dword [0x1401d6d80], r10d
mov eax, 0x55555556
mov ecx, r10d
imul r10d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
je 0x1400220db
sub ecx, 2
je 0x1400220df
dec ecx
je 0x1400220e2
jmp 0x1400220ed
add r10d, 2
inc r10d
add r10d, 2
mov dword [0x1401d6d80], r10d
test r10d, r10d
jne 0x140022080
mov qword [rsp + 0x40], r14
test r12, r12
je 0x1400223cf
test r8, r8
je 0x1400223cf
test r13b, 3
jne 0x1400223cf
lea r8, [rsp + 0x70]
mov rdx, r13
mov rcx, r12
call fcn.140021f90
test al, al
je 0x1400223cf
mov r14, qword [rsp + 0x70]
cmp r14, rbx
ja 0x1400223cf
mov ecx, dword [0x1401d6d80]
mov qword [rsp + 0x80], rsi
lea eax, [rcx + 1]
lea r8d, [rcx + 2]
imul r8d, eax
mov eax, 0x2aaaaaab
imul r8d, ecx
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub r8d, eax
cmp r8d, 5
jne 0x140022192
mov ecx, 1
mov r8d, 0xb7
mov eax, ecx
dec r8d
lea edx, [rax + rcx]
lea ecx, [rax]
mov eax, edx
jns 0x140022180
mov dword [0x1401d6d80], edx
call fcn.140021d60
call fcn.140021cb0
test al, al
jne 0x1400221b9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
xor esi, esi
xor ebx, ebx
test r13, r13
je 0x1400223a9
mov r8d, dword [0x1401d6d80]
mov qword [rsp + 0x78], rbp
lea r11, [0x1401d6d90]
mov qword [rsp + 0x88], rdi
movzx edi, byte [rsi + r12]
movzx ebp, byte [rsi + r12 + 1]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xd
sub ecx, edx
cmp ecx, 7
jne 0x140022227
call fcn.1400d57c0
lea r11, [0x1401d6d90]
mov r8d, eax
mov dword [0x1401d6d80], eax
movzx edx, byte [rsi + r12 + 2]
movzx r9d, byte [rsi + r12 + 3]
add rsi, 4
cmp dil, 0x3d
je 0x140022248
movzx ecx, dil
movzx edi, byte [rcx + r11]
jmp 0x14002224a
xor edi, edi
cmp bpl, 0x3d
je 0x14002225b
movzx eax, bpl
movzx r10d, byte [rax + r11]
jmp 0x14002225e
xor r10d, r10d
cmp dl, 0x3d
je 0x14002226d
movzx eax, dl
movzx edx, byte [rax + r11]
jmp 0x14002226f
xor edx, edx
cmp r9b, 0x3d
je 0x140022280
movzx eax, r9b
movzx ecx, byte [rax + r11]
jmp 0x140022282
xor ecx, ecx
shl edi, 6
lea eax, [r8 + 1]
add edi, r10d
shl edi, 6
add edi, edx
shl edi, 6
add edi, ecx
lea ecx, [r8 + 2]
imul ecx, eax
imul ecx, r8d
and ecx, 0x80000007
jge 0x1400222b0
dec ecx
or ecx, 0xfffffff8
inc ecx
cmp ecx, 5
jne 0x1400222dc
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov r8d, dword [0x1401d6d80]
test rax, rax
mov eax, 7
cmove r8d, eax
mov dword [0x1401d6d80], r8d
cmp rbx, r14
jae 0x14002230c
mov eax, edi
inc rbx
shr eax, 0x10
mov byte [rbx + r15 - 1], al
cmp rbx, r14
jae 0x14002230c
mov eax, edi
inc rbx
shr eax, 8
mov byte [rbx + r15 - 1], al
cmp rbx, r14
jae 0x14002230c
mov byte [rbx + r15], dil
inc rbx
mov ecx, r8d
mov eax, 0x30c30c31
imul ecx, r8d
imul ecx, r8d
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0x10
jne 0x14002238c
mov rax, qword [str.mTafPJ1lsZlQ]
or r8, 0xffffffffffffffff
mov qword [rsp + 0x30], rax
mov eax, dword [0x140158b50]
mov rcx, r8
mov dword [rsp + 0x38], eax
movzx eax, byte [0x140158b54]
mov byte [rsp + 0x3c], al
lea rax, [rsp + 0x30]
nop
inc rcx
cmp byte [rax + rcx], 0
jne 0x140022360
mov eax, 4
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400d4448
mov rcx, rax
call fcn.1400d5528
mov r8d, dword [0x1401d6d80]
lea r11, [0x1401d6d90]
cmp rsi, r13
jb 0x1400221e1
mov rdi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x78]
mov rax, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x80]
mov qword [rax], r14
mov al, 1
mov r14, qword [rsp + 0x40]
add rsp, 0x48
pop r15
pop r13
pop r12
pop rbx
ret
xor al, al
mov r14, qword [rsp + 0x40]
add rsp, 0x48
pop r15
pop r13
pop r12
pop rbx
ret