Function at 0x180098ea0
Capabilities:
Decompress data using aplib

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
movzx eax, byte [rcx]
lea rdi, [r8 + 1]
xor r14d, r14d
mov r13d, r9d
xor r12d, r12d
mov byte [r8], al
mov r11d, edx
mov qword [rbp - 0x18], rdi
xorps xmm0, xmm0
lea rdx, [rcx + 1]
movdqu xmmword [rbp - 0x10], xmm0
mov r9, qword [rbp - 0x10]
xor ebx, ebx
mov r15, r8
mov dword [rbp + 0x50], ebx
mov rsi, r8
mov qword [rbp - 0x20], rdx
mov r8, qword [rbp - 8]
nop dword [rax]
mov rax, r8
dec r8
test rax, rax
jne 0x180098f1a
movzx r9d, byte [rdx]
lea r8d, [rax + 7]
inc rdx
mov qword [rbp - 0x20], rdx
mov eax, r9d
lea r10d, [r9 + r9]
mov r9d, r10d
test al, al
jns 0x18009928a
lea r9, [r8 - 1]
test r8, r8
jne 0x180098f44
movzx r10d, byte [rdx]
lea r9d, [r8 + 7]
inc rdx
mov qword [rbp - 0x20], rdx
lea ecx, [r10 + r10]
test r10b, r10b
jns 0x180099088
lea r8, [r9 - 1]
test r9, r9
jne 0x180098f68
movzx ecx, byte [rdx]
lea r8d, [r9 + 7]
inc rdx
mov qword [rbp - 0x20], rdx
lea r9d, [rcx + rcx]
test cl, cl
jns 0x180098ffd
xor r10d, r10d
lea r11d, [r10 + 4]
nop dword [rax + rax]
mov rax, r8
dec r8
test rax, rax
jne 0x180098f96
movzx r9d, byte [rdx]
lea r8d, [rax + 7]
inc rdx
mov ecx, r9d
add r9d, r9d
shr ecx, 7
and ecx, 1
lea r10d, [rcx + r10*2]
sub r11d, 1
jne 0x180098f80
mov qword [rbp - 0x20], rdx
test r10d, r10d
je 0x180098fee
movsxd rax, r10d
mov rcx, rdi
sub rcx, rax
cmp rcx, r15
jb 0x1800992d3
cmp rcx, rdi
ja 0x1800992d3
lea rax, [r15 + r13]
cmp rcx, rax
jae 0x1800992d3
movzx eax, byte [rcx]
mov r12d, ebx
mov r11d, dword [rbp + 0x48]
mov byte [rdi], al
jmp 0x1800992b4
mov r11d, dword [rbp + 0x48]
mov r12d, ebx
mov byte [rdi], 0
jmp 0x1800992b4
movzx esi, byte [rdx]
mov rax, rdi
mov r10d, esi
inc rdx
and r10d, 1
mov qword [rbp - 0x20], rdx
add r10d, 2
shr rsi, 1
je 0x180099075
mov r11, rax
sub r11, rsi
cmp r11, r15
jb 0x1800992d3
lea rdi, [r15 + r13]
lea rcx, [r10 + r11]
cmp rcx, rdi
ja 0x1800992d3
lea rcx, [r10 + rax]
cmp rcx, rdi
ja 0x1800992d3
test r11, r11
je 0x180099274
mov r11, rsi
neg r11
nop word [rax + rax]
movzx ecx, byte [r11 + rax]
mov byte [rax], cl
inc rax
sub r10d, 1
jne 0x180099060
jmp 0x180099274
mov ebx, 1
mov r12d, ebx
mov dword [rbp + 0x50], ebx
mov r14d, ebx
jmp 0x1800992c1
mov ebx, 1
nop dword [rax]
lea r8, [r9 - 1]
test r9, r9
jne 0x1800990a7
movzx ecx, byte [rdx]
lea r8d, [r9 + 7]
inc rdx
mov qword [rbp - 0x20], rdx
lea r9, [r8 - 1]
mov eax, ecx
shr eax, 7
lea r11d, [rcx + rcx]
and eax, 1
mov qword [rbp - 8], r9
mov r10, r9
lea ebx, [rax + rbx*2]
test r8, r8
jne 0x1800990de
movzx r11d, byte [rdx]
mov r9d, 7
inc rdx
mov qword [rbp - 8], r9
mov qword [rbp - 0x20], rdx
mov r10d, r9d
lea ecx, [r11 + r11]
mov eax, ecx
mov qword [rbp - 0x10], rax
test r11b, r11b
js 0x180099090
test r14d, r14d
je 0x1800990fb
lea r8d, [rbx - 2]
jmp 0x180099196
cmp ebx, 2
jne 0x180099192
lea rcx, [rbp - 0x20]
call fcn.1800992f0
mov rdi, qword [rbp - 0x18]
movsxd rdx, eax
mov rax, rdi
test edx, edx
je 0x180099174
mov r8, rax
sub r8, rsi
cmp r8, r15
jb 0x1800992d3
lea r10, [r15 + r13]
lea rcx, [rdx + r8]
cmp rcx, r10
ja 0x1800992d3
lea rcx, [rdx + rdi]
cmp rcx, r10
ja 0x1800992d3
nop dword [rax + rax]
mov rcx, rax
sub rcx, rsi
movzx ecx, byte [rcx]
mov byte [rax], cl
inc rax
sub edx, 1
jne 0x180099150
mov r8, qword [rbp - 8]
mov r9, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
jmp 0x180099274
mov r8, qword [rbp - 8]
mov r14d, 1
mov r9, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
mov ebx, dword [rbp + 0x50]
mov r11d, dword [rbp + 0x48]
jmp 0x1800992c1
lea r8d, [rbx - 3]
movzx ebx, byte [rdx]
mov r11d, 1
shl r8d, 8
add ebx, r8d
inc rdx
movsxd rsi, ebx
mov qword [rbp - 0x20], rdx
lea r9, [r10 - 1]
test r10, r10
jne 0x1800991c7
movzx ecx, byte [rdx]
lea r9d, [r10 + 7]
inc rdx
mov qword [rbp - 0x20], rdx
mov eax, ecx
lea r8, [r9 - 1]
shr eax, 7
mov r10, r8
and eax, 1
lea r11d, [rax + r11*2]
lea eax, [rcx + rcx]
test r9, r9
jne 0x1800991f5
movzx eax, byte [rdx]
mov r8d, 7
inc rdx
mov r10d, r8d
mov qword [rbp - 0x20], rdx
lea ecx, [rax + rax]
mov r9d, ecx
test al, al
js 0x1800991b0
cmp ebx, 0x7d00
lea eax, [r11 + 1]
cmovb eax, r11d
cmp ebx, 0x500
lea ecx, [rax + 1]
cmovb ecx, eax
cmp ebx, 0x80
mov rax, rdi
lea r10d, [rcx + 2]
cmovae r10d, ecx
test r10d, r10d
je 0x18009927b
mov r11, rax
sub r11, rsi
cmp r11, r15
jb 0x1800992d3
movsxd rbx, r10d
lea rdi, [r15 + r13]
lea rcx, [rbx + r11]
cmp rcx, rdi
ja 0x1800992d3
lea rcx, [rbx + rax]
cmp rcx, rdi
ja 0x1800992d3
nop dword [rax + rax]
mov rcx, rax
sub rcx, rsi
movzx ecx, byte [rcx]
mov byte [rax], cl
inc rax
sub r10d, 1
jne 0x180099260
mov rdi, rax
mov qword [rbp - 0x18], rax
mov ebx, dword [rbp + 0x50]
mov r11d, dword [rbp + 0x48]
mov r14d, 1
jmp 0x1800992c1
cmp rdx, rcx
jb 0x1800992d3
mov eax, r11d
add rax, rcx
cmp rdx, rax
ja 0x1800992d3
cmp rdi, r15
jb 0x1800992d3
lea rax, [r15 + r13]
cmp rdi, rax
ja 0x1800992d3
movzx eax, byte [rdx]
inc rdx
mov qword [rbp - 0x20], rdx
mov byte [rdi], al
inc rdi
xor r14d, r14d
mov qword [rbp - 0x18], rdi
mov rax, rdi
mov rcx, qword [rbp + 0x40]
test r12d, r12d
je 0x180098f00
sub rax, r15
jmp 0x1800992d5
xor eax, eax
mov rbx, qword [rsp + 0x98]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret