Function at 0x14003b480
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x14003b560
mov r9d, ecx
mov r10, rdx
movzx ecx, cx
shr r9d, 0x10
cmp r8, 1
jne 0x14003b5a8
movzx eax, byte [rdx]
add ecx, eax
cmp ecx, 0xfff1
jb 0x14003b586
add ecx, 0xffff000f
add r9d, ecx
cmp r9d, 0xfff1
jb 0x14003b838
add r9d, 0xffff000f
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret
test rdx, rdx
jne 0x14003b5b1
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x14003b5f7
test r8, r8
je 0x14003b5d2
nop dword [rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x14003b5c0
cmp ecx, 0xfff1
jb 0x14003b5e0
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 0x14003b71a
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 0x14003b640
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 0x14003b630
test r8, r8
je 0x14003b838
cmp r8, 0x10
jb 0x14003b7ec
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 0x14003b740
test r8, r8
je 0x14003b812
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
dec r8
jne 0x14003b800
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