Function at 0x14026e53d
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov r14, rdx
mov rbx, rcx
cmp byte [rdx + 0xc1], 0
je 0x14026e63e
mov rax, qword [r14 + 0xa0]
lea rcx, [rax - 1]
imul rcx, rcx, 0xb0
add rcx, qword [r14 + 0x98]
xor r13d, r13d
cmp rax, 1
cmovae r13, rcx
jb 0x14026eb2e
mov rax, qword [r13 + 0x70]
cmp rax, 0xffff
jbe 0x14026e5b2
lea rdx, str.Extra_data_exceeds_extra_fieldIncomplete_extra_data_header
mov r8d, 0x1e
mov cl, 0x15
call fcn.1400710a5
jmp 0x14026e839
test rax, rax
je 0x14026e626
mov rcx, qword [r13 + 0x68]
lea rdx, [0x1404cbc5a]
cmp rax, 3
jbe 0x14026e9dc
movzx r8d, word [rcx]
mov word [rsp + 0x36], r8w
cmp r8w, 1
je 0x14026e9ee
cmp r8w, 0x20
jb 0x14026e7a9
add rax, 0xfffffffffffffffc
movzx r9d, word [rcx + 2]
add rcx, 4
xor r10d, r10d
cmp r10, 0x62
je 0x14026e615
lea r11, [r10 + 2]
cmp word [r10 + rdx], r8w
mov r10, r11
jne 0x14026e5fc
jmp 0x14026e7a9
cmp rax, r9
jb 0x14026eb01
add rcx, r9
sub rax, r9
jne 0x14026e5c2
cmp byte [r14 + 0xc2], 0
je 0x14026e922
mov word [r14 + 0xc1], 0
lea r15, [r14 + 0x20]
lea rsi, [rsp + 0x70]
mov rcx, rsi
mov rdx, r15
xor r8d, r8d
xor r9d, r9d
call fcn.14026c43c
mov rax, qword [rsi]
cmp rax, 4
jne 0x14026ea4e
mov rdx, qword [r14 + 0x20]
movups xmm0, xmmword [r14 + 0x28]
movaps xmmword [rsp + 0xc0], xmm0
mov r12, qword [r14 + 0x38]
lea rax, [r14 + 0x40]
lea rdi, [rsp + 0x70]
mov ecx, 0xa
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov qword [r14 + 0x20], 0
cmp rdx, 1
jne 0x14026eb43
lea rsi, [r14 + 0x28]
test r12, r12
je 0x14026e84b
mov qword [rsp + 0x38], rbx
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
mov r8, qword [rsp + 0x58]
cmp r8, 0xb
jbe 0x14026eb15
mov eax, dword [r14 + 0xc]
shr eax, 0x18
mov byte [r12 + 0xb], al
mov r9d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x64]
xor ecx, ecx
lea r10, [0x1404cbd60]
mov r11d, 0xff
mov sil, byte [r12 + rcx]
mov ebp, r9d
or ebp, 3
mov edi, ebp
and edi, 0xfffffffe
imul edi, ebp
mov ebp, edx
shr ebp, 8
xor dl, sil
movzx r13d, dl
mov edx, ebp
xor edx, dword [r10 + r13*4]
mov ebp, edx
and ebp, r11d
add ebp, eax
imul eax, ebp, 0x8088405
inc eax
mov ebp, eax
shr ebp, 0x18
mov r13d, r9d
and r9d, r11d
mov ebx, r9d
xor ebx, ebp
shr edi, 8
shr r13d, 8
mov r9d, r13d
xor r9d, dword [r10 + rbx*4]
xor dil, sil
mov byte [r12 + rcx], dil
inc rcx
cmp r8, rcx
jne 0x14026e707
lea rcx, [rsp + 0x40]
mov dword [rcx + 0x28], r9d
mov dword [rcx + 0x20], edx
mov dword [rcx + 0x24], eax
mov rdx, r12
call fcn.14026a18c
test rax, rax
je 0x14026e886
mov rsi, rax
lea rcx, [rsp + 0x40]
call fcn.14026e0db
mov rax, qword [rsp + 0x38]
mov qword [rax + 8], rsi
mov qword [rax], 0
jmp 0x14026ea5a
lea rax, [rsp + 0x36]
lea rcx, [rsp + 0xf0]
mov qword [rcx], rax
lea rax, [fcn.140053c00]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0x70]
mov qword [r8], rax
xor edx, edx
mov qword [r8 + 0x10], rdx
mov qword [r8 + 0x18], 6
movabs r9, 0x200000000c
mov qword [r8 + 0x20], r9
mov byte [r8 + 0x28], 3
mov qword [r8 + 0x30], rdx
lea r9, str.Extra_data_header_ID__requires_crate_feature__unreserved_
lea rdx, [rsp + 0xc0]
mov qword [rdx + 0x10], r9
mov qword [rdx + 0x18], rax
mov qword [rdx], r8
mov eax, 1
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], rcx
mov qword [rdx + 0x28], rax
lea rsi, [rsp + 0x100]
mov rcx, rsi
call fcn.1400476f0
mov rcx, rsi
call fcn.140270997
xor ecx, ecx
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rdx
jmp 0x14026ea5a
mov rcx, r15
call fcn.14026dd90
mov qword [r14 + 0x20], 1
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsi], xmm0
mov qword [r14 + 0x38], 0
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [r14 + 0x40], xmm0
mov rax, qword [rsp + 0x80]
mov qword [r14 + 0x50], rax
jmp 0x14026e8c6
mov rsi, qword [rsp + 0x40]
cmp qword [rsp + 0x48], 0
mov rbx, qword [rsp + 0x38]
je 0x14026e8aa
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, r15
call fcn.14026dd90
mov qword [r14 + 0x20], 1
mov qword [r14 + 0x28], rsi
mov qword [r14 + 0x38], 0
mov rcx, r15
call fcn.14026c3e4
cmp byte [r14 + 0xc3], 0
je 0x14026e8ea
xor eax, eax
mov byte [r14 + 0xc0], al
mov byte [r14 + 0xc3], al
jmp 0x14026e916
mov rsi, rax
mov rax, qword [r14 + 0xa0]
lea rcx, [rax - 1]
imul rcx, rcx, 0xb0
add rcx, qword [r14 + 0x98]
xor edi, edi
cmp rax, 1
cmovae rdi, rcx
jae 0x14026e999
mov qword [rbx], 4
jmp 0x14026ea5a
lea rsi, [r14 + 0x20]
mov rcx, rsi
call fcn.14026c3e4
mov rdi, rax
mov rdx, qword [r13 + 0x68]
mov r8, qword [r13 + 0x70]
mov rcx, rax
call fcn.14026a18c
test rax, rax
jne 0x14026e839
mov r15, qword [r13 + 0x70]
add r15, qword [r13 + 0x28]
mov qword [r14 + 0x10], r15
mov qword [r13 + 0x28], r15
mov al, byte [r13 + 0xaa]
mov byte [rsp + 0x38], al
mov rbp, qword [r13 + 0x70]
mov r9, qword [r13 + 0x18]
add r9, 0x1c
mov rdx, qword [rdi]
lea r12, [rsp + 0x70]
mov rcx, r12
xor r8d, r8d
call fcn.140233040
cmp qword [r12], 0
je 0x14026ea6e
mov rax, qword [rsp + 0x78]
jmp 0x14026e839
mov eax, dword [r14 + 0xc]
mov dword [rdi + 0x98], eax
mov rax, qword [r14 + 0x18]
mov qword [rdi + 0x10], rax
mov rdx, qword [rsi]
lea r15, [rsp + 0x70]
mov r8d, 2
mov rcx, r15
xor r9d, r9d
call fcn.140233040
cmp qword [r15], 0
je 0x14026ea00
mov rax, qword [rsp + 0x78]
mov qword [rbx + 8], rax
mov qword [rbx], 0
jmp 0x14026ea5a
lea rdx, [0x1404cbc3e]
mov r8d, 0x1c
jmp 0x14026eb0e
lea rdx, [0x1404cbd3b]
mov r8d, 0x22
jmp 0x14026eb0e
lea r12, [rsp + 0x70]
mov r15, qword [r12 + 8]
mov rax, r15
sub rax, qword [r14 + 0x10]
mov qword [rdi + 8], rax
mov rcx, r12
mov rdx, rsi
mov r8, rdi
call fcn.14026c108
mov rax, qword [r12]
cmp rax, 4
jne 0x14026ea4e
mov rdx, qword [rsi]
lea rsi, [rsp + 0x70]
mov rcx, rsi
xor r8d, r8d
mov r9, r15
call fcn.140233040
cmp qword [rsi], 0
jne 0x14026e9ca
jmp 0x14026e8d8
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rbx + 8], xmm0
mov qword [rbx], rax
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea eax, [rbp + 0x14]
cmp byte [rsp + 0x38], 0
cmove eax, ebp
lea rdx, [rsp + 0x70]
mov word [rdx], ax
mov r8d, 2
mov rcx, rdi
call fcn.14026a18c
test rax, rax
jne 0x14026e839
mov rdx, qword [rdi]
lea rdi, [rsp + 0x70]
mov rcx, rdi
xor r8d, r8d
mov r9, r15
call fcn.140233040
cmp qword [rdi], 0
jne 0x14026e98f
movzx r8d, word [r13 + 0xa0]
mov r9d, dword [r13 + 0x90]
mov eax, dword [r13 + 0x94]
mov dword [rsp + 0x20], eax
lea rdi, [rsp + 0x70]
mov rcx, rdi
mov rdx, rsi
call fcn.14026c43c
mov rcx, qword [rdi]
cmp rcx, 4
je 0x14026e634
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x14026e83b
lea rdx, str.Extra_data_size_exceeds_extra_fieldNo_custom_ZIP64_extra_data_allowed
mov r8d, 0x23
mov cl, 0x27
jmp 0x14026e5a8
lea rax, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srczipcrypto.rs
mov ecx, 0xb
mov rdx, r8
mov r8, rax
call fcn.14038e8b0
ud2
lea rcx, [0x1404ccfb7]
lea r8, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srcwrite.rs
mov edx, 0x2b
jmp 0x14026eb56
lea rcx, str.internal_error:_entered_unreachable_code_
lea r8, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srcwrite.rs
mov edx, 0x28
call fcn.14038e950
ud2