Function at 0x140044cd0
Capabilities:
Compute adler32 checksum

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov r14, r9
mov rbp, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x140044cfc
test rcx, rcx
je 0x14004501d
test rbp, rbp
je 0x14004501d
mov ecx, 0x4df78
call fcn.14017026c
mov rdi, rax
test rax, rax
je 0x14004501d
mov r9d, dword [rsp + 0x60]
mov r8, r14
mov rdx, rbp
mov rcx, rax
call fcn.140045040
xor ebp, ebp
test eax, eax
jne 0x14004500f
lea rax, [rsp + 0x48]
mov qword [rsp + 0x48], rsi
mov qword [rdi + 0x98], rax
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x90], rbp
mov qword [rdi + 0xa0], rbp
mov qword [rdi + 0xb0], rbx
mov qword [rdi + 0xb8], rsi
mov qword [rdi + 0xc0], rbp
mov dword [rdi + 0xa8], 4
cmp qword [rdi], rbp
je 0x140045005
cmp dword [rdi + 0x84], ebp
jne 0x140045005
test rsi, rsi
je 0x140044da0
test rbx, rbx
je 0x140045005
or dword [rdi + 0x80], 1
mov esi, 1
cmp dword [rdi + 0x74], ebp
jne 0x140044fe1
cmp dword [rdi + 0x78], ebp
jne 0x140044fe6
mov ecx, dword [rdi + 0x10]
mov eax, ecx
and eax, 0xfff
cmp eax, esi
jne 0x140044df1
and ecx, 0xb4000
cmp ecx, 0x4000
jne 0x140044df1
mov rcx, rdi
call fcn.140050e70
test eax, eax
jne 0x140044e08
mov eax, dword [rdi + 0x84]
jmp 0x140044ff5
mov rcx, rdi
call fcn.140051710
test eax, eax
jne 0x140044e08
mov eax, dword [rdi + 0x84]
jmp 0x140044ff5
test dword [rdi + 0x10], 0x3000
je 0x140044f35
test rbx, rbx
je 0x140044f35
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 0x140044f2a
mov edx, ebp
cmp r9, 7
jbe 0x140044eda
mov r10d, 7
nop word [rax + rax]
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 0x140044e80
mov eax, edx
cmp rax, r9
jae 0x140044ef5
movzx eax, byte [rbx]
inc edx
add ecx, eax
inc rbx
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x140044ee1
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 0x140044e67
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x20], eax
cmp dword [rdi + 0x28], ebp
jne 0x140044f67
cmp qword [rdi + 0xb8], rbp
jne 0x140044f67
cmp dword [rdi + 0x74], ebp
jne 0x140044f67
mov edx, 4
mov rcx, rdi
call fcn.140052000
test eax, eax
jns 0x140044f64
mov eax, dword [rdi + 0x84]
jmp 0x140044ff5
mov dword [rdi + 0x78], esi
mov rcx, qword [rdi + 0x98]
test rcx, rcx
je 0x140044f84
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0x88]
mov qword [rcx], rax
mov rbx, qword [rdi + 0xa0]
test rbx, rbx
je 0x140044fe1
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.1401378a0
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], ebp
je 0x140044fed
mov eax, esi
cmp dword [rdi + 0x74], ebp
je 0x140044fef
mov eax, ebp
mov dword [rdi + 0x84], eax
cmp eax, esi
jne 0x14004500f
mov rcx, rdi
call fcn.140170264
mov eax, esi
jmp 0x14004501f
mov dword [rdi + 0x84], 0xfffffffe
mov rcx, rdi
mov esi, ebp
call fcn.140170264
mov eax, ebp
jmp 0x14004501f
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret