Function at 0x1801c1c20
Capabilities:
Decompress data using ucl

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
mov esi, dword [r9]
xor r14d, r14d
mov rbp, r8
mov r12, r9
mov edi, edx
mov rbx, rcx
mov r8d, r14d
mov eax, r14d
lea r15d, [r14 + 1]
mov r11d, r14d
nop dword [rax + rax]
add r8d, r8d
test r8w, r8w
je 0x1801c1c74
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1801c1c9b
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
test ecx, ecx
je 0x1801c1cc3
cmp eax, edi
jae 0x1801c1f37
cmp r11d, esi
jae 0x1801c1f0a
mov ecx, eax
mov edx, r11d
inc r11d
inc eax
movzx ecx, byte [rcx + rbx]
mov byte [rdx + rbp], cl
jmp 0x1801c1c60
mov r9d, 1
nop dword [rax]
add r8d, r8d
test r8w, r8w
jne 0x1801c1cfa
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
lea r9d, [rcx + r9*2]
cmp eax, edi
jae 0x1801c1f37
cmp r9d, 0x1000002
ja 0x1801c1f30
add r8d, r8d
test r8w, r8w
je 0x1801c1d30
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1801c1d57
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
test ecx, ecx
je 0x1801c1cd0
cmp r9d, 2
je 0x1801c1d92
cmp eax, edi
jae 0x1801c1f37
lfence
mov ecx, eax
inc eax
shl r9d, 8
movzx edx, byte [rcx + rbx]
add edx, r9d
cmp edx, 0x2ff
je 0x1801c1f11
lea r15d, [rdx - 0x2ff]
add r8d, r8d
mov r10d, r15d
test r8w, r8w
je 0x1801c1dab
mov r9d, r8d
shr r9d, 0x10
and r9d, 1
jmp 0x1801c1dd3
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov r9d, r8d
shr r9d, 0x10
add r8d, r8d
test r8w, r8w
jne 0x1801c1dfd
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
lea r9d, [rcx + r9*2]
test r9d, r9d
jne 0x1801c1eb7
mov r9d, 1
nop dword [rax]
add r8d, r8d
test r8w, r8w
je 0x1801c1e34
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1801c1e5b
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
lea r9d, [rcx + r9*2]
cmp eax, edi
jae 0x1801c1f37
cmp r9d, esi
jae 0x1801c1f0a
add r8d, r8d
test r8w, r8w
je 0x1801c1e84
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1801c1eab
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
lea ecx, [rax - 2]
movzx ecx, byte [rcx + rbx]
shl r8d, 8
add r8d, ecx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
test ecx, ecx
je 0x1801c1e20
add r9d, 2
mov ecx, r14d
cmp r10d, 0xd00
seta cl
add r9d, ecx
lea ecx, [r9 + r11]
cmp ecx, esi
ja 0x1801c1f0a
cmp r10d, r11d
ja 0x1801c1f30
mov ecx, r10d
mov r10d, r11d
sub r10, rcx
mov edx, r11d
add r10, rbp
inc r11d
movzx ecx, byte [r10]
inc r10
mov byte [rdx + rbp], cl
movzx ecx, byte [r10]
lea r10, [r10 + 1]
mov byte [r11 + rbp], cl
inc r11d
add r9d, 0xffffffff
jne 0x1801c1ef0
jmp 0x1801c1c60
mov eax, 0xffffff36
jmp 0x1801c1f3c
lfence
mov dword [r12], r11d
cmp eax, edi
je 0x1801c1f2b
mov ecx, 0xffffff33
mov r14d, 0xffffff37
cmovb r14d, ecx
mov eax, r14d
jmp 0x1801c1f40
mov eax, 0xffffff35
jmp 0x1801c1f3c
mov eax, 0xffffff37
mov dword [r12], r11d
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret