Function at 0x1400c1dd0
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
xor esi, esi
mov rbx, rdx
mov rdi, rcx
test rcx, rcx
jne 0x1400c1e16
test r8, r8
je 0x1400c1df4
mov qword [r8], rsi
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1400c1e01
mov qword [rax], rsi
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov qword [rcx + 0x88], rbx
mov qword [rcx + 0x98], r8
mov qword [rcx + 0x90], r9
mov rcx, qword [rsp + 0x50]
mov qword [rdi + 0xa0], rcx
mov qword [rsp + 0x30], rbp
mov qword [rdi + 0xb0], rbx
test r8, r8
je 0x1400c1e4d
mov rax, qword [r8]
jmp 0x1400c1e50
mov rax, rsi
mov ebp, dword [rsp + 0x58]
mov dword [rdi + 0xa8], ebp
mov qword [rdi + 0xb8], rax
mov qword [rdi + 0xc0], rsi
test r9, r9
jne 0x1400c1e74
mov edx, esi
test rcx, rcx
je 0x1400c1e79
mov edx, 1
mov eax, esi
cmp qword [rdi], rax
setne al
cmp eax, edx
je 0x1400c20be
cmp dword [rdi + 0x84], esi
jne 0x1400c20be
mov edx, dword [rdi + 0x80]
test edx, edx
je 0x1400c1ea8
cmp ebp, 4
jne 0x1400c20be
test r8, r8
je 0x1400c1ebb
cmp qword [r8], rsi
je 0x1400c1ebb
test rbx, rbx
je 0x1400c20c3
test rcx, rcx
je 0x1400c1ece
cmp qword [rcx], rsi
je 0x1400c1ece
test r9, r9
je 0x1400c20be
mov qword [rsp + 0x38], r14
cmp ebp, 4
mov r14d, esi
sete r14b
mov eax, r14d
or eax, edx
mov dword [rdi + 0x80], eax
cmp dword [rdi + 0x74], esi
jne 0x1400c20ae
cmp dword [rdi + 0x78], esi
jne 0x1400c20ae
mov rcx, rdi
call fcn.1400c1420
test eax, eax
je 0x1400c205a
test dword [rdi + 0x10], 0x3000
je 0x1400c2035
test rbx, rbx
je 0x1400c2035
mov r11, qword [rdi + 0xb0]
movabs rax, 0x79baa6bb6398b6f7
mov r8d, dword [rdi + 0x20]
sub r11, rbx
mul r11
mov rax, r11
movzx ecx, r8w
sub rax, rdx
shr r8d, 0x10
shr rax, 1
mov r9, r11
add rax, rdx
shr rax, 0xc
imul rax, rax, 0x15b0
sub r9, rax
test r11, r11
je 0x1400c202a
nop dword [rax]
mov edx, esi
cmp r9, 7
jbe 0x1400c1fda
mov r10d, 7
nop
movzx eax, byte [rbx]
add r10d, 8
add ecx, eax
add edx, 8
movzx eax, byte [rbx + 1]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 2]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 3]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 4]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 5]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 6]
add r8d, ecx
add ecx, eax
movzx eax, byte [rbx + 7]
add r8d, ecx
add ecx, eax
add rbx, 8
add r8d, ecx
mov eax, r10d
cmp rax, r9
jb 0x1400c1f80
mov eax, edx
cmp rax, r9
jae 0x1400c1ff5
movzx eax, byte [rbx]
inc edx
add ecx, eax
inc rbx
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x1400c1fe1
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r8d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r8d, eax
sub r11, r9
mov r9d, 0x15b0
jne 0x1400c1f70
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x20], eax
test ebp, ebp
je 0x1400c20ae
cmp dword [rdi + 0x28], esi
jne 0x1400c20ae
cmp qword [rdi + 0xb8], rsi
jne 0x1400c20ae
cmp dword [rdi + 0x74], esi
jne 0x1400c20ae
mov edx, ebp
mov rcx, rdi
call fcn.1400c0c50
test eax, eax
jns 0x1400c207a
mov eax, dword [rdi + 0x84]
mov r14, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov dword [rdi + 0x78], r14d
cmp ebp, 3
jne 0x1400c20ae
lea rcx, [rdi + 0x292aa]
xor edx, edx
mov r8d, 0x10000
call sub.VCRUNTIME140.dll_memset
lea rcx, [rdi + 0x192aa]
xor edx, edx
mov r8d, 0x10000
call sub.VCRUNTIME140.dll_memset
mov dword [rdi + 0x2c], esi
mov rcx, rdi
call fcn.1400c1d20
mov dword [rdi + 0x84], eax
jmp 0x1400c2060
test r8, r8
je 0x1400c20c6
mov qword [r8], rsi
test rcx, rcx
je 0x1400c20ce
mov qword [rcx], rsi
mov dword [rdi + 0x84], 0xfffffffe
mov eax, 0xfffffffe
jmp 0x1400c2065