Function at 0x140296570
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 0x20], rbx
push r14
sub rsp, 0x20
mov r11d, dword [r8]
xor ebx, ebx
mov qword [rsp + 0x30], rbp
mov r14, r8
movzx r9d, r11w
mov ebp, edx
shr r11d, 0x10
mov r10, rcx
mov qword [rsp + 0x40], rdi
cmp edx, 0x1f
jl 0x140296814
movaps xmmword [rsp + 0x10], xmm6
mov eax, r10d
movdqa xmm6, xmmword [0x14034fa00]
xorps xmm5, xmm5
movaps xmmword [rsp], xmm7
movdqa xmm7, xmmword [0x14034f9f0]
and eax, 0xf
je 0x140296631
neg eax
mov edx, ebx
and eax, 0xf
mov r8d, ebx
mov edi, eax
mov ecx, ebx
cmp rdi, 2
jb 0x140296615
mov qword [rsp + 0x38], rsi
lea rsi, [rax - 1]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r10 + rcx]
add r9d, eax
movzx eax, byte [r10 + rcx + 1]
add edx, r9d
add rcx, 2
add r9d, eax
add r8d, r9d
cmp rcx, rsi
jl 0x1402965f0
mov rsi, qword [rsp + 0x38]
cmp rcx, rdi
jge 0x140296625
movzx eax, byte [rcx + r10]
add r9d, eax
add r11d, r9d
lea eax, [r8 + rdx]
sub ebp, edi
add r11d, eax
add r10, rdi
mov r8d, ebp
movd xmm4, r9d
sar r8d, 4
movd xmm3, r11d
cmp r8d, 0x15a
jl 0x140296749
mov eax, 0x7ad2208f
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 8
mov edi, eax
imul eax, eax, 0xfffffea6
add r8d, eax
nop
mov eax, 0x15a
nop word [rax + rax]
movdqu xmm2, xmmword [r10]
movdqa xmm0, xmm4
movdqa xmm1, xmm2
pslld xmm0, 4
punpcklbw xmm1, xmm5
paddd xmm0, xmm3
pmaddwd xmm1, xmm6
add r10, 0x10
movdqa xmm3, xmm1
movdqa xmm1, xmm2
punpckhbw xmm1, xmm5
paddd xmm3, xmm0
psadbw xmm2, xmm5
pmaddwd xmm1, xmm7
paddd xmm2, xmm4
paddd xmm3, xmm1
movdqa xmm4, xmm2
sub eax, 1
jne 0x140296680
movd r9d, xmm4
movdqa xmm0, xmm3
movdqa xmm1, xmm3
psrldq xmm4, 8
movd eax, xmm4
psrldq xmm0, 4
psrldq xmm1, 0xc
add r9d, eax
movd r11d, xmm0
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xfff1
sub r9d, eax
movd eax, xmm1
add r11d, eax
movd eax, xmm3
psrldq xmm3, 8
movd xmm4, r9d
add r11d, eax
movd eax, xmm3
add r11d, eax
mov eax, 0x80078071
mul r11d
shr edx, 0xf
imul eax, edx, 0xfff1
sub r11d, eax
movd xmm3, r11d
sub rdi, 1
jne 0x140296670
test r8d, r8d
je 0x140296808
movdqu xmm2, xmmword [r10]
movdqa xmm0, xmm4
movdqa xmm1, xmm2
pslld xmm0, 4
punpcklbw xmm1, xmm5
paddd xmm0, xmm3
pmaddwd xmm1, xmm6
add r10, 0x10
movdqa xmm3, xmm1
movdqa xmm1, xmm2
punpckhbw xmm1, xmm5
paddd xmm3, xmm0
psadbw xmm2, xmm5
pmaddwd xmm1, xmm7
paddd xmm2, xmm4
paddd xmm3, xmm1
movdqa xmm4, xmm2
sub r8d, 1
jne 0x140296752
movd r9d, xmm4
movdqa xmm0, xmm3
movdqa xmm1, xmm3
psrldq xmm4, 8
movd eax, xmm4
psrldq xmm0, 4
psrldq xmm1, 0xc
add r9d, eax
movd r11d, xmm0
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xfff1
sub r9d, eax
movd eax, xmm1
add r11d, eax
movd eax, xmm3
psrldq xmm3, 8
add r11d, eax
movd eax, xmm3
add r11d, eax
mov eax, 0x80078071
mul r11d
shr edx, 0xf
imul eax, edx, 0xfff1
sub r11d, eax
movaps xmm7, xmmword [rsp]
and ebp, 0xf
movaps xmm6, xmmword [rsp + 0x10]
movsxd rdi, ebp
mov edx, ebx
mov rbp, qword [rsp + 0x30]
mov rcx, rbx
cmp rdi, 2
jl 0x140296850
lea r8, [rdi - 1]
nop dword [rax + rax]
movzx eax, byte [r10 + rcx]
add r9d, eax
movzx eax, byte [r10 + rcx + 1]
add ebx, r9d
add rcx, 2
add r9d, eax
add edx, r9d
cmp rcx, r8
jl 0x140296830
cmp rcx, rdi
mov rdi, qword [rsp + 0x40]
jge 0x140296865
movzx ecx, byte [rcx + r10]
add r9d, ecx
add r11d, r9d
lea ecx, [rdx + rbx]
mov eax, 0x80078071
mov rbx, qword [rsp + 0x48]
add r11d, ecx
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul ecx, edx, 0xfff1
mul r11d
sub r9d, ecx
shr edx, 0xf
imul eax, edx, 0xf
add eax, r11d
shl eax, 0x10
or r9d, eax
mov dword [r14], r9d
add rsp, 0x20
pop r14
ret