Function at 0x14032a070
Capabilities:
Compute adler32 checksum

Disassembly:
push rdi
push r14
sub rsp, 0x98
mov rdi, rcx
mov r14, 0xffffffffffffffff
test rcx, rcx
je 0x14032a5b2
cmp byte [rcx + 0x4e058], 0x72
jne 0x14032a0a4
xor eax, eax
add rsp, 0x98
pop r14
pop rdi
ret
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x88], r12
lea r12, [0x140353278]
mov qword [rsp + 0x80], r15
xor r15d, r15d
test byte [rcx + 0x60], 0xf
je 0x14032a3ec
lea rbx, [rcx + 0xe0]
mov qword [rsp + 0xb0], r15
test rbx, rbx
je 0x14032a57f
lea rax, [rsp + 0xb0]
mov qword [rcx + 0x168], r12
mov qword [rcx + 0x178], rax
mov qword [rcx + 0x170], r15
mov qword [rcx + 0x180], r15
mov qword [rcx + 0x190], r12
mov qword [rcx + 0x198], r15
mov qword [rcx + 0x1a0], r15
mov dword [rcx + 0x188], 4
cmp qword [rbx], r15
je 0x14032a5c0
cmp dword [rcx + 0x164], r15d
jne 0x14032a5c0
or dword [rcx + 0x160], 1
cmp dword [rcx + 0x154], r15d
jne 0x14032a39b
cmp dword [rcx + 0x158], r15d
jne 0x14032a3a4
mov rcx, rbx
call fcn.140328380
test eax, eax
jne 0x14032a181
mov esi, dword [rdi + 0x164]
jmp 0x14032a3bb
test dword [rdi + 0xf0], 0x3000
je 0x14032a2b8
mov rsi, qword [rdi + 0x190]
movabs rax, 0x79baa6bb6398b6f7
mov r8d, dword [rdi + 0x100]
sub rsi, r12
mul rsi
mov rax, rsi
movzx ecx, r8w
sub rax, rdx
shr r8d, 0x10
shr rax, 1
mov r10, rsi
add rax, rdx
mov r9, r12
shr rax, 0xc
imul rax, rax, 0x15b0
sub r10, rax
test rsi, rsi
je 0x14032a2aa
mov edx, r15d
cmp r10, 7
jbe 0x14032a252
mov r11d, 7
nop
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 0x14032a1f0
mov eax, edx
cmp rax, r10
jae 0x14032a275
nop dword [rax]
movzx eax, byte [r9]
inc edx
add ecx, eax
inc r9
add r8d, ecx
mov eax, edx
cmp rax, r10
jb 0x14032a260
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 rsi, r10
mov r10d, 0x15b0
jne 0x14032a1e0
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x100], eax
mov esi, 1
cmp dword [rdi + 0x108], r15d
jne 0x14032a2f8
cmp qword [rdi + 0x198], r15
jne 0x14032a2f8
cmp dword [rdi + 0x154], r15d
jne 0x14032a2f8
lea edx, [rsi + 3]
mov rcx, rbx
call fcn.140328c60
test eax, eax
jns 0x14032a2f2
mov esi, dword [rdi + 0x164]
jmp 0x14032a3bb
mov dword [rdi + 0x158], esi
mov rcx, qword [rdi + 0x178]
test rcx, rcx
je 0x14032a315
mov rax, qword [rdi + 0x190]
sub rax, qword [rdi + 0x168]
mov qword [rcx], rax
mov rbx, qword [rdi + 0x180]
test rbx, rbx
je 0x14032a37e
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], r15d
je 0x14032a390
cmp dword [rdi + 0x154], r15d
je 0x14032a393
mov esi, r15d
mov dword [rdi + 0x164], esi
jmp 0x14032a3bb
cmp dword [rcx + 0x158], r15d
je 0x14032a3b2
mov esi, 1
cmp dword [rcx + 0x154], r15d
je 0x14032a3b5
mov esi, r15d
mov dword [rcx + 0x164], esi
cmp esi, 1
ja 0x14032a57f
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, r14
mov qword [rsp + 0xc8], rbp
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], r15b
jne 0x14032a400
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
lea rcx, [rsp + 0xb8]
mov qword [rsp + 0xb8], rax
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64]
mov ecx, dword [rax]
movzx ebp, word [rax + 8]
movzx esi, word [rax + 0x14]
shl si, 4
add si, word [rax + 0x10]
shl bp, 6
add bp, word [rax + 4]
sar ecx, 1
shl bp, 5
add bp, cx
mov ecx, 0x301
add si, cx
mov rcx, qword [rdi + 0x80]
shl si, 5
add si, word [rax + 0xc]
mov eax, 0xffffffff
cmp rcx, rax
ja 0x14032a577
cmp qword [rdi + 0x90], rax
ja 0x14032a577
movzx eax, word [rdi + 0xc0]
lea rdx, [rdi + 0x98]
mov word [rsp + 0x50], si
xor r9d, r9d
mov word [rsp + 0x48], bp
movzx r8d, bx
mov word [rsp + 0x40], r15w
mov word [rsp + 0x38], ax
mov eax, dword [rdi + 0x88]
mov dword [rsp + 0x30], eax
mov rax, qword [rdi + 0x78]
mov qword [rsp + 0x28], rcx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140327580
test eax, eax
je 0x14032a577
mov rdx, qword [rdi + 0xb8]
lea r8, [rdi + 0x98]
mov rcx, qword [rdi + 0x50]
mov r9d, 0x1e
call qword [rdi + 0x48]
cmp rax, 0x1e
jne 0x14032a577
mov rax, qword [rdi + 0xb8]
xor r9d, r9d
mov rdx, qword [rdi + 0x70]
movzx r8d, bx
mov dword [rsp + 0x78], r15d
mov rcx, rdi
mov qword [rsp + 0x70], rax
movzx eax, word [rdi + 0xc0]
mov word [rsp + 0x68], si
mov word [rsp + 0x60], bp
mov word [rsp + 0x58], r15w
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], r15w
mov qword [rsp + 0x28], r12
mov word [rsp + 0x20], r15w
call fcn.140327060
test eax, eax
je 0x14032a577
inc dword [rdi + 0x10]
mov r14d, r15d
mov rax, qword [rdi + 0x90]
mov qword [rdi], rax
mov rbp, qword [rsp + 0xc8]
mov rcx, qword [rdi + 0x70]
mov r12, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xc0]
test rcx, rcx
je 0x14032a5aa
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x70], r15
mov r15, qword [rsp + 0x80]
mov eax, r14d
add rsp, 0x98
pop r14
pop rdi
ret
mov dword [rcx + 0x164], 0xfffffffe
jmp 0x14032a57f