Function at 0x14014f8d0
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, 0x78
mov rax, qword [0x140190038]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov ebx, 0xffffff9a
test rcx, rcx
je 0x14014fc1f
mov qword [rsp + 0x48], r9
mov ebp, dword [rsp + 0x100]
mov eax, ebp
and eax, 0xfffffff7
jne 0x14014fc1f
mov r13, r8
mov r15, rdx
mov rsi, rcx
cmp dword [rcx + 0x70], 1
je 0x14014fc51
test r15, r15
lea r14, [0x14016f1d6]
cmovne r14, r15
mov r15, qword [rsp + 0xf8]
xor ebx, ebx
mov r12d, 0
test r15, r15
je 0x14014f955
mov rcx, r15
call fcn.1400f4fc0
mov r12, rax
mov edi, dword [rsp + 0x148]
mov rcx, r14
call fcn.1400f4fc0
mov qword [rsp + 0x40], rax
test r13, r13
je 0x14014f9c2
mov ebx, dword [r13 + 0x18]
test ebx, ebx
jne 0x14014f9c2
mov eax, dword [r13 + 0x14]
lea ecx, [rax + 0x30]
cmp eax, 0x50
cmovb ecx, eax
lea edx, [rax + 0x44]
cmp eax, 0x7bc
cmovae ecx, edx
mov eax, dword [r13 + 0xc]
mov edx, dword [r13 + 0x10]
shl ecx, 0x19
shl edx, 0x15
shl eax, 0x10
add eax, edx
add eax, ecx
add eax, 0x200000
mov ecx, dword [r13]
mov edx, dword [r13 + 4]
shr ecx, 1
shl edx, 5
add edx, ecx
mov ebx, dword [r13 + 8]
shl ebx, 0xb
add ebx, edx
or ebx, eax
mov dword [rsi + 0x10100], ebx
mov edx, dword [rsp + 0x108]
mov ecx, edx
and ecx, 0xfffffffe
mov eax, edi
or eax, 2
cmp ecx, 8
cmovne eax, edi
mov dword [rsi + 0xf4], eax
cmp edx, 1
je 0x14014f9f4
cmp edx, 2
jne 0x14014f9fd
or eax, 4
jmp 0x14014f9f7
or eax, 6
mov dword [rsi + 0xf4], eax
mov ebx, dword [rsp + 0x140]
mov ecx, dword [rsp + 0x110]
mov edi, dword [rsp + 0xf0]
cmp qword [rsp + 0x130], 0
je 0x14014fa26
or eax, 1
mov dword [rsi + 0xf4], eax
xor eax, eax
mov qword [rsi + 0x10104], rax
mov dword [rsi + 0xf8], ebp
mov qword [rsi + 0xd0], rax
mov dword [rsi + 0xfc], ecx
mov rdx, qword [rsi + 0x58]
mov rcx, rsi
call fcn.140158dd0
mov rbp, rax
mov qword [rsi + 0xd8], rax
lea eax, [rdi + r12]
mov rdx, qword [rsp + 0x40]
lea ecx, [rdx + rax + 0x2e]
mov dword [rsi + 0xec], ecx
mov dword [rsi + 0xf0], 0x20
lea ecx, [rdx + rax]
add ecx, 0x4e
call fcn.14007faf0
mov qword [rsi + 0xe0], rax
mov dword [rsi + 0xe8], edi
mov dword [rax], 0x2014b50
mov byte [rax + 4], bl
mov byte [rax + 5], bh
cmp ebx, 0x10000
jb 0x14014faa7
mov word [rax + 4], 0xffff
mov word [rax + 6], 0x14
mov ecx, dword [rsi + 0xf4]
mov word [rax + 8], cx
cmp ecx, 0x10000
jb 0x14014fac5
mov word [rax + 8], 0xffff
mov ecx, dword [rsi + 0xf8]
mov word [rax + 0xa], cx
cmp ecx, 0x10000
jb 0x14014fadd
mov word [rax + 0xa], 0xffff
mov ecx, dword [rsi + 0x10100]
mov byte [rax + 0xc], cl
mov byte [rax + 0xd], ch
mov edx, ecx
shr edx, 0x10
mov byte [rax + 0xe], dl
shr ecx, 0x18
mov byte [rax + 0xf], cl
mov qword [rax + 0x10], 0
mov dword [rax + 0x18], 0
mov rdx, qword [rsp + 0x40]
mov ecx, edx
mov byte [rax + 0x1c], dl
mov byte [rax + 0x1d], dh
cmp rcx, 0x10000
jb 0x14014fb22
mov word [rax + 0x1c], 0xffff
mov word [rax + 0x1e], di
cmp edi, 0x10000
jb 0x14014fb34
mov word [rax + 0x1e], 0xffff
mov word [rax + 0x20], r12w
cmp r12d, 0x10000
jb 0x14014fb48
mov word [rax + 0x20], 0xffff
mov word [rax + 0x22], 0
test r13, r13
je 0x14014fc3f
mov edx, dword [r13 + 0x1c]
mov word [rax + 0x24], dx
cmp edx, 0x10000
jb 0x14014fb6d
mov word [rax + 0x24], 0xffff
mov edx, dword [r13 + 0x20]
mov dword [rax + 0x26], edx
mov edx, 0xffffffff
cmp rbp, rdx
jae 0x14014fb8e
sub rbp, qword [rsi + 0x10150]
mov dword [rax + 0x2a], ebp
shr rbp, 0x20
je 0x14014fb95
mov dword [rax + 0x2a], 0xffffffff
mov eax, edi
cmp dword [rsp + 0x40], 0
je 0x14014fbb8
xor edx, edx
mov r8b, byte [r14 + rdx]
mov r9, qword [rsi + 0xe0]
mov byte [r9 + rdx + 0x2e], r8b
inc rdx
cmp rcx, rdx
jne 0x14014fba0
test edi, edi
je 0x14014fbe5
mov rdx, qword [rsp + 0xe8]
lea r8, [rcx + 0x2e]
xor r9d, r9d
mov r10b, byte [rdx + r9]
mov r11, qword [rsi + 0xe0]
add r11, r8
mov byte [r9 + r11], r10b
inc r9
cmp rax, r9
jne 0x14014fbcb
test r12d, r12d
je 0x14014fc10
mov edx, r12d
add rax, rcx
add rax, 0x2e
xor ecx, ecx
mov r8b, byte [r15 + rcx]
mov r9, qword [rsi + 0xe0]
add r9, rax
mov byte [rcx + r9], r8b
inc rcx
cmp rdx, rcx
jne 0x14014fbf6
mov ebx, 0xffffff98
cmp qword [rsi + 0xe0], 0
jne 0x14014fc69
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400d2660
mov eax, ebx
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov word [rax + 0x24], 0
mov dword [rax + 0x26], 0
jmp 0x14014fb74
mov rcx, rsi
xor edx, edx
xor r8d, r8d
call fcn.140150300
mov ebx, eax
test eax, eax
jne 0x14014fc1f
jmp 0x14014f927
mov eax, dword [rsp + 0x150]
mov r8d, dword [rsp + 0xe0]
mov dword [rsi + 0x1010c], eax
xorps xmm0, xmm0
movups xmmword [rsi + 0x10110], xmm0
xor edi, edi
mov qword [rsi + 0x10120], rdi
mov rcx, rsi
mov rdx, r14
mov r9, qword [rsp + 0x48]
call fcn.14014f5a0
mov ebx, eax
mov qword [rsi + 0x80], rdi
mov qword [rsi + 0x90], 0x10000
lea rax, [rsi + 0x100]
mov qword [rsi + 0x88], rax
mov dword [rsi + 0xc0], 0
test ebx, ebx
je 0x14014fce0
mov dword [rsi + 0x10140], 0
jmp 0x14014fc1f
cmp dword [rsi + 0xf8], 8
jne 0x14014fcf2
cmp dword [rsi + 0xfc], 0
je 0x14014fd19
mov dword [rsi + 0x10140], 0
cmp qword [rsp + 0x130], 0
jne 0x14014fd98
mov dword [rsi + 0x70], 1
xor ebx, ebx
jmp 0x14014fc1f
mov eax, dword [rsp + 0x128]
mov edx, dword [rsp + 0x120]
mov ecx, dword [rsp + 0x118]
mov r9d, ecx
neg r9d
cmovns r9d, ecx
lea rcx, [rsi + 0x78]
xorps xmm0, xmm0
movups xmmword [rsi + 0xa8], xmm0
mov qword [rsi + 0xb8], 0
lea r8, str.1.2.13.1_motley
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x38], 0x58
mov edx, dword [rsp + 0x108]
mov r8d, 8
call fcn.14006a590
mov ebx, eax
test eax, eax
jne 0x14014fcd1
mov dword [rsi + 0xd0], 8
jmp 0x14014fcf2
movabs r14, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x50], r14
mov dword [rsp + 0x58], 0xaaaaaaaa
mov dword [rsi + 0x10108], 1
call fcn.140133d00
mov rbx, rax
mov qword [rsi + 0x10138], rax
lea rdi, [rsi + 0x10128]
mov qword [rsp + 0x60], r14
mov word [rsp + 0x68], 0xaaaa
mov eax, dword [0x1401ace34]
lea ecx, [rax + 1]
mov dword [0x1401ace34], ecx
test eax, eax
jne 0x14014fe01
xor ecx, ecx
call fcn.1400ed858
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.1400f4354
mov ebp, dword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
mov rdx, rdi
mov r8, rbx
call fcn.140150c30
xor r14d, r14d
mov r15d, 0xff
call fcn.1400f436c
shr eax, 7
mov r8d, dword [rsi + 0x10128]
mov edx, dword [rsi + 0x10130]
mov ecx, edx
and ecx, 0xfffd
mov r9d, edx
or r9d, 2
xor ecx, 3
imul ecx, r9d
mov r9d, r8d
xor r9d, eax
and r9d, r15d
shr r8d, 8
xor r8d, dword [rbx + r9*4]
mov dword [rsi + 0x10128], r8d
and r8d, r15d
add r8d, dword [rsi + 0x1012c]
shr ecx, 8
imul r8d, r8d, 0x8088405
inc r8d
mov dword [rsi + 0x1012c], r8d
shr r8d, 0x18
mov r9d, edx
and r9d, r15d
xor r9d, r8d
shr edx, 8
xor edx, dword [rbx + r9*4]
mov dword [rsi + 0x10130], edx
xor ecx, eax
mov byte [rsp + r14 + 0x60], cl
inc r14
cmp r14, 0xa
jne 0x14014fe24
mov rcx, qword [rsp + 0x130]
mov rdx, rdi
mov r8, rbx
call fcn.140150c30
mov eax, dword [rsi + 0x10130]
mov ecx, dword [rsi + 0x10128]
mov edx, dword [rsi + 0x1012c]
xor r8d, r8d
mov r9d, 0xff
mov r10d, eax
and r10d, 0xfffd
mov r11d, eax
or r11d, 2
xor r10d, 3
imul r10d, r11d
shr r10d, 8
mov r11b, byte [rsp + r8 + 0x60]
mov edi, ecx
xor dil, r11b
movzx edi, dil
shr ecx, 8
xor ecx, dword [rbx + rdi*4]
mov dword [rsi + 0x10128], ecx
mov edi, ecx
and edi, r9d
add edi, edx
imul edx, edi, 0x8088405
inc edx
mov dword [rsi + 0x1012c], edx
mov edi, edx
shr edi, 0x18
mov r14d, eax
and r14d, r9d
xor r14d, edi
shr eax, 8
xor eax, dword [rbx + r14*4]
mov dword [rsi + 0x10130], eax
xor r10b, r11b
mov byte [rsp + r8 + 0x50], r10b
inc r8
cmp r8, 0xa
jne 0x14014fee1
mov r9d, 0xfffd
mov r8d, eax
and r8d, r9d
mov r10d, eax
or r10d, 2
xor r8d, 3
imul r8d, r10d
shr r8d, 8
mov edi, ebp
shr edi, 0x10
mov r11d, ecx
xor r11d, edi
mov r10d, 0xff
and r11d, r10d
shr ecx, 8
xor ecx, dword [rbx + r11*4]
mov dword [rsi + 0x10128], ecx
mov r11d, ecx
and r11d, r10d
add edx, r11d
imul edx, edx, 0x8088405
lea r14d, [rdx + 1]
mov dword [rsi + 0x1012c], r14d
shr r14d, 0x18
mov r15d, eax
and r15d, r10d
xor r15d, r14d
shr eax, 8
xor eax, dword [rbx + r15*4]
mov dword [rsi + 0x10130], eax
xor edi, r8d
lea r8, [rsp + 0x50]
mov byte [r8 + 0xa], dil
and r9d, eax
mov edi, eax
or edi, 2
xor r9d, 3
imul r9d, edi
shr ebp, 0x18
xor r11d, ebp
shr ecx, 8
xor ecx, dword [rbx + r11*4]
mov dword [rsi + 0x10128], ecx
and ecx, r10d
add ecx, edx
inc ecx
imul ecx, ecx, 0x8088405
inc ecx
mov dword [rsi + 0x1012c], ecx
shr ecx, 0x18
and r10d, eax
xor r10d, ecx
shr eax, 8
xor eax, dword [rbx + r10*4]
shr r9d, 8
mov dword [rsi + 0x10130], eax
xor ebp, r9d
mov byte [r8 + 0xb], bpl
mov dword [rsi + 0x10140], 0xc
mov rdx, qword [rsi + 0x58]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x38]
mov r9d, 0xc
call qword [0x1401bc008]
mov ebx, 0xffffffff
cmp eax, 0xc
jne 0x14014fc1f
jmp 0x14014fd0b