Function at 0x14003ca50
Capabilities:
Compute adler32 checksum

Disassembly:
push rbx
push rsi
push rdi
mov r9, rcx
mov r11, rdx
mov rsi, r8
mov r8d, r9d
shr r8d, 0x10
and r9d, 0xffff
cmp rsi, 1
jne 0x14003ca9b
movzx ebx, byte [r11]
add r9d, ebx
mov esi, 0xfff1
cmp r9d, esi
jb 0x14003ca84
sub r9d, esi
add r8d, r9d
mov rax, rsi
cmp r8d, eax
jb 0x14003cd2d
sub r8d, eax
jmp 0x14003cd2d
test r11, r11
jne 0x14003caa9
mov eax, 1
pop rdi
pop rsi
pop rbx
ret
cmp rsi, 0x10
jae 0x14003cae7
test rsi, rsi
lea rsi, [rsi - 1]
je 0x14003cad1
mov rax, r11
inc r11
movzx edi, byte [rax]
add r9d, edi
add r8d, r9d
test rsi, rsi
lea rsi, [rsi - 1]
jne 0x14003cab8
mov edx, 0xfff1
cmp r9d, edx
jb 0x14003cd12
sub r9d, edx
jmp 0x14003cd12
cmp rsi, 0x15b0
jb 0x14003cc00
add rsi, 0xffffffffffffea50
mov ecx, 0x15b
movzx edx, byte [r11]
add r9d, edx
add r8d, r9d
movzx ebx, byte [r11 + 1]
add r9d, ebx
add r8d, r9d
movzx edi, byte [r11 + 2]
add r9d, edi
add r8d, r9d
movzx r10d, byte [r11 + 3]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 4]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 5]
add r9d, edx
add r8d, r9d
movzx ebx, byte [r11 + 6]
add r9d, ebx
add r8d, r9d
movzx edi, byte [r11 + 7]
add r9d, edi
add r8d, r9d
movzx r10d, byte [r11 + 8]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 9]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 0xa]
add r9d, edx
add r8d, r9d
movzx ebx, byte [r11 + 0xb]
add r9d, ebx
add r8d, r9d
movzx edi, byte [r11 + 0xc]
add r9d, edi
add r8d, r9d
movzx r10d, byte [r11 + 0xd]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 0xe]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 0xf]
add r9d, edx
add r8d, r9d
add r11, 0x10
dec ecx
test ecx, ecx
jne 0x14003cb00
mov ecx, r9d
mov rax, rcx
mov edx, 0x80078071
mul edx
shr edx, 0xf
imul eax, edx, 0xfff1
sub ecx, eax
mov r9d, ecx
mov ebx, r8d
mov rax, rbx
mov edx, 0x80078071
mul edx
shr edx, 0xf
imul eax, edx, 0xfff1
sub ebx, eax
mov r8d, ebx
cmp rsi, 0x15b0
jae 0x14003caf4
test rsi, rsi
je 0x14003cd2d
cmp rsi, 0x10
jb 0x14003ccd6
mov edi, 0x10
sub rsi, rdi
movzx eax, byte [r11]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 1]
add r9d, edx
add r8d, r9d
movzx ecx, byte [r11 + 2]
add r9d, ecx
add r8d, r9d
movzx ebx, byte [r11 + 3]
add r9d, ebx
add r8d, r9d
movzx r10d, byte [r11 + 4]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 5]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 6]
add r9d, edx
add r8d, r9d
movzx ecx, byte [r11 + 7]
add r9d, ecx
add r8d, r9d
movzx ebx, byte [r11 + 8]
add r9d, ebx
add r8d, r9d
movzx r10d, byte [r11 + 9]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 0xa]
add r9d, eax
add r8d, r9d
movzx edx, byte [r11 + 0xb]
add r9d, edx
add r8d, r9d
movzx ecx, byte [r11 + 0xc]
add r9d, ecx
add r8d, r9d
movzx ebx, byte [r11 + 0xd]
add r9d, ebx
add r8d, r9d
movzx r10d, byte [r11 + 0xe]
add r9d, r10d
add r8d, r9d
movzx eax, byte [r11 + 0xf]
add r9d, eax
add r8d, r9d
add r11, rdi
cmp rsi, rdi
jae 0x14003cc13
test rsi, rsi
lea rsi, [rsi - 1]
je 0x14003ccf7
mov rcx, r11
inc r11
movzx edx, byte [rcx]
add r9d, edx
add r8d, r9d
test rsi, rsi
lea rsi, [rsi - 1]
jne 0x14003ccdf
mov ebx, r9d
mov rax, rbx
mov edx, 0x80078071
mul edx
shr edx, 0xf
imul eax, edx, 0xfff1
sub ebx, eax
mov r9d, ebx
mov ecx, r8d
mov rax, rcx
mov edx, 0x80078071
mul edx
shr edx, 0xf
imul eax, edx, 0xfff1
sub ecx, eax
mov r8d, ecx
mov eax, r8d
shl eax, 0x10
or eax, r9d
pop rdi
pop rsi
pop rbx
ret