Function at 0x140094e2c
Capabilities:
Compute adler32 checksum

Disassembly:
mov r8d, r8d
jmp 0x140094e34
mov r10d, ecx
movzx r9d, cx
shr r10d, 0x10
mov r11, rdx
cmp r8, 1
jne 0x140094e78
movzx ecx, byte [rdx]
mov r8d, 0xfff1
add ecx, r9d
cmp ecx, r8d
lea edx, [rcx - 0xfff1]
cmovb edx, ecx
lea eax, [rdx + r10]
cmp eax, r8d
lea ecx, [rax - 0xfff1]
cmovb ecx, eax
shl ecx, 0x10
or ecx, edx
mov eax, ecx
ret
test rdx, rdx
jne 0x140094e81
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x140094eca
test r8, r8
je 0x140094e9f
movzx eax, byte [r11]
inc r11
add r9d, eax
add r10d, r9d
sub r8, 1
jne 0x140094e8c
mov r8d, 0xfff1
lea ecx, [r9 - 0xfff1]
cmp r9d, r8d
mov eax, 0x80078071
cmovb ecx, r9d
mul r10d
shr edx, 0xf
imul eax, edx, 0xf
add eax, r10d
shl eax, 0x10
or eax, ecx
ret
cmp r8, 0x15b0
jb 0x140095004
mov rcx, r8
movabs rax, 0x79baa6bb6398b6f7
mul r8
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xc
imul rax, rcx, 0xffffffffffffea50
add r8, rax
mov edx, 0x15b
movzx eax, byte [r11]
add r9d, eax
movzx eax, byte [r11 + 1]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xf]
add r10d, r9d
add r11, 0x10
add r9d, eax
add r10d, r9d
add edx, 0xffffffff
jne 0x140094f03
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
mov eax, 0x80078071
mul r10d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r10d, eax
sub rcx, 1
jne 0x140094efe
test r8, r8
je 0x14009510f
cmp r8, 0x10
jb 0x1400950d4
mov rcx, r8
shr rcx, 4
imul rax, rcx, 0xfffffffffffffff0
add r8, rax
movzx eax, byte [r11]
add r9d, eax
movzx eax, byte [r11 + 1]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 + 0xf]
add r10d, r9d
add r11, 0x10
add r9d, eax
add r10d, r9d
sub rcx, 1
jne 0x140095012
test r8, r8
je 0x1400950e7
movzx eax, byte [r11]
inc r11
add r9d, eax
add r10d, r9d
sub r8, 1
jne 0x1400950d4
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul ecx, edx, 0xffff000f
mul r10d
add r9d, ecx
shr edx, 0xf
imul ecx, edx, 0xffff000f
add r10d, ecx
shl r10d, 0x10
or r10d, r9d
mov eax, r10d
ret