Function at 0x1400275a0
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
test rcx, rcx
jne 0x1400275d9
test r8, r8
je 0x1400275c4
xor esi, esi
mov qword [r8], rsi
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
xor esi, esi
mov qword [rsp + 0x30], rbp
mov qword [rcx + 0x88], rbx
mov qword [rcx + 0x98], r8
mov qword [rcx + 0x90], rsi
mov qword [rcx + 0xa0], rsi
mov qword [rcx + 0xb0], rbx
test r8, r8
je 0x14002760d
mov rax, qword [r8]
jmp 0x140027610
mov rax, rsi
mov ebp, dword [rsp + 0x58]
mov dword [rcx + 0xa8], ebp
mov qword [rcx + 0xb8], rax
mov qword [rcx + 0xc0], rsi
cmp qword [rcx], rsi
je 0x1400278f3
cmp dword [rcx + 0x84], esi
jne 0x1400278f3
mov ecx, dword [rcx + 0x80]
test ecx, ecx
je 0x140027650
cmp ebp, 4
jne 0x1400278f3
test r8, r8
je 0x140027663
cmp qword [r8], rsi
je 0x140027663
test rbx, rbx
je 0x1400278f8
mov qword [rsp + 0x38], r14
cmp ebp, 4
mov r14d, esi
sete r14b
mov eax, r14d
or eax, ecx
mov dword [rdi + 0x80], eax
cmp dword [rdi + 0x74], esi
jne 0x14002785d
cmp dword [rdi + 0x78], esi
jne 0x14002785d
mov ecx, dword [rdi + 0x10]
mov eax, ecx
and eax, 0xfff
cmp eax, 1
jne 0x1400276c3
and ecx, 0xb4000
cmp ecx, 0x4000
jne 0x1400276c3
mov rcx, rdi
call fcn.140026700
test eax, eax
jne 0x1400276cf
mov eax, dword [rdi + 0x84]
jmp 0x1400278d9
mov rcx, rdi
call fcn.140026cb0
test eax, eax
je 0x1400276b8
test dword [rdi + 0x10], 0x3000
je 0x1400277f5
test rbx, rbx
je 0x1400277f5
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 0x1400277ea
nop
mov edx, esi
cmp r9, 7
jbe 0x14002779a
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 0x140027740
mov eax, edx
cmp rax, r9
jae 0x1400277b5
movzx eax, byte [rbx]
inc edx
add ecx, eax
inc rbx
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x1400277a1
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 0x140027730
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x20], eax
test ebp, ebp
je 0x14002783e
cmp dword [rdi + 0x28], esi
jne 0x14002783e
cmp qword [rdi + 0xb8], rsi
jne 0x14002783e
cmp dword [rdi + 0x74], esi
jne 0x14002783e
mov edx, ebp
mov rcx, rdi
call fcn.140025fd0
test eax, eax
js 0x1400276b8
mov dword [rdi + 0x78], r14d
cmp ebp, 3
jne 0x14002783e
lea rcx, [rdi + 0x192aa]
xor edx, edx
mov r8d, 0x20000
call fcn.1400531d0
mov dword [rdi + 0x2c], esi
mov rcx, qword [rdi + 0x98]
test rcx, rcx
je 0x140027865
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0x88]
mov qword [rcx], rax
jmp 0x140027865
test r8, r8
je 0x140027865
mov qword [r8], rsi
mov rbx, qword [rdi + 0xa0]
test rbx, rbx
je 0x1400278c2
mov eax, dword [rdi + 0x74]
lea rdx, [rdi + 0x392aa]
mov rcx, qword [rdi + 0xc0]
mov rbx, qword [rbx]
sub rbx, rcx
cmp rbx, rax
cmovae rbx, rax
mov eax, dword [rdi + 0x70]
add rcx, qword [rdi + 0x90]
add rdx, rax
mov r8, rbx
call fcn.1400533e0
add dword [rdi + 0x70], ebx
sub dword [rdi + 0x74], ebx
add qword [rdi + 0xc0], rbx
mov rax, qword [rdi + 0xa0]
mov rcx, qword [rdi + 0xc0]
mov qword [rax], rcx
cmp dword [rdi + 0x78], esi
je 0x1400278d1
cmp dword [rdi + 0x74], esi
jne 0x1400278d1
mov esi, 1
mov dword [rdi + 0x84], esi
mov eax, esi
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
test r8, r8
je 0x1400278fb
mov qword [r8], rsi
mov dword [rdi + 0x84], 0xfffffffe
mov eax, 0xfffffffe
jmp 0x1400278de