Function at 0x140095e90
Capabilities:
Compute adler32 checksum

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x140154e70]
xor rax, rsp
mov qword [rsp + 0x30], rax
xor ebp, ebp
mov rsi, rcx
test rcx, rcx
je 0x1400961e2
mov rdi, qword [rcx + 0x28]
test rdi, rdi
je 0x1400961e2
mov r9, qword [rcx + 0x10]
test r9, r9
je 0x1400961e2
mov ecx, dword [rcx + 0x18]
test ecx, ecx
jne 0x140095ede
lea eax, [rbp - 5]
jmp 0x1400961e7
cmp dword [rdi + 0x84], 1
jne 0x140095ef1
mov eax, 1
jmp 0x1400961e7
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], r14
movabs r14, 0x79baa6bb6398b6f7
nop word [rax + rax]
mov eax, dword [rsi + 8]
mov rbx, qword [rsi]
mov qword [rsp + 0x20], rax
mov eax, ecx
mov qword [rsp + 0x28], rax
test rdi, rdi
jne 0x140095f36
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], rbp
jmp 0x140096160
lea rax, [rsp + 0x20]
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x98], rax
lea rax, [rsp + 0x28]
mov qword [rdi + 0xa0], rax
mov qword [rdi + 0x90], r9
mov qword [rdi + 0xb0], rbx
mov rax, qword [rsp + 0x20]
mov qword [rdi + 0xb8], rax
mov qword [rdi + 0xc0], rbp
mov dword [rdi + 0xa8], 4
cmp qword [rdi], rbp
jne 0x14009614c
cmp dword [rdi + 0x84], ebp
jne 0x14009614c
cmp qword [rsp + 0x20], rbp
je 0x140095fa5
test rbx, rbx
je 0x14009614c
cmp qword [rsp + 0x28], rbp
je 0x140095fb5
test r9, r9
je 0x14009614c
or dword [rdi + 0x80], 1
cmp dword [rdi + 0x74], ebp
jne 0x140096139
cmp dword [rdi + 0x78], ebp
jne 0x140096139
mov rcx, rdi
call fcn.140097e40
test eax, eax
jne 0x140095fe6
mov r8d, dword [rdi + 0x84]
jmp 0x140096166
test dword [rdi + 0x10], 0x3000
je 0x140096105
test rbx, rbx
je 0x140096105
mov r11, qword [rdi + 0xb0]
mov rax, r14
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 0x1400960fa
nop
mov edx, ebp
cmp r9, 7
jbe 0x1400960aa
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 0x140096050
mov eax, edx
cmp rax, r9
jae 0x1400960c5
movzx eax, byte [rbx]
inc edx
add ecx, eax
inc rbx
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x1400960b1
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 0x140096040
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x20], eax
cmp dword [rdi + 0x28], ebp
jne 0x140096139
cmp qword [rdi + 0xb8], rbp
jne 0x140096139
cmp dword [rdi + 0x74], ebp
jne 0x140096139
mov edx, 4
mov rcx, rdi
call fcn.140097690
test eax, eax
jns 0x140096132
mov r8d, dword [rdi + 0x84]
jmp 0x140096166
mov dword [rdi + 0x78], 1
mov rcx, rdi
call fcn.140098740
mov r8d, eax
mov dword [rdi + 0x84], eax
jmp 0x140096166
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], rbp
mov dword [rdi + 0x84], 0xfffffffe
mov r8d, 0xfffffffe
mov rcx, qword [rsp + 0x20]
sub dword [rsi + 8], ecx
add dword [rsi + 0xc], ecx
mov rdx, qword [rsp + 0x28]
mov rdi, qword [rsi + 0x28]
mov eax, ecx
add qword [rsi], rax
mov ecx, dword [rsi + 0x18]
mov eax, dword [rdi + 0x20]
sub ecx, edx
add dword [rsi + 0x1c], edx
mov r9d, edx
add r9, qword [rsi + 0x10]
mov dword [rsi + 0x4c], eax
mov qword [rsi + 0x10], r9
mov dword [rsi + 0x18], ecx
test r8d, r8d
js 0x1400961cf
cmp r8d, 1
je 0x1400961bc
test ecx, ecx
jne 0x140095f10
mov r14, qword [rsp + 0x70]
mov eax, ebp
mov rbx, qword [rsp + 0x68]
jmp 0x1400961e7
mov r14, qword [rsp + 0x70]
mov ebp, 1
mov rbx, qword [rsp + 0x68]
mov eax, ebp
jmp 0x1400961e7
mov r14, qword [rsp + 0x70]
mov ebp, 0xfffffffe
mov rbx, qword [rsp + 0x68]
mov eax, ebp
jmp 0x1400961e7
mov eax, 0xfffffffe
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400ee850
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret