Function at 0x1400b3f40
Capabilities:
Compute adler32 checksum

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x28
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
add rsp, 0x28
jmp 0x1400b3f70
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
mov eax, dword [rsp + 8]
mov ecx, eax
mov r10, qword [rsp + 0x18]
shr ecx, 0x10
movzx r9d, ax
cmp r10, 1
jne 0x1400b3fc8
mov rax, qword [rsp + 0x10]
movzx eax, byte [rax]
add eax, r9d
cmp eax, 0xfff1
lea edx, [rax - 0xfff1]
cmovb edx, eax
lea eax, [rdx + rcx]
cmp eax, 0xfff1
lea ecx, [rax - 0xfff1]
cmovb ecx, eax
shl ecx, 0x10
or ecx, edx
mov eax, ecx
ret
mov r8, qword [rsp + 0x10]
test r8, r8
jne 0x1400b3fd7
lea eax, [r8 + 1]
ret
cmp r10, 0x10
jae 0x1400b401e
test r10, r10
je 0x1400b3ff6
movzx eax, byte [r8]
lea r8, [r8 + 1]
add r9d, eax
add ecx, r9d
sub r10, 1
jne 0x1400b3fe2
cmp r9d, 0xfff1
lea r8d, [r9 - 0xfff1]
mov eax, 0x80078071
cmovb r8d, r9d
mul ecx
shr edx, 0xf
imul eax, edx, 0xf
add eax, ecx
shl eax, 0x10
or eax, r8d
ret
cmp r10, 0x15b0
jb 0x1400b414c
mov r11, r10
movabs rax, 0x79baa6bb6398b6f7
mul r10
sub r11, rdx
shr r11, 1
add r11, rdx
shr r11, 0xc
imul rax, r11, 0xffffffffffffea50
add r10, rax
mov edx, 0x15b
nop word [rax + rax]
movzx eax, byte [r8]
add r9d, eax
movzx eax, byte [r8 + 1]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 2]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 3]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 4]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 5]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 6]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 7]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 8]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 9]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xa]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xb]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xc]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xd]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xe]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xf]
add ecx, r9d
add r8, 0x10
add r9d, eax
add ecx, r9d
add edx, 0xffffffff
jne 0x1400b4060
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
sub r11, 1
jne 0x1400b4052
test r10, r10
je 0x1400b426c
cmp r10, 0x10
jb 0x1400b422d
mov rdx, r10
shr rdx, 4
imul rax, rdx, 0xfffffffffffffff0
add r10, rax
nop dword [rax]
movzx eax, byte [r8]
add r9d, eax
movzx eax, byte [r8 + 1]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 2]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 3]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 4]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 5]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 6]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 7]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 8]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 9]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xa]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xb]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xc]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xd]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xe]
add ecx, r9d
add r9d, eax
movzx eax, byte [r8 + 0xf]
add ecx, r9d
add r8, 0x10
add r9d, eax
add ecx, r9d
sub rdx, 1
jne 0x1400b4170
test r10, r10
je 0x1400b4246
movzx eax, byte [r8]
lea r8, [r8 + 1]
add r9d, eax
add ecx, r9d
sub r10, 1
jne 0x1400b4232
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
mul ecx
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
shl ecx, 0x10
or ecx, r9d
mov eax, ecx
ret