Function at 0x1400eeea2
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rax, qword [0x1401ee6a8]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov edi, 0xffffff9a
test rcx, rcx
je 0x1400ef5e1
mov r15d, dword [rsp + 0x110]
mov eax, r15d
and eax, 0xfffffff7
jne 0x1400ef5e1
mov rsi, r9
mov rbp, r8
mov rbx, rdx
mov r13, rcx
cmp dword [rcx + 0x70], 1
jne 0x1400eef12
mov rcx, r13
xor edx, edx
xor r8d, r8d
call fcn.1400ef9e3
mov edi, eax
test eax, eax
jne 0x1400ef5e1
mov qword [rsp + 0x60], rsi
test rbx, rbx
lea rsi, [0x14019c1f4]
cmovne rsi, rbx
mov rcx, qword [rsp + 0x108]
xor ebx, ebx
mov eax, 0
test rcx, rcx
je 0x1400eef3e
call fcn.140184350
mov qword [rsp + 0x48], rax
mov r12d, dword [rsp + 0x158]
mov edi, dword [rsp + 0x118]
mov rcx, rsi
call fcn.140184350
mov qword [rsp + 0x50], rax
test rbp, rbp
je 0x1400eefaf
mov ebx, dword [rbp + 0x18]
test ebx, ebx
jne 0x1400eefaf
mov eax, dword [rbp + 0x14]
lea ecx, [rax + 0x44]
lea edx, [rax + 0x30]
cmp eax, 0x4f
cmovbe edx, eax
cmp eax, 0x7bb
cmova edx, ecx
mov eax, dword [rbp + 0x10]
shl eax, 5
shl edx, 9
add eax, dword [rbp + 0xc]
add eax, edx
shl eax, 0x10
add eax, 0x200000
mov ecx, dword [rbp]
mov edx, dword [rbp + 4]
shr ecx, 1
shl edx, 5
add edx, ecx
mov ebx, dword [rbp + 8]
shl ebx, 0xb
add ebx, edx
or ebx, eax
mov dword [r13 + 0x10100], ebx
mov ecx, 1
mov edx, edi
or edx, ecx
mov eax, r12d
or eax, 2
cmp edx, 9
cmovne eax, r12d
mov dword [r13 + 0xf4], eax
cmp edi, ecx
je 0x1400eefe1
cmp edi, 2
jne 0x1400eefeb
or eax, 4
jmp 0x1400eefe4
or eax, 6
mov dword [r13 + 0xf4], eax
mov ecx, dword [rsp + 0x120]
mov ebx, dword [rsp + 0x100]
cmp qword [rsp + 0x140], 0
je 0x1400ef00e
or eax, 1
mov dword [r13 + 0xf4], eax
mov edi, dword [rsp + 0x150]
mov r12, qword [rsp + 0xf8]
lea rax, [r13 + 0x78]
mov qword [rsp + 0x58], rax
xor r14d, r14d
mov qword [r13 + 0x10104], r14
mov dword [r13 + 0xf8], r15d
mov qword [r13 + 0xd0], r14
mov dword [r13 + 0xfc], ecx
mov rdx, qword [r13 + 0x58]
mov rcx, r13
call fcn.14011392e
mov r15, rax
mov qword [r13 + 0xd8], rax
mov rax, qword [rsp + 0x48]
add eax, ebx
mov rdx, qword [rsp + 0x50]
lea ecx, [rdx + rax + 0x2e]
mov dword [r13 + 0xec], ecx
mov dword [r13 + 0xf0], 0x20
lea ecx, [rdx + rax]
add ecx, 0x4e
call case.0x1400878dc.1
mov qword [r13 + 0xe0], rax
mov dword [r13 + 0xe8], ebx
mov ecx, 0x2014b50
mov byte [rax + r14], cl
shr rcx, 8
inc r14
cmp r14, 4
jne 0x1400ef09b
mov word [rax + 4], di
cmp edi, 0x10000
jb 0x1400ef0be
mov word [rax + 4], 0xffff
mov word [rax + 6], 0x14
mov ecx, dword [r13 + 0xf4]
mov word [rax + 8], cx
cmp ecx, 0x10000
mov r9, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x118]
jb 0x1400ef0ea
mov word [rax + 8], 0xffff
mov ecx, dword [r13 + 0xf8]
mov word [rax + 0xa], cx
cmp ecx, 0x10000
jb 0x1400ef103
mov word [rax + 0xa], 0xffff
mov ecx, dword [r13 + 0x10100]
xor edx, edx
mov byte [rax + rdx + 0xc], cl
shr rcx, 8
inc rdx
cmp rdx, 4
jne 0x1400ef10c
test rcx, rcx
je 0x1400ef129
mov dword [rax + 0xc], 0xffffffff
mov qword [rax + 0x10], 0
mov dword [rax + 0x18], 0
mov rcx, qword [rsp + 0x50]
mov byte [rax + 0x1c], cl
mov byte [rax + 0x1d], ch
test ecx, 0xffff0000
je 0x1400ef151
mov word [rax + 0x1c], 0xffff
mov edx, ebx
mov word [rax + 0x1e], bx
test edx, 0xffff0000
je 0x1400ef165
mov word [rax + 0x1e], 0xffff
mov edi, r9d
mov word [rax + 0x20], r9w
test edi, 0xffff0000
je 0x1400ef17b
mov word [rax + 0x20], 0xffff
mov r10, rbx
mov word [rax + 0x22], 0
test rbp, rbp
je 0x1400ef1c2
mov ebx, dword [rbp + 0x1c]
mov word [rax + 0x24], bx
cmp ebx, 0x10000
jb 0x1400ef19e
mov word [rax + 0x24], 0xffff
mov ebx, dword [rbp + 0x20]
xor ebp, ebp
mov byte [rax + rbp + 0x26], bl
shr rbx, 8
inc rbp
cmp rbp, 4
jne 0x1400ef1a3
test rbx, rbx
je 0x1400ef1cf
mov dword [rax + 0x26], 0xffffffff
jmp 0x1400ef1cf
mov word [rax + 0x24], 0
mov dword [rax + 0x26], 0
mov r8d, ecx
mov ebx, 0xfffffffe
cmp r15, rbx
jbe 0x1400ef1f4
inc rbx
xor ebp, ebp
mov byte [rax + rbp + 0x2a], bl
shr rbx, 8
inc rbp
cmp rbp, 4
jne 0x1400ef1e1
jmp 0x1400ef21e
mov rbp, qword [r13 + 0x10150]
sub r15, rbp
xor ebp, ebp
mov byte [rax + rbp + 0x2a], r15b
shr r15, 8
inc rbp
cmp rbp, 4
jne 0x1400ef200
test r15, r15
je 0x1400ef21e
mov dword [rax + 0x2a], 0xffffffff
test ecx, ecx
je 0x1400ef249
mov bl, byte [rsi]
mov byte [rax + 0x2e], bl
cmp ecx, 1
je 0x1400ef249
lea rax, [r8 - 1]
xor ebp, ebp
mov rbx, qword [r13 + 0xe0]
mov cl, byte [rsi + rbp + 1]
mov byte [rbx + rbp + 0x2f], cl
inc rbp
cmp rax, rbp
jne 0x1400ef232
test r10d, r10d
je 0x1400ef26e
lea rax, [r8 + 0x2e]
xor ebp, ebp
mov cl, byte [r12 + rbp]
mov rbx, qword [r13 + 0xe0]
add rbx, rax
mov byte [rbp + rbx], cl
inc rbp
cmp rdx, rbp
jne 0x1400ef254
test r9d, r9d
mov rbx, qword [rsp + 0x108]
je 0x1400ef29d
lea rax, [rdx + r8]
add rax, 0x2e
xor edx, edx
mov cl, byte [rbx + rdx]
mov rbp, qword [r13 + 0xe0]
add rbp, rax
mov byte [rdx + rbp], cl
inc rdx
cmp rdi, rdx
jne 0x1400ef285
cmp qword [r13 + 0xe0], 0
je 0x1400ef322
mov eax, dword [rsp + 0x160]
mov dword [r13 + 0x1010c], eax
xorps xmm0, xmm0
movups xmmword [r13 + 0x10110], xmm0
xor ebx, ebx
mov qword [r13 + 0x10120], rbx
mov rcx, r13
mov rdx, rsi
mov r8d, dword [rsp + 0xf0]
mov r9, qword [rsp + 0x60]
call fcn.1400eeb0b
mov edi, eax
mov qword [r13 + 0x80], rbx
mov qword [r13 + 0x90], 0x10000
lea rax, [r13 + 0x100]
mov qword [r13 + 0x88], rax
mov dword [r13 + 0xc0], 0
test edi, edi
je 0x1400ef32c
mov dword [r13 + 0x10140], 0
jmp 0x1400ef5e1
mov edi, 0xffffff98
jmp 0x1400ef5e1
cmp dword [r13 + 0xf8], 8
jne 0x1400ef344
cmp dword [r13 + 0xfc], 0
je 0x1400ef607
mov dword [r13 + 0x10140], 0
mov rsi, qword [rsp + 0x140]
test rsi, rsi
je 0x1400ef5d7
mov dword [r13 + 0x10108], 1
call fcn.14005c17c
mov r14, rax
mov qword [r13 + 0x10138], rax
lea r15, [r13 + 0x10128]
mov eax, dword [0x1401f66d4]
lea ecx, [rax + 1]
mov dword [0x1401f66d4], ecx
test eax, eax
jne 0x1400ef3a7
xor ecx, ecx
call fcn.14017a4e8
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.140183010
mov rcx, rsi
mov rdx, r15
mov r8, r14
call fcn.1400f06dc
xor edi, edi
mov r12d, 0xff
call fcn.140183028
shr eax, 7
mov ebx, dword [r13 + 0x10128]
mov edx, dword [r13 + 0x10130]
mov ecx, edx
and ecx, 0xfffd
lea ebp, [rcx + 2]
xor ecx, 3
imul ecx, ebp
shr ecx, 8
mov ebp, ebx
xor ebp, eax
and ebp, r12d
shr ebx, 8
xor ebx, dword [r14 + rbp*4]
mov dword [r13 + 0x10128], ebx
and ebx, r12d
add ebx, dword [r13 + 0x1012c]
imul ebp, ebx, 0x8088405
inc ebp
mov dword [r13 + 0x1012c], ebp
shr ebp, 0x18
mov ebx, edx
and ebx, r12d
xor ebx, ebp
shr edx, 8
xor edx, dword [r14 + rbx*4]
mov dword [r13 + 0x10130], edx
xor ecx, eax
mov byte [rsp + rdi + 0x76], cl
inc rdi
cmp rdi, 0xa
jne 0x1400ef3bd
mov rcx, qword [rsp + 0x140]
mov rdx, r15
mov r8, r14
call fcn.1400f06dc
mov eax, dword [r13 + 0x10130]
mov edx, eax
and edx, 0xfffd
lea ecx, [rdx + 2]
xor edx, 3
imul edx, ecx
shr edx, 8
mov edi, dword [r13 + 0x10128]
mov ebp, dword [r13 + 0x1012c]
xor ebx, ebx
mov r8d, 0xff
movzx r9d, byte [rsp + rbx + 0x76]
mov ecx, edi
and ecx, r8d
xor ecx, r9d
shr edi, 8
xor edi, dword [r14 + rcx*4]
mov dword [r13 + 0x10128], edi
mov ecx, edi
and ecx, r8d
add ecx, ebp
imul ebp, ecx, 0x8088405
inc ebp
mov dword [r13 + 0x1012c], ebp
mov ecx, ebp
shr ecx, 0x18
mov esi, eax
and esi, r8d
xor esi, ecx
shr eax, 8
xor eax, dword [r14 + rsi*4]
mov dword [r13 + 0x10130], eax
xor edx, r9d
mov byte [rsp + rbx + 0x6a], dl
inc rbx
mov edx, eax
and edx, 0xfffd
lea ecx, [rdx + 2]
xor edx, 3
imul edx, ecx
shr edx, 8
cmp rbx, 0xa
jne 0x1400ef480
mov r10d, dword [rsp + 0x148]
mov r8d, r10d
shr r8d, 0x10
mov ecx, edi
xor ecx, r8d
mov ebx, 0xff
and ecx, ebx
shr edi, 8
xor edi, dword [r14 + rcx*4]
mov dword [r13 + 0x10128], edi
mov ecx, edi
and ecx, ebx
add ebp, ecx
imul r9d, ebp, 0x8088405
lea esi, [r9 + 1]
mov dword [r13 + 0x1012c], esi
shr esi, 0x18
mov ebp, eax
and ebp, ebx
xor ebp, esi
shr eax, 8
xor eax, dword [r14 + rbp*4]
mov dword [r13 + 0x10130], eax
xor edx, r8d
lea r8, [rsp + 0x6a]
mov byte [r8 + 0xa], dl
mov edx, eax
and edx, 0xfffd
lea ebp, [rdx + 2]
xor edx, 3
imul edx, ebp
shr r10d, 0x18
xor ecx, r10d
shr edi, 8
xor edi, dword [r14 + rcx*4]
mov dword [r13 + 0x10128], edi
and edi, ebx
lea ecx, [rdi + r9]
inc ecx
imul ecx, ecx, 0x8088405
inc ecx
mov dword [r13 + 0x1012c], ecx
shr ecx, 0x18
and ebx, eax
xor ebx, ecx
shr eax, 8
xor eax, dword [r14 + rbx*4]
shr edx, 8
mov dword [r13 + 0x10130], eax
xor r10d, edx
mov byte [r8 + 0xb], r10b
mov esi, 0xc
mov dword [r13 + 0x10140], esi
mov rcx, qword [r13 + 0x38]
mov rdx, qword [r13 + 0x58]
mov r9d, 0xc
call qword [r13 + 0x10]
mov edi, 0xffffffff
cmp eax, esi
jne 0x1400ef5e1
mov dword [r13 + 0x70], 1
xor edi, edi
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140163e00
mov eax, edi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x128]
mov r9d, eax
neg r9d
test eax, eax
cmovs r9d, eax
xorps xmm0, xmm0
movups xmmword [r13 + 0xa8], xmm0
mov qword [r13 + 0xb8], 0
lea rax, str.1.2.11
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x38], 0x58
mov rcx, qword [rsp + 0x58]
mov edx, r14d
mov r8d, 8
call fcn.14005c580
mov edi, eax
test eax, eax
jne 0x1400ef312
mov dword [r13 + 0xd0], 8
jmp 0x1400ef344