Function at 0x140004430
Capabilities:
Compute adler32 checksum

Disassembly:
mov r10d, ecx
mov r11, rdx
movzx r9d, cx
shr r10d, 0x10
cmp r8, 1
jne 0x14000415c
movzx eax, byte [rdx]
add r9d, eax
cmp r9d, 0xfff1
jb 0x14000413a
add r9d, 0xffff000f
add r10d, r9d
cmp r10d, 0xfff1
jb 0x14000441e
add r10d, 0xffff000f
shl r10d, 0x10
or r10d, r9d
mov eax, r10d
ret
test rdx, rdx
jne 0x140004165
lea eax, [rdx + 1]
ret
cmp r8, 0x10
jae 0x1400041ad
test r8, r8
je 0x140004184
movzx eax, byte [r11]
add r11, 1
add r9d, eax
add r10d, r9d
sub r8, 1
jne 0x140004170
cmp r9d, 0xfff1
jb 0x140004194
add r9d, 0xffff000f
mov eax, 0x80078071
mul r10d
shr edx, 0xf
imul edx, edx, 0xf
lea eax, [r10 + rdx]
shl eax, 0x10
or eax, r9d
ret
cmp r8, 0x15b0
jb 0x1400042ee
mov rcx, r8
movabs rax, 0x79baa6bb6398b6f7
mul r8
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xc
mov rax, rcx
imul rax, rax, 0xffffffffffffea50
add r8, rax
nop
nop
nop
mov edx, 0x15b
nop
nop
nop
movzx eax, byte [r11]
add r11, 0x10
add r9d, eax
movzx eax, byte [r11 - 0xf]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 1]
add r10d, r9d
add r9d, eax
add r10d, r9d
add edx, 0xffffffff
jne 0x140004200
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
mul r10d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r10d, edx
sub rcx, 1
jne 0x1400041f0
test r8, r8
je 0x14000441e
cmp r8, 0x10
jb 0x1400043dd
mov rcx, r8
shr rcx, 4
mov rax, rcx
imul rax, rax, 0xfffffffffffffff0
add r8, rax
nop
nop
nop
nop
movzx eax, byte [r11]
add r11, 0x10
add r9d, eax
movzx eax, byte [r11 - 0xf]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 1]
add r10d, r9d
add r9d, eax
add r10d, r9d
sub rcx, 1
jne 0x140004320
test r8, r8
je 0x1400043f6
movzx eax, byte [r11]
add r11, 1
add r9d, eax
add r10d, r9d
sub r8, 1
jne 0x1400043e2
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
mul r10d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r10d, edx
shl r10d, 0x10
or r10d, r9d
mov eax, r10d
ret
mov r8d, r8d
jmp 0x140004110