Function at 0x14032a850
Capabilities:
Compute adler32 checksum
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
test rcx, rcx
je 0x14032aba2
test rdx, rdx
je 0x14032a923
test r8, r8
je 0x14032a923
add qword [rcx + 0x78], r8
lea r11, [0x14039ecb0]
mov r9, r8
mov r10, rdx
mov r8d, dword [rcx + 0x88]
not r8d
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
mov eax, r8d
shr r8d, 4
xor rax, rdx
shr rdx, 4
and eax, 0xf
mov ecx, dword [r11 + rax*4]
xor ecx, r8d
mov eax, ecx
shr ecx, 4
and eax, 0xf
xor rax, rdx
mov r8d, dword [r11 + rax*4]
xor r8d, ecx
sub r9, 1
jne 0x14032a8b0
test byte [rdi + 0x60], 0xf
not r8d
mov dword [rdi + 0x88], r8d
jne 0x14032a92a
mov rdx, qword [rdi + 0x90]
mov r9, rbp
mov rcx, qword [rdi + 0x50]
mov r8, rbx
call qword [rdi + 0x48]
cmp rax, rbp
jne 0x14032aba2
add qword [rdi + 0x90], rbp
add qword [rdi + 0x80], rbp
xor eax, eax
jmp 0x14032aba7
lea rcx, [rdi + 0xe0]
mov qword [rsp + 0x30], rbp
test rcx, rcx
je 0x14032aba2
xor esi, esi
mov qword [rdi + 0x168], rbx
lea rax, [rsp + 0x30]
mov qword [rdi + 0x170], rsi
mov qword [rdi + 0x178], rax
mov qword [rdi + 0x180], rsi
mov qword [rdi + 0x190], rbx
mov qword [rdi + 0x198], rbp
mov qword [rdi + 0x1a0], rsi
mov dword [rdi + 0x188], esi
cmp qword [rcx], rsi
je 0x14032abbc
cmp dword [rdi + 0x164], esi
jne 0x14032abbc
cmp dword [rdi + 0x160], esi
jne 0x14032abbc
mov dword [rdi + 0x160], esi
cmp dword [rdi + 0x154], esi
jne 0x14032ab7e
cmp dword [rdi + 0x158], esi
jne 0x14032ab86
call fcn.140328380
test eax, eax
jne 0x14032a9d0
mov esi, dword [rdi + 0x164]
jmp 0x14032ab99
test dword [rdi + 0xf0], 0x3000
je 0x14032aaf8
mov r11, qword [rdi + 0x190]
movabs rax, 0x79baa6bb6398b6f7
mov r8d, dword [rdi + 0x100]
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 0x14032aaea
nop dword [rax]
mov edx, esi
cmp r9, 7
jbe 0x14032aa9a
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 0x14032aa40
mov eax, edx
cmp rax, r9
jae 0x14032aab5
movzx eax, byte [rbx]
inc edx
add ecx, eax
inc rbx
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x14032aaa1
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 0x14032aa30
shl r8d, 0x10
lea eax, [r8 + rcx]
mov dword [rdi + 0x100], eax
mov rcx, qword [rdi + 0x178]
test rcx, rcx
je 0x14032ab15
mov rax, qword [rdi + 0x190]
sub rax, qword [rdi + 0x168]
mov qword [rcx], rax
mov rbx, qword [rdi + 0x180]
test rbx, rbx
je 0x14032ab7e
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], esi
je 0x14032ab93
cmp dword [rdi + 0x154], esi
jne 0x14032ab93
mov esi, 1
mov dword [rdi + 0x164], esi
cmp esi, 1
jbe 0x14032a923
mov eax, 0xffffffff
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov dword [rdi + 0x164], 0xfffffffe
jmp 0x14032aba2