Function at 0x14020d280
Capabilities:
Decompress data using quicklz

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
mov rsi, r9
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0xa0
mov qword [rbp + 0x10], rcx
mov ecx, 0x64
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x18], rdx
call sub.msvcrt.dll_malloc
mov edx, dword [rsi]
mov rcx, rax
mov r14, rax
call fcn.140210ed0
mov r8d, eax
mov eax, 1
test r8b, r8b
jne 0x14020d2e0
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, 0x20
call sub.msvcrt.dll_malloc
mov ecx, 0x20
mov qword [rsp + 0x80], rax
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0x20]
lea rbx, [rax + 0x40]
mov rcx, rbx
call sub.msvcrt.dll_malloc
mov edx, 0x20
lea rcx, [rax + 0x20]
mov rdi, rax
mov qword [rsp + 0x40], rax
call fcn.140164940
mov eax, dword [r14 + 0x5c]
mov r8, qword [rbp + 0x20]
lea rcx, [rdi + 0x40]
mov rdx, qword [rbp + 0x18]
sub eax, 0x20
add rax, qword [rsi + 8]
movdqu xmm0, xmmword [rax]
movups xmmword [rdi], xmm0
movdqu xmm1, xmmword [rax + 0x10]
movups xmmword [rdi + 0x10], xmm1
movaps xmmword [rsp + 0x90], xmm1
call sub.msvcrt.dll_memcpy
mov eax, dword [r14]
mov r8, qword [rsp + 0x40]
mov r9, rbx
mov rcx, qword [rsp + 0x70]
mov edx, 0x20
test eax, eax
je 0x14020da30
cmp eax, 3
je 0x14020da30
call fcn.140054790
mov ebx, dword [r14 + 0x38]
lea rcx, [rbx*4]
call sub.msvcrt.dll_malloc
lea rcx, [rbx + rbx]
mov r15, rax
call sub.msvcrt.dll_malloc
mov r12d, dword [r14 + 4]
mov qword [rsp + 0x90], rax
mov rbx, r12
shl r12, 3
mov rcx, r12
call sub.msvcrt.dll_malloc
mov rcx, r12
mov qword [rsp + 0x68], rax
call sub.msvcrt.dll_malloc
mov rcx, r12
mov qword [rsp + 0x38], rax
mov rdi, rax
call sub.msvcrt.dll_malloc
mov rcx, r12
mov qword [rsp + 0x78], rax
call sub.msvcrt.dll_malloc
imul ebx, dword [r14 + 0x30]
mov r12, rax
shl rbx, 3
mov rcx, rbx
call sub.msvcrt.dll_malloc
mov rcx, rbx
mov r13, rax
call sub.msvcrt.dll_malloc
mov rcx, rbx
mov qword [rsp + 0x58], rax
call sub.msvcrt.dll_malloc
mov r8, r14
mov qword [rsp + 0x60], rax
mov rcx, rax
mov eax, dword [r14 + 0x5c]
lea edx, [rax - 0x40]
add rdx, qword [rsi + 8]
call fcn.140157120
cmp dword [r14], 2
jbe 0x14020d908
mov dword [rsp + 0x54], 0
xor ebx, ebx
mov qword [rbp + 0x28], rsi
mov qword [rsp + 0x48], r12
mov r12, rdi
mov rsi, qword [rsp + 0x68]
add dword [rsp + 0x54], 1
mov r9, r14
xor edi, edi
mov eax, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
mov r8d, eax
call fcn.1401ffa90
mov rdx, rsi
mov r8, r14
mov rcx, r12
call fcn.140155e90
mov eax, dword [r14 + 0x30]
mov rsi, qword [rsp + 0x60]
test eax, eax
je 0x14020d4b6
nop dword [rax]
mov ecx, edi
imul ecx, dword [r14 + 4]
mov r9, r14
mov r8, r12
add edi, 1
shl rcx, 3
lea rdx, [rsi + rcx]
add rcx, r13
call fcn.1401538b0
cmp dword [r14 + 0x30], edi
ja 0x14020d490
mov r9, qword [rbp + 0x20]
mov r8, qword [rbp + 0x18]
mov qword [rsp + 0x20], r14
mov rdx, r13
mov rsi, qword [rsp + 0x80]
mov rcx, rsi
call fcn.140127320
mov r8, rsi
mov r9, r14
mov rcx, r15
mov rsi, qword [rsp + 0x90]
mov rdx, rsi
call fcn.140113100
mov rax, qword [rbp + 0x28]
mov r9, rsi
mov r8, r15
mov rsi, qword [rsp + 0x78]
mov rdx, qword [rax + 8]
mov qword [rsp + 0x20], r14
mov rcx, rsi
call fcn.14020b910
mov rdx, qword [rsp + 0x68]
mov r8, rsi
mov r9, r14
mov rcx, qword [rsp + 0x48]
call fcn.140152e50
mov r8d, dword [r14 + 4]
test r8d, r8d
je 0x14020d572
mov eax, dword [r14 + 0x50]
mov r9d, dword [r14 + 0x28]
mov rsi, qword [rsp + 0x48]
sub r9, rax
mov eax, r8d
mov rdx, rsi
lea r11, [rsi + rax*8]
nop word [rax + rax]
mov rax, qword [rdx]
mov rcx, rax
sar rcx, 0x3f
xor rax, rcx
sub rax, rcx
cmp rax, r9
jg 0x14020d44f
add rdx, 8
cmp rdx, r11
jne 0x14020d550
mov eax, ebx
mov qword [rsp + 0x30], r12
mov rsi, qword [rsp + 0x58]
xor edi, edi
mov ebx, r8d
jmp 0x14020d5fa
lea eax, [rdi + 1]
mov edx, ebx
mov r8d, ebx
mov r9, qword [rsp + 0x90]
imul rdx, rax
mov r12, rax
mov rax, qword [rbp + 0x28]
imul r8d, edi
add rdx, qword [rax + 8]
mov qword [rsp + 0x20], r14
lea rcx, [rsi + r8*8]
mov r8, r15
call fcn.14020b910
mov eax, edi
imul eax, dword [r14 + 4]
mov r9, r14
shl rax, 3
lea rcx, [r13 + rax]
lea r8, [rsi + rax]
mov rdx, rcx
call fcn.140156250
mov ebx, dword [r14 + 4]
mov rdx, r14
imul edi, ebx
lea rcx, [r13 + rdi*8]
call fcn.140211030
test eax, eax
jne 0x14020de28
mov edi, r12d
cmp dword [r14 + 0x30], edi
ja 0x14020d588
mov r12, qword [rsp + 0x30]
mov ebx, eax
test eax, eax
jne 0x14020d44f
mov r12, qword [rsp + 0x48]
mov ecx, dword [r14 + 0x58]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0x10], rcx
call sub.msvcrt.dll_malloc
mov rsi, qword [rbp + 0x10]
mov r10d, dword [r14]
mov qword [rsi + 8], rax
cmp r10d, 1
jbe 0x14020da40
mov r11d, dword [r14 + 0x3c]
mov esi, dword [r14 + 4]
lea edx, [r10 - 2]
imul esi, r11d
mov dword [rsp + 0x54], esi
cmp edx, 1
ja 0x14020de38
shr esi, 5
mov edi, esi
je 0x14020d852
mov esi, r11d
xor ecx, ecx
xor edx, edx
shr esi, 1
nop dword [rax + rax]
lea r8d, [rdx + 1]
mov r11d, ecx
mov r9, qword [r12 + r8*8]
mov r8d, edx
mov r8, qword [r12 + r8*8]
mov ebx, r9d
shr r9, 0xa
shl ebx, 0x16
and r8d, 0x3fffff
and r9d, 0xfff
or r8d, ebx
mov dword [rax + r11*4], r8d
lea r8d, [rdx + 2]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 1]
mov ebx, r11d
shr r11, 0x14
shl ebx, 0xc
and r11d, 3
or r9d, ebx
lea ebx, [rcx + 2]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 4]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 3]
mov r8, qword [r12 + r8*8]
shl r8d, 2
and r8d, 0xfffffc
or r8d, r11d
mov r11d, r9d
shr r9, 8
shl r11d, 0x18
and r9d, 0x3fff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 5]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 3]
mov ebx, r11d
shr r11, 0x12
shl ebx, 0xe
and r11d, 0xf
or r9d, ebx
lea ebx, [rcx + 4]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 7]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 6]
mov r8, qword [r12 + r8*8]
shl r8d, 4
and r8d, 0x3fffff0
or r8d, r11d
mov r11d, r9d
shr r9, 6
shl r11d, 0x1a
movzx r9d, r9w
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 8]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 5]
mov ebx, r11d
shr r11, 0x10
shl ebx, 0x10
and r11d, 0x3f
or r9d, ebx
lea ebx, [rcx + 6]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0xa]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 9]
mov r8, qword [r12 + r8*8]
shl r8d, 6
and r8d, 0xfffffc0
or r8d, r11d
mov r11d, r9d
shr r9, 4
shl r11d, 0x1c
and r9d, 0x3ffff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0xb]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 7]
mov ebx, r11d
shr r11, 0xe
shl ebx, 0x12
movzx r11d, r11b
or r9d, ebx
lea ebx, [rcx + 8]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0xd]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0xc]
mov r8, qword [r12 + r8*8]
shl r8d, 8
and r8d, 0x3fffff00
or r8d, r11d
mov r11d, r9d
shr r9, 2
shl r11d, 0x1e
and r9d, 0xfffff
or r8d, r11d
lea r11d, [rcx + 9]
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0xe]
mov r8, qword [r12 + r8*8]
mov ebx, r8d
shr r8, 0xc
shl ebx, 0x14
and r8d, 0x3ff
or r9d, ebx
mov dword [rax + r11*4], r9d
lea r9d, [rdx + 0xf]
lea r11d, [rcx + 0xa]
add ecx, esi
mov r9, qword [r12 + r9*8]
add edx, 0x10
shl r9d, 0xa
or r9d, r8d
mov dword [rax + r11*4], r9d
cmp ecx, edi
jb 0x14020d670
mov rsi, qword [rsp + 0x80]
mov edx, dword [rsp + 0x54]
mov rcx, r14
movdqu xmm5, xmmword [rsi + 0x10]
movdqu xmm3, xmmword [rsi]
shr edx, 3
add rax, rdx
movups xmmword [rax], xmm3
movups xmmword [rax + 0x10], xmm5
mov rax, qword [rbp + 0x10]
movaps xmmword [rsp + 0x80], xmm5
mov dword [rax], r10d
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x70]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll_free
mov rcx, r15
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x38]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x78]
call sub.msvcrt.dll_free
mov rcx, r12
call sub.msvcrt.dll_free
mov rcx, r13
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x58]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x14020d2cd
mov rdi, qword [rsp + 0x68]
xor ebx, ebx
mov rdx, qword [rsp + 0x70]
add ebx, 1
mov r9, r14
mov rcx, rdi
mov r8d, ebx
call fcn.1401ffa90
mov rdx, qword [rsp + 0x60]
mov r9, r14
mov r8, rdi
mov rcx, r13
call fcn.1401538b0
mov r9, qword [rbp + 0x20]
mov r8, qword [rbp + 0x18]
mov rdx, r13
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x80]
call fcn.140127320
mov r8, qword [rsp + 0x80]
mov r9, r14
mov rcx, r15
mov rdx, qword [rsp + 0x90]
call fcn.140113100
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x20], r14
mov r8, r15
mov r9, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
call fcn.14020b6f0
mov r8, qword [rsp + 0x78]
mov r9, r14
mov rdx, rdi
mov rcx, r12
call fcn.140152e50
mov r11d, dword [r14 + 4]
test r11d, r11d
je 0x14020decb
mov r8d, dword [r14 + 0x28]
mov eax, dword [r14 + 0x50]
mov rdx, r12
lea r9, [r12 + r11*8]
sub r8, rax
mov rax, qword [rdx]
mov rcx, rax
sar rcx, 0x3f
xor rax, rcx
sub rax, rcx
cmp rax, r8
jg 0x14020d90f
add rdx, 8
cmp rdx, r9
jne 0x14020d9c0
lea rdx, [r11 + r11]
add rdx, qword [rsi + 8]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x20], r14
mov r8, r15
mov r9, qword [rsp + 0x90]
call fcn.14020b6f0
mov r8, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r13
mov r9, r14
call fcn.140156250
mov rdx, r14
mov rcx, r13
call fcn.140211030
test eax, eax
je 0x14020d614
jmp 0x14020d90f
call fcn.140054760
jmp 0x14020d386
mov esi, dword [r14 + 0x3c]
mov edi, dword [r14 + 4]
imul edi, esi
mov dword [rsp + 0x54], edi
shr edi, 5
je 0x14020d852
xor ecx, ecx
xor edx, edx
nop dword [rax]
lea r8d, [rdx + 1]
mov r9d, ecx
mov r11, qword [r12 + r8*8]
mov r8d, edx
mov r8, qword [r12 + r8*8]
mov ebx, r11d
shr r11, 0xb
shl ebx, 0x15
and r8d, 0x1fffff
and r11d, 0x3ff
or r8d, ebx
lea ebx, [rcx + 1]
mov dword [rax + r9*4], r8d
lea r8d, [rdx + 3]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 2]
mov r8, qword [r12 + r8*8]
shl r8d, 0xa
and r8d, 0x7ffffc00
or r8d, r11d
mov r11d, r9d
shr r9, 1
shl r11d, 0x1f
and r9d, 0xfffff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 4]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 2]
mov ebx, r11d
shr r11, 0xc
shl ebx, 0x14
and r11d, 0x1ff
or r9d, ebx
lea ebx, [rcx + 3]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 6]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 5]
mov r8, qword [r12 + r8*8]
shl r8d, 9
and r8d, 0x3ffffe00
or r8d, r11d
mov r11d, r9d
shr r9, 2
shl r11d, 0x1e
and r9d, 0x7ffff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 7]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 4]
mov ebx, r11d
shr r11, 0xd
shl ebx, 0x13
movzx r11d, r11b
or r9d, ebx
lea ebx, [rcx + 5]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 9]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 8]
mov r8, qword [r12 + r8*8]
shl r8d, 8
and r8d, 0x1fffff00
or r8d, r11d
mov r11d, r9d
shr r9, 3
shl r11d, 0x1d
or r8d, r11d
and r9d, 0x3ffff
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0xa]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 6]
mov ebx, r11d
shr r11, 0xe
shl ebx, 0x12
and r11d, 0x7f
or r9d, ebx
lea ebx, [rcx + 7]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0xc]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0xb]
mov r8, qword [r12 + r8*8]
shl r8d, 7
and r8d, 0xfffff80
or r8d, r11d
mov r11d, r9d
shr r9, 4
shl r11d, 0x1c
and r9d, 0x1ffff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0xd]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 8]
mov ebx, r11d
shr r11, 0xf
shl ebx, 0x11
and r11d, 0x3f
or r9d, ebx
lea ebx, [rcx + 9]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0xf]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0xe]
mov r8, qword [r12 + r8*8]
shl r8d, 6
and r8d, 0x7ffffc0
or r8d, r11d
mov r11d, r9d
shr r9, 5
shl r11d, 0x1b
movzx r9d, r9w
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x10]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 0xa]
mov ebx, r11d
shr r11, 0x10
shl ebx, 0x10
and r11d, 0x1f
or r9d, ebx
lea ebx, [rcx + 0xb]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0x12]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0x11]
mov r8, qword [r12 + r8*8]
shl r8d, 5
and r8d, 0x3ffffe0
or r8d, r11d
mov r11d, r9d
shr r9, 6
shl r11d, 0x1a
or r8d, r11d
and r9d, 0x7fff
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x13]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 0xc]
mov ebx, r11d
shr r11, 0x11
shl ebx, 0xf
and r11d, 0xf
or r9d, ebx
lea ebx, [rcx + 0xd]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0x15]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0x14]
mov r8, qword [r12 + r8*8]
shl r8d, 4
and r8d, 0x1fffff0
or r8d, r11d
mov r11d, r9d
shr r9, 7
shl r11d, 0x19
and r9d, 0x3fff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x16]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 0xe]
mov ebx, r11d
shr r11, 0x12
shl ebx, 0xe
and r11d, 7
or r9d, ebx
lea ebx, [rcx + 0xf]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0x18]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0x17]
mov r8, qword [r12 + r8*8]
shl r8d, 3
and r8d, 0xfffff8
or r8d, r11d
mov r11d, r9d
shr r9, 8
shl r11d, 0x18
and r9d, 0x1fff
or r8d, r11d
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x19]
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 0x10]
mov ebx, r11d
shr r11, 0x13
shl ebx, 0xd
and r11d, 3
or r9d, ebx
lea ebx, [rcx + 0x11]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0x1b]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0x1a]
mov r8, qword [r12 + r8*8]
shl r8d, 2
and r8d, 0x7ffffc
or r8d, r11d
mov r11d, r9d
shl r11d, 0x17
or r8d, r11d
shr r9, 9
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x1c]
and r9d, 0xfff
mov r11, qword [r12 + r8*8]
lea r8d, [rcx + 0x12]
mov ebx, r11d
shr r11, 0x14
shl ebx, 0xc
and r11d, 1
or r9d, ebx
lea ebx, [rcx + 0x13]
mov dword [rax + r8*4], r9d
lea r8d, [rdx + 0x1e]
mov r9, qword [r12 + r8*8]
lea r8d, [rdx + 0x1d]
mov r8, qword [r12 + r8*8]
add r8d, r8d
and r8d, 0x3ffffe
or r8d, r11d
mov r11d, r9d
shr r9, 0xa
shl r11d, 0x16
and r9d, 0x7ff
or r8d, r11d
lea r11d, [rcx + 0x14]
add ecx, esi
mov dword [rax + rbx*4], r8d
lea r8d, [rdx + 0x1f]
add edx, 0x20
mov r8, qword [r12 + r8*8]
shl r8d, 0xb
or r8d, r9d
mov dword [rax + r11*4], r8d
cmp edi, ecx
ja 0x14020da60
jmp 0x14020d852
mov r12, qword [rsp + 0x30]
mov ebx, eax
jmp 0x14020d44f
cmp r10d, 4
jne 0x14020d852
mov ebx, esi
shr ebx, 5
je 0x14020d852
shr r11d, 3
xor r9d, r9d
xor r8d, r8d
nop word [rax + rax]
lea edx, [r8 + 1]
mov ecx, r8d
mov esi, r9d
mov rdx, qword [r12 + rdx*8]
mov rcx, qword [r12 + rcx*8]
mov edi, edx
and ecx, 0xffffff
shr rdx, 8
shl edi, 0x18
movzx edx, dx
or ecx, edi
mov dword [rax + rsi*4], ecx
lea ecx, [r8 + 2]
lea esi, [r9 + 1]
mov rcx, qword [r12 + rcx*8]
mov edi, ecx
shr rcx, 0x10
shl edi, 0x10
movzx ecx, cl
or edx, edi
mov dword [rax + rsi*4], edx
lea edx, [r8 + 3]
lea esi, [r9 + 2]
add r9d, r11d
mov rdx, qword [r12 + rdx*8]
add r8d, 4
shl edx, 8
or edx, ecx
mov dword [rax + rsi*4], edx
cmp r9d, ebx
jb 0x14020de60
jmp 0x14020d852
xor edx, edx
jmp 0x14020d9e6