Function at 0x140065370
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x140065450
mov r9d, ecx
mov r10, rdx
movzx ecx, cx
shr r9d, 0x10
cmp r8, 1
jne 0x140065498
movzx eax, byte [rdx]
add ecx, eax
cmp ecx, 0xfff1
jb 0x140065476
add ecx, 0xffff000f
add r9d, ecx
cmp r9d, 0xfff1
jb 0x140065728
add r9d, 0xffff000f
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret
test rdx, rdx
jne 0x1400654a1
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x1400654e7
test r8, r8
je 0x1400654c2
nop dword [rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x1400654b0
cmp ecx, 0xfff1
jb 0x1400654d0
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 0x14006560a
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 0x140065530
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 0x140065520
test r8, r8
je 0x140065728
cmp r8, 0x10
jb 0x1400656dc
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 0x140065630
test r8, r8
je 0x140065702
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x1400656f0
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