Function at 0x18006f0e0
Capabilities:
Compute adler32 checksum

Disassembly:
sub rsp, 8
mov r10d, ecx
mov r11, rdx
movzx r9d, cx
shr r10d, 0x10
cmp r8d, 1
jne 0x18006f134
movzx eax, byte [rdx]
add r9d, eax
cmp r9d, 0xfff1
jb 0x18006f10e
add r9d, 0xffff000f
add r10d, r9d
cmp r10d, 0xfff1
jb 0x18006f3db
add r10d, 0xffff000f
shl r10d, 0x10
or r10d, r9d
mov eax, r10d
add rsp, 8
ret
test rdx, rdx
jne 0x18006f141
lea eax, [rdx + 1]
add rsp, 8
ret
cmp r8d, 0x10
jae 0x18006f190
test r8d, r8d
je 0x18006f163
nop dword [rax]
movzx eax, byte [r11]
inc r11
add r9d, eax
add r10d, r9d
add r8d, 0xffffffff
jne 0x18006f150
cmp r9d, 0xfff1
jb 0x18006f173
add r9d, 0xffff000f
mov eax, 0x80078071
mul r10d
shr edx, 0xf
imul edx, edx, 0xf
lea eax, [r10 + rdx]
shl eax, 0x10
or eax, r9d
add rsp, 8
ret
cmp r8d, 0x15b0
jb 0x18006f2b2
mov eax, 0x5e6ea9af
mov qword [rsp], rbx
mul r8d
shr edx, 0xb
mov ebx, edx
nop
add r8d, 0xffffea50
mov ecx, 0x15b
nop dword [rax]
movzx eax, byte [r11]
add r11, 0x10
add r9d, eax
movzx eax, byte [r11 - 0xf]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 1]
add r10d, r9d
add r9d, eax
add r10d, r9d
add ecx, 0xffffffff
jne 0x18006f1c0
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
mul r10d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r10d, edx
sub rbx, 1
jne 0x18006f1b0
mov rbx, qword [rsp]
test r8d, r8d
je 0x18006f3db
cmp r8d, 0x10
jb 0x18006f391
mov ecx, r8d
shr rcx, 4
nop dword [rax]
movzx eax, byte [r11]
add r8d, 0xfffffff0
add r11, 0x10
add r9d, eax
movzx eax, byte [r11 - 0xf]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xe]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xd]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xc]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xb]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 0xa]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 9]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 8]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 7]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 6]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 5]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 4]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 3]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 2]
add r10d, r9d
add r9d, eax
movzx eax, byte [r11 - 1]
add r10d, r9d
add r9d, eax
add r10d, r9d
sub rcx, 1
jne 0x18006f2d0
test r8d, r8d
je 0x18006f3b3
nop word [rax + rax]
movzx eax, byte [r11]
inc r11
add r9d, eax
add r10d, r9d
add r8d, 0xffffffff
jne 0x18006f3a0
mov eax, 0x80078071
mul r9d
mov eax, 0x80078071
shr edx, 0xf
imul edx, edx, 0xffff000f
add r9d, edx
mul r10d
shr edx, 0xf
imul edx, edx, 0xffff000f
add r10d, edx
shl r10d, 0x10
or r10d, r9d
mov eax, r10d
add rsp, 8
ret