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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f0
movaps xmmword [rsp + 0x1e0], xmm6
mov rsi, rcx
cmp word [rdx + 0xb8], 8
jne 0x14003dd95
mov qword [rsi + 8], 2
lea rax, [0x140100789]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], 0x20
mov qword [rsi], 5
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
add rsp, 0x1f0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x258]
test r9, r9
je 0x14003de33
mov rax, qword [rsp + 0x250]
test bx, bx
je 0x14003de49
mov rcx, rbx
shr rcx, 0x10
mov rdx, qword [rdx + 0x70]
lea r10d, [rcx*4 + 0x3fc]
and r10d, 0x3fc
sub rdx, r10
add rdx, 0xffffffffffffffec
mov r10, qword [r8 + 0x10]
mov qword [rsp + 0x30], r10
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x40], cl
mov qword [rsp + 0x38], rdx
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x20]
mov r8, r9
mov r9, rax
call fcn.1400448c0
mov r12, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
cmp r12, 3
jne 0x14003de91
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rdi
mov qword [rsi + 8], r14
jmp 0x14003dd71
test bx, bx
je 0x14003df86
mov qword [rsi + 8], 4
jmp 0x14003dd71
cmp byte [rdx + 0xd0], 0
je 0x14003deb6
cmp word [rdx + 0xc4], 1
jne 0x14003deb6
movzx r14d, byte [rdx + 0xca]
movzx ecx, byte [rdx + 0xcb]
shl ecx, 0x15
shl r14d, 0x1b
or r14d, ecx
xor ebp, ebp
test rax, rax
jne 0x14003dec9
mov edx, 0x12345678
mov r10d, 0x23456789
mov ecx, 0x34567890
jmp 0x14003df31
movups xmm6, xmmword [rsp + 0x70]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x130]
mov r8d, 0xb0
call fcn.1400e5660
jmp 0x14003df97
mov r14d, dword [rdx + 0xbc]
shl r14, 0x20
mov bpl, 1
test rax, rax
je 0x14003de7c
mov ecx, 0x34567890
mov r10d, 0x23456789
mov edx, 0x12345678
xor r11d, r11d
lea rdi, [0x140101100]
nop word cs:[rax + rax]
movzx r15d, byte [r9 + r11]
xor r15b, dl
shr edx, 8
movzx r15d, r15b
xor edx, dword [rdi + r15*4]
movzx r15d, dl
add r15d, r10d
imul r10d, r15d, 0x8088405
inc r10d
mov r15d, r10d
shr r15d, 0x18
movzx r12d, cl
xor r12d, r15d
shr ecx, 8
xor ecx, dword [rdi + r12*4]
inc r11
cmp rax, r11
jne 0x14003def0
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], r10d
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x20]
mov r8d, 0xc
call fcn.140042da0
mov rdi, rax
test rax, rax
je 0x14003dfcd
xor r15d, r15d
jmp 0x14003e0b2
mov r14, qword [r8]
mov r15, qword [r8 + 8]
mov rdi, qword [r8 + 0x10]
mov r12d, 3
mov qword [rsi], r12
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rdi
movups xmmword [rsi + 0x20], xmm6
lea rcx, [rsi + 0x30]
lea rdx, [rsp + 0x130]
mov r8d, 0xb0
call fcn.1400e5660
mov word [rsi + 0xe0], bx
jmp 0x14003dd78
mov eax, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x68]
mov edx, dword [rsp + 0x6c]
xor r9d, r9d
lea r8, [0x140101100]
nop word cs:[rax + rax]
mov r11d, eax
or r11d, 3
mov r10d, r11d
and r10d, 0xfffffffe
imul r10d, r11d
shr r10d, 8
xor r10b, byte [rsp + r9 + 0x20]
mov byte [rsp + r9 + 0x20], r10b
lea r11, [r9 + 1]
mov r9d, ecx
xor r9b, r10b
shr ecx, 8
movzx r9d, r9b
xor ecx, dword [r8 + r9*4]
movzx r9d, cl
add r9d, edx
imul edx, r9d, 0x8088405
inc edx
mov r9d, edx
shr r9d, 0x18
movzx r10d, al
xor r10d, r9d
shr eax, 8
xor eax, dword [r8 + r10*4]
mov r9, r11
cmp r11, 0xc
jne 0x14003dff0
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x6c], edx
movzx eax, byte [rsp + 0x2b]
test bpl, bpl
je 0x14003e07a
shr r14, 0x38
mov r15d, 4
cmp al, r14b
je 0x14003e089
jmp 0x14003e0b2
shr r14d, 0x18
mov r15d, 4
cmp al, r14b
jne 0x14003e078
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
test r14, r14
je 0x14003e0ad
movups xmm6, xmmword [rsp + 0x68]
mov r12d, 4
jmp 0x14003df97
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], rax
jmp 0x14003dd71