Function at 0x1801574b0
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x1801574c0
mov r9d, ecx
mov r10, rdx
shr r9d, 0x10
movzx ecx, cx
cmp r8, 1
jne 0x180157504
movzx edx, byte [rdx]
add edx, ecx
cmp edx, 0xfff1
lea r8d, [rdx - 0xfff1]
cmovb r8d, edx
lea eax, [r8 + r9]
cmp eax, 0xfff1
lea ecx, [rax - 0xfff1]
cmovb ecx, eax
shl ecx, 0x10
or ecx, r8d
mov eax, ecx
ret
test rdx, rdx
jne 0x18015750d
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x18015755c
test r8, r8
je 0x180157533
nop dword [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x180157520
cmp ecx, 0xfff1
lea r8d, [rcx - 0xfff1]
mov eax, 0x80078071
cmovb r8d, ecx
mul r9d
shr edx, 0xf
imul eax, edx, 0xf
add eax, r9d
shl eax, 0x10
or eax, r8d
ret
cmp r8, 0x15b0
jb 0x18015768f
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
mov edx, 0x15b
nop word [rax + rax]
movzx eax, byte [r10]
add ecx, eax
movzx eax, byte [r10 + 1]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 7]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 8]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 9]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xa]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xb]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xc]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xd]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xe]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xf]
add r9d, ecx
add r10, 0x10
add ecx, eax
add r9d, ecx
add edx, 0xffffffff
jne 0x1801575a0
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
sub r11, 1
jne 0x180157590
test r8, r8
je 0x18015778b
cmp r8, 0x10
jb 0x180157752
mov rdx, r8
shr rdx, 4
imul rax, rdx, 0xfffffffffffffff0
add r8, rax
nop dword [rax]
movzx eax, byte [r10]
add ecx, eax
movzx eax, byte [r10 + 1]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 2]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 3]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 4]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 5]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 6]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 7]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 8]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 9]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xa]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xb]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xc]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xd]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xe]
add r9d, ecx
add ecx, eax
movzx eax, byte [r10 + 0xf]
add r9d, ecx
add r10, 0x10
add ecx, eax
add r9d, ecx
sub rdx, 1
jne 0x1801576a0
test r8, r8
je 0x180157765
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x180157752
mov eax, 0x80078071
mul ecx
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
mul r9d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
shl r9d, 0x10
or r9d, ecx
mov eax, r9d
ret