Function at 0x140069690
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x140069770
mov r9d, ecx
mov r10, rdx
movzx ecx, cx
shr r9d, 0x10
cmp r8, 1
jne 0x1400697b8
movzx eax, byte [rdx]
add ecx, eax
cmp ecx, 0xfff1
jb 0x140069796
add ecx, 0xffff000f
add r9d, ecx
cmp r9d, 0xfff1
jb 0x140069a48
add r9d, 0xffff000f
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret
test rdx, rdx
jne 0x1400697c1
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x140069807
test r8, r8
je 0x1400697e2
nop dword [rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x1400697d0
cmp ecx, 0xfff1
jb 0x1400697f0
add ecx, 0xffff000f
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xf
add eax, r9d
shl eax, 0x10
or eax, ecx
ret
cmp r8, 0x15b0
jb 0x14006992a
mov r11, r8
movabs rax, 0x79baa6bb6398b6f7
mul r8
sub r11, rdx
shr r11, 1
add r11, rdx
shr r11, 0xc
imul rax, r11, 0xffffffffffffea50
add r8, rax
nop dword [rax + rax]
mov edx, 0x15b
nop word [rax + rax]
movzx eax, byte [r10]
add r10, 0x10
add ecx, eax
movzx eax, byte [r10 - 0xf]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xe]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xd]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xc]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xb]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xa]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 9]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 8]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 7]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 1]
add r9d, ecx
add ecx, eax
add r9d, ecx
dec edx
jne 0x140069850
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
dec r11
jne 0x140069840
test r8, r8
je 0x140069a48
cmp r8, 0x10
jb 0x1400699fc
mov rdx, r8
shr rdx, 4
imul rax, rdx, 0xfffffffffffffff0
add r8, rax
nop dword [rax + rax]
movzx eax, byte [r10]
add r10, 0x10
add ecx, eax
movzx eax, byte [r10 - 0xf]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xe]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xd]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xc]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xb]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 0xa]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 9]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 8]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 7]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 - 1]
add r9d, ecx
add ecx, eax
add r9d, ecx
dec rdx
jne 0x140069950
test r8, r8
je 0x140069a22
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x140069a10
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret