Function at 0x1402d2f80
Capabilities:
Decompress data using ucl

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r12
push r13
push r14
push r15
mov ebp, dword [r9]
xor r15d, r15d
mov r14, r8
mov qword [rsp + 0x28], rdi
mov r12, r9
mov esi, edx
mov rbx, rcx
mov r8d, r15d
lea r13d, [r15 + 1]
mov eax, r15d
mov r11d, r15d
nop word [rax + rax]
add r8d, r8d
mov r9d, eax
test r8w, r8w
je 0x1402d2fd7
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1402d2ffc
movzx edx, byte [r9 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
test ecx, ecx
je 0x1402d3025
cmp eax, esi
jae 0x1402d32d4
cmp r11d, ebp
jae 0x1402d32aa
mov ecx, eax
mov edx, r11d
inc r11d
inc eax
movzx ecx, byte [rcx + rbx]
mov byte [rdx + r14], cl
jmp 0x1402d2fc0
mov r9d, 1
nop dword [rax + rax]
add r8d, r8d
mov r10d, eax
test r8w, r8w
jne 0x1402d305b
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
mov r10d, eax
shr ecx, 0x10
and ecx, 1
lea r9d, [rcx + r9*2]
cmp eax, esi
jae 0x1402d32d4
cmp r9d, 0x1000002
ja 0x1402d32cd
add r8d, r8d
test r8w, r8w
jne 0x1402d30a8
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
mov r10d, eax
shr ecx, 0x10
test cl, 1
jne 0x1402d30f3
add r8d, r8d
test r8w, r8w
jne 0x1402d30de
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
dec r9d
lea r9d, [rcx + r9*2]
jmp 0x1402d3030
cmp r9d, 2
jne 0x1402d3136
add r8d, r8d
mov edi, r13d
test r8w, r8w
je 0x1402d310e
mov r9d, r8d
shr r9d, 0x10
jmp 0x1402d3169
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov r9d, r8d
shr r9d, 0x10
jmp 0x1402d3169
cmp eax, esi
jae 0x1402d32d4
mov ecx, eax
inc eax
shl r9d, 8
movzx edx, byte [rcx + rbx]
lea edi, [r9 - 0x300]
add edi, edx
cmp edi, 0xffffffff
je 0x1402d32b1
mov r9d, edi
shr edi, 1
inc edi
not r9d
mov r13d, edi
and r9d, 1
mov r10d, eax
add r8d, r8d
test r8w, r8w
jne 0x1402d3198
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
lea r9d, [rcx + r9*2]
test r9d, r9d
jne 0x1402d324d
mov r9d, 1
add r8d, r8d
mov r10d, eax
test r8w, r8w
je 0x1402d31cb
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1402d31f0
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
mov r10d, eax
lea r9d, [rcx + r9*2]
cmp eax, esi
jae 0x1402d32d4
cmp r9d, ebp
jae 0x1402d32aa
add r8d, r8d
test r8w, r8w
je 0x1402d321c
mov ecx, r8d
shr ecx, 0x10
and ecx, 1
jmp 0x1402d3241
movzx edx, byte [r10 + rbx]
add eax, 2
lea ecx, [rax - 1]
movzx r8d, byte [rcx + rbx]
shl r8d, 8
add r8d, edx
lea r8d, [r8*2 + 1]
mov ecx, r8d
shr ecx, 0x10
test ecx, ecx
je 0x1402d31b4
add r9d, 2
mov ecx, r15d
cmp edi, 0x500
seta cl
add r9d, ecx
lea ecx, [r9 + r11]
cmp ecx, ebp
ja 0x1402d32aa
cmp edi, r11d
ja 0x1402d32cd
mov ecx, edi
mov r10d, r11d
sub r10, rcx
mov edx, r11d
add r10, r14
inc r11d
movzx ecx, byte [r10]
inc r10
mov byte [rdx + r14], cl
nop word [rax + rax]
movzx ecx, byte [r10]
lea r10, [r10 + 1]
mov byte [r11 + r14], cl
inc r11d
add r9d, 0xffffffff
jne 0x1402d3290
jmp 0x1402d2fc0
mov eax, 0xffffff36
jmp 0x1402d32d9
mov dword [r12], r11d
cmp eax, esi
je 0x1402d32c8
mov ecx, 0xffffff33
mov r15d, 0xffffff37
cmovb r15d, ecx
mov eax, r15d
jmp 0x1402d32dd
mov eax, 0xffffff35
jmp 0x1402d32d9
mov eax, 0xffffff37
mov dword [r12], r11d
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret