Function at 0x18006c350
Capabilities:
Compute adler32 checksum

Disassembly:
push rbp
mov ebp, ecx
mov r9d, r8d
mov r8, rdx
shr ebp, 0x10
movzx ecx, cx
cmp r9d, 1
jne 0x18006c395
movzx edx, byte [r8]
lea eax, [rcx + rdx]
cmp eax, 0xfff1
lea ecx, [rcx + rdx - 0xfff1]
cmovae eax, ecx
lea edx, [rbp + rax]
cmp edx, 0xfff1
jae 0x18006c60a
shl edx, 0x10
or eax, edx
jmp 0x18006c608
test r8, r8
je 0x18006c613
cmp r9d, 0x10
jae 0x18006c3eb
lea r10d, [r9 - 1]
test r9d, r9d
je 0x18006c3c1
movzx edx, byte [r8]
add ecx, edx
dec r10d
add ebp, ecx
inc r8
cmp r10d, 0xffffffff
jne 0x18006c3ad
mov eax, 0x80078071
cmp ecx, 0xfff1
lea r8d, [rcx - 0xfff1]
cmovae ecx, r8d
mul ebp
shr edx, 0xf
imul r9d, edx, 0xffff000f
add ebp, r9d
jmp 0x18006c601
cmp r9d, 0x15b0
jb 0x18006c4ff
add r9d, 0xffffea50
mov r10d, 0x15b
movzx edx, byte [r8]
add ecx, edx
movzx r11d, byte [r8 + 1]
add r11d, ecx
movzx edx, byte [r8 + 2]
add ecx, r11d
add edx, r11d
movzx eax, byte [r8 + 3]
add eax, edx
add edx, eax
add ecx, edx
movzx edx, byte [r8 + 4]
add eax, edx
movzx r11d, byte [r8 + 5]
add r11d, eax
movzx edx, byte [r8 + 6]
add eax, r11d
add r11d, edx
movzx edx, byte [r8 + 7]
add edx, r11d
add r11d, edx
add eax, r11d
movzx r11d, byte [r8 + 8]
add edx, r11d
add ecx, eax
movzx eax, byte [r8 + 9]
add eax, edx
movzx r11d, byte [r8 + 0xa]
add edx, eax
add eax, r11d
movzx r11d, byte [r8 + 0xb]
add r11d, eax
add eax, r11d
add edx, eax
movzx eax, byte [r8 + 0xc]
add r11d, eax
movzx eax, byte [r8 + 0xd]
add eax, r11d
add r11d, eax
add edx, r11d
add edx, ecx
movzx ecx, byte [r8 + 0xe]
add eax, ecx
movzx ecx, byte [r8 + 0xf]
add r8, 0x10
add ecx, eax
add eax, ecx
add edx, eax
add ebp, edx
dec r10d
jne 0x18006c405
mov eax, 0x80078071
mul ecx
mov eax, 0x80078071
shr edx, 0xf
imul r10d, edx, 0xffff000f
mul ebp
add ecx, r10d
shr edx, 0xf
imul r11d, edx, 0xffff000f
add ebp, r11d
cmp r9d, 0x15b0
jae 0x18006c3f8
test r9d, r9d
je 0x18006c601
cmp r9d, 0x10
jae 0x18006c4ff
lea r10d, [r9 - 1]
jmp 0x18006c5c5
movzx r11d, byte [r8]
add ecx, r11d
movzx edx, byte [r8 + 1]
add r9d, 0xfffffff0
add edx, ecx
movzx r11d, byte [r8 + 2]
add ecx, edx
add r11d, edx
movzx r10d, byte [r8 + 3]
add r10d, r11d
movzx edx, byte [r8 + 4]
add r11d, r10d
add edx, r10d
add ecx, r11d
movzx r10d, byte [r8 + 5]
add r10d, edx
movzx eax, byte [r8 + 6]
add edx, r10d
add eax, r10d
movzx r11d, byte [r8 + 7]
add r11d, eax
movzx r10d, byte [r8 + 8]
add eax, r11d
add r11d, r10d
add edx, eax
movzx r10d, byte [r8 + 9]
add ecx, edx
add r10d, r11d
movzx edx, byte [r8 + 0xa]
add r11d, r10d
add edx, r10d
movzx r10d, byte [r8 + 0xb]
add r10d, edx
add edx, r10d
add r11d, edx
movzx edx, byte [r8 + 0xc]
add r10d, edx
movzx edx, byte [r8 + 0xd]
add edx, r10d
add r10d, edx
add r11d, r10d
movzx r10d, byte [r8 + 0xe]
add edx, r10d
movzx r10d, byte [r8 + 0xf]
add r11d, ecx
add r8, 0x10
lea ecx, [rdx + r10]
add edx, ecx
add r11d, edx
add ebp, r11d
cmp r9d, 0x10
jae 0x18006c4ff
lea r10d, [r9 - 1]
test r9d, r9d
je 0x18006c5d9
movzx edx, byte [r8]
add ecx, edx
dec r10d
add ebp, ecx
inc r8
cmp r10d, 0xffffffff
jne 0x18006c5c5
mov eax, 0x80078071
mul ecx
mov eax, 0x80078071
shr edx, 0xf
imul r8d, edx, 0xffff000f
mul ebp
add ecx, r8d
shr edx, 0xf
imul r9d, edx, 0xffff000f
add ebp, r9d
shl ebp, 0x10
or ecx, ebp
mov eax, ecx
pop rbp
ret
lea edx, [rbp + rax + 0xf]
jmp 0x18006c38b
xor eax, eax
inc eax
jmp 0x18006c608