Function at 0x140316450
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x140316460
mov r9d, ecx
mov r10, rdx
shr r9d, 0x10
movzx ecx, cx
cmp r8, 1
jne 0x1403164a4
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 0x1403164ad
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x1403164fc
test r8, r8
je 0x1403164d3
nop dword [rax + rax]
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x1403164c0
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 0x14031662f
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 0x140316540
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 0x140316530
test r8, r8
je 0x14031672b
cmp r8, 0x10
jb 0x1403166f2
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 0x140316640
test r8, r8
je 0x140316705
movzx eax, byte [r10]
lea r10, [r10 + 1]
add ecx, eax
add r9d, ecx
sub r8, 1
jne 0x1403166f2
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