Function at 0x1400cb670
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x1400cb750
mov r9d, ecx
mov r10, rdx
movzx ecx, cx
shr r9d, 0x10
cmp r8, 1
jne 0x1400cb798
movzx eax, byte [rdx]
add ecx, eax
cmp ecx, 0xfff1
jb 0x1400cb776
add ecx, 0xffff000f
add r9d, ecx
cmp r9d, 0xfff1
jb 0x1400cba28
add r9d, 0xffff000f
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret
test rdx, rdx
jne 0x1400cb7a1
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x1400cb7e7
test r8, r8
je 0x1400cb7c2
nop dword [rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x1400cb7b0
cmp ecx, 0xfff1
jb 0x1400cb7d0
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 0x1400cb90a
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 0x1400cb830
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 0x1400cb820
test r8, r8
je 0x1400cba28
cmp r8, 0x10
jb 0x1400cb9dc
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 0x1400cb930
test r8, r8
je 0x1400cba02
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x1400cb9f0
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