Function at 0x140014720
Capabilities:
Compute adler32 checksum

Disassembly:
push rdi
push r15
sub rsp, 0xd8
mov rax, qword [0x14001d110]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov rdi, rcx
mov r15, 0xffffffffffffffff
test rcx, rcx
je 0x140014d73
mov qword [rsp + 0x100], rbp
xor ebp, ebp
cmp dword [rcx + 0x14], 1
jne 0x140014768
mov r15d, ebp
jmp 0x140014d51
test byte [rcx + 0x60], 0xf
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xc8], r12
lea r12, [0x140018650]
mov qword [rsp + 0xc0], r14
je 0x140014ad4
lea r14, [rcx + 0xe0]
mov qword [rsp + 0x80], rbp
test r14, r14
je 0x140014d31
lea rax, [rsp + 0x80]
mov qword [rcx + 0x168], r12
mov qword [rcx + 0x178], rax
mov qword [rcx + 0x170], rbp
mov qword [rcx + 0x180], rbp
mov qword [rcx + 0x190], r12
mov qword [rcx + 0x198], rbp
mov qword [rcx + 0x1a0], rbp
mov dword [rcx + 0x188], 4
cmp qword [r14], rbp
je 0x140014b3a
cmp dword [rcx + 0x164], ebp
jne 0x140014b3a
or dword [rcx + 0x160], 1
cmp dword [rcx + 0x154], ebp
jne 0x140014a86
cmp dword [rcx + 0x158], ebp
jne 0x140014a8e
mov ecx, dword [rcx + 0xf0]
mov eax, ecx
and eax, 0xfff
cmp eax, 1
jne 0x14001485f
and ecx, 0xb4000
cmp ecx, 0x4000
jne 0x14001485f
mov rcx, r14
call fcn.140010970
test eax, eax
jne 0x140014876
mov esi, dword [rdi + 0x164]
jmp 0x140014aa3
mov rcx, r14
call fcn.140011230
test eax, eax
jne 0x140014876
mov esi, dword [rdi + 0x164]
jmp 0x140014aa3
test dword [rdi + 0xf0], 0x3000
je 0x1400149a8
mov rbx, qword [rdi + 0x190]
movabs rax, 0x79baa6bb6398b6f7
mov r8d, dword [rdi + 0x100]
sub rbx, r12
mul rbx
mov rax, rbx
movzx ecx, r8w
sub rax, rdx
shr r8d, 0x10
shr rax, 1
mov r10, rbx
add rax, rdx
mov r9, r12
shr rax, 0xc
imul rax, rax, 0x15b0
sub r10, rax
test rbx, rbx
je 0x14001499a
mov edx, ebp
cmp r10, 7
jbe 0x140014945
mov r11d, 7
movzx eax, byte [r9]
add r11d, 8
add ecx, eax
add edx, 8
movzx eax, byte [r9 + 1]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 2]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 3]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 4]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 5]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 6]
add r8d, ecx
add ecx, eax
movzx eax, byte [r9 + 7]
add r8d, ecx
add ecx, eax
add r9, 8
add r8d, ecx
mov eax, r11d
cmp rax, r10
jb 0x1400148e3
mov eax, edx
cmp rax, r10
jae 0x140014965
nop dword [rax]
movzx eax, byte [r9]
inc edx
add ecx, eax
inc r9
add r8d, ecx
mov eax, edx
cmp rax, r10
jb 0x140014950
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 rbx, r10
mov r10d, 0x15b0
jne 0x1400148d5
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x100], eax
mov esi, 1
cmp dword [rdi + 0x108], ebp
jne 0x1400149e6
cmp qword [rdi + 0x198], rbp
jne 0x1400149e6
cmp dword [rdi + 0x154], ebp
jne 0x1400149e6
lea edx, [rsi + 3]
mov rcx, r14
call fcn.140011b80
test eax, eax
jns 0x1400149e0
mov esi, dword [rdi + 0x164]
jmp 0x140014aa3
mov dword [rdi + 0x158], esi
mov rcx, qword [rdi + 0x178]
test rcx, rcx
je 0x140014a03
mov rax, qword [rdi + 0x190]
sub rax, qword [rdi + 0x168]
mov qword [rcx], rax
mov rbx, qword [rdi + 0x180]
test rbx, rbx
je 0x140014a6c
mov eax, dword [rdi + 0x154]
lea rdx, [rdi + 0x3938a]
mov rcx, qword [rdi + 0x1a0]
mov rbx, qword [rbx]
sub rbx, rcx
cmp rbx, rax
cmovae rbx, rax
mov eax, dword [rdi + 0x150]
add rcx, qword [rdi + 0x170]
add rdx, rax
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add dword [rdi + 0x150], ebx
sub dword [rdi + 0x154], ebx
add qword [rdi + 0x1a0], rbx
mov rax, qword [rdi + 0x180]
mov rcx, qword [rdi + 0x1a0]
mov qword [rax], rcx
cmp dword [rdi + 0x158], ebp
je 0x140014a7c
cmp dword [rdi + 0x154], ebp
je 0x140014a7e
mov esi, ebp
mov dword [rdi + 0x164], esi
jmp 0x140014aa3
cmp dword [rcx + 0x158], ebp
je 0x140014a9b
mov esi, 1
cmp dword [rcx + 0x154], ebp
je 0x140014a9d
mov esi, ebp
mov dword [rcx + 0x164], esi
cmp esi, 1
ja 0x140014d31
mov rax, qword [rdi + 0xd8]
mov qword [rdi + 0x80], rax
mov rax, qword [rdi + 0xd0]
mov qword [rdi + 0x90], rax
mov eax, 8
mov word [rdi + 0xc0], ax
mov rax, qword [rdi + 0x70]
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], bpl
jne 0x140014ae0
mov eax, 0xffffffff
cmp qword [rdi + 0x80], rax
ja 0x140014d31
cmp qword [rdi + 0x90], rax
ja 0x140014d31
mov rax, qword [rdi + 0x4e060]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x80], rax
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64_s]
test eax, eax
je 0x140014b49
movzx esi, bp
movzx r14d, bp
jmp 0x140014b9a
mov dword [rcx + 0x164], 0xfffffffe
jmp 0x140014d31
movzx r14d, word [rsp + 0x90]
mov eax, dword [rsp + 0x88]
movzx esi, word [rsp + 0x9c]
shl r14w, 6
add r14w, word [rsp + 0x8c]
shl si, 4
add si, word [rsp + 0x98]
sar eax, 1
shl r14w, 5
add r14w, ax
mov eax, 0x301
add si, ax
shl si, 5
add si, word [rsp + 0x94]
mov r8d, dword [rdi + 0x88]
lea r11, [rdi + 0x98]
mov r9, qword [rdi + 0x80]
xor eax, eax
movzx edx, word [rdi + 0xc0]
xorps xmm0, xmm0
mov r10, qword [rdi + 0x78]
movups xmmword [r11], xmm0
mov qword [r11 + 0x10], rax
mov dword [r11 + 0x18], eax
movzx eax, dx
neg ax
mov byte [r11 + 0xe], r8b
mov byte [r11 + 0x12], r9b
movzx eax, r14w
sbb cl, cl
mov byte [r11 + 8], dl
shr ax, 8
and cl, 0x14
mov byte [r11 + 0xb], al
movzx eax, si
shr ax, 8
mov byte [r11 + 0xd], al
mov eax, r8d
shr eax, 8
mov byte [r11 + 0xf], al
mov eax, r8d
shr eax, 0x10
mov byte [r11 + 0x10], al
mov eax, r9d
shr eax, 8
mov byte [r11 + 0x13], al
mov eax, r9d
shr eax, 0x10
mov byte [r11 + 0x14], al
mov eax, r10d
shr eax, 8
mov byte [r11 + 0x17], al
mov eax, r10d
shr eax, 0x10
mov byte [r11 + 0x18], al
movzx eax, bx
mov byte [r11 + 0x16], r10b
shr dx, 8
shr r8d, 0x18
mov byte [r11 + 0x11], r8b
mov r8, r11
shr r9d, 0x18
mov byte [r11 + 0x15], r9b
mov r9d, 0x1e
mov dword [r11], 0x4034b50
mov byte [r11 + 4], cl
mov word [r11 + 5], bp
mov byte [r11 + 7], bpl
mov byte [r11 + 9], dl
mov byte [r11 + 0xa], r14b
mov byte [r11 + 0xc], sil
mov byte [r11 + 0x1a], bl
mov word [r11 + 0x1c], bp
shr ax, 8
mov byte [r11 + 0x1b], al
shr r10d, 0x18
mov byte [r11 + 0x19], r10b
mov rdx, qword [rdi + 0xb8]
mov rcx, qword [rdi + 0x50]
call qword [rdi + 0x48]
cmp rax, 0x1e
jne 0x140014d31
mov eax, dword [rdi + 0x4e058]
xor r9d, r9d
mov rdx, qword [rdi + 0x70]
movzx r8d, bx
mov dword [rsp + 0x78], eax
mov rcx, rdi
mov rax, qword [rdi + 0xb8]
mov qword [rsp + 0x70], rax
movzx eax, word [rdi + 0xc0]
mov word [rsp + 0x68], si
mov word [rsp + 0x60], r14w
mov word [rsp + 0x58], bp
mov word [rsp + 0x50], ax
mov eax, dword [rdi + 0x88]
mov dword [rsp + 0x48], eax
mov rax, qword [rdi + 0x80]
mov qword [rsp + 0x40], rax
mov rax, qword [rdi + 0x78]
mov qword [rsp + 0x38], rax
mov word [rsp + 0x30], bp
mov qword [rsp + 0x28], r12
mov word [rsp + 0x20], bp
call fcn.14000fa40
test eax, eax
je 0x140014d31
inc dword [rdi + 0x10]
mov r15d, ebp
mov rax, qword [rdi + 0x90]
mov qword [rdi], rax
mov r12, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xf8]
mov r14, qword [rsp + 0xc0]
mov rcx, qword [rdi + 0x70]
mov qword [rdi + 0x4e060], rbp
test rcx, rcx
je 0x140014d6b
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x70], rbp
mov rbp, qword [rsp + 0x100]
mov eax, r15d
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140015390
add rsp, 0xd8
pop r15
pop rdi
ret