Function at 0x14010f730
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, 0x38
mov ebp, 0xffffff9a
test rcx, rcx
je 0x14010fa2a
mov r13, rcx
mov rbx, qword [rcx + 0x110]
test rbx, rbx
je 0x14010fa2a
cmp qword [rbx], 0
je 0x14010fa25
test r8d, r8d
je 0x14010fa3d
mov qword [rbx + 0x18], rdx
mov dword [rbx + 0x20], r8d
mov r8d, r8d
mov rax, qword [rbx + 0x98]
mov r14d, dword [rbx + 0x10]
mov rdx, r14
add rdx, rax
xor ebp, ebp
mov ecx, 0
cmp rdx, r8
jae 0x14010f7b2
cmp dword [rbx + 0x118], 0
je 0x14010fa45
add eax, r14d
mov dword [rbx + 0x20], eax
sete cl
test cl, cl
jne 0x14010fa2a
lea rax, [rbx + 8]
mov qword [rsp + 0x28], rax
lea rax, [rbx + 0xa8]
mov qword [rsp + 0x30], rax
xor esi, esi
mov r15d, 0xff
test r14d, r14d
je 0x14010f839
mov eax, dword [rbx + 0x108]
test eax, eax
je 0x14010f7f3
cmp dword [rbx + 0x118], 0
je 0x14010f9bb
test r14d, r14d
jne 0x14010f806
cmp qword [rbx + 0x98], 0
je 0x14010fa4c
mov eax, dword [rbx + 0x20]
cmp eax, r14d
cmovb r14d, eax
test r14d, r14d
je 0x14010f969
mov ebp, r14d
xor eax, eax
mov rcx, qword [rbx + 8]
mov rdx, qword [rbx + 0x18]
mov cl, byte [rcx + rax]
mov byte [rdx + rax], cl
inc rax
cmp rbp, rax
jne 0x14010f81e
jmp 0x14010f96b
mov r14, qword [rbx + 0x98]
test r14, r14
je 0x14010fa1d
mov eax, 0x4000
cmp r14, rax
cmovae r14, rax
mov rdx, qword [rbx + 0x100]
mov r8, qword [rbx + 0x110]
add r8, qword [rbx + 0x60]
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
call fcn.14011b3b0
mov r12d, 0xffffffff
test eax, eax
jne 0x14010fa4f
mov rdx, qword [rbx + 0x100]
mov r8, qword [rbx]
mov rcx, qword [rbx + 0xe0]
mov r9d, r14d
call qword [rbx + 0xb0]
cmp eax, r14d
jne 0x14010fa4f
mov r8, rsi
cmp dword [r13 + 0x118], 0
mov r9d, 0xfffd
je 0x14010f94b
xor eax, eax
mov ecx, dword [r13 + 0x128]
and ecx, r9d
lea edx, [rcx + 2]
xor ecx, 3
imul ecx, edx
shr ecx, 8
mov rdx, qword [rbx]
xor cl, byte [rdx + rax]
mov byte [rdx + rax], cl
movzx ecx, cl
mov rdx, qword [r13 + 0x130]
mov ebp, dword [r13 + 0x120]
mov edi, dword [r13 + 0x128]
mov esi, ebp
and esi, r15d
xor esi, ecx
shr ebp, 8
xor ebp, dword [rdx + rsi*4]
mov dword [r13 + 0x120], ebp
and ebp, r15d
add ebp, dword [r13 + 0x124]
imul ebp, ebp, 0x8088405
inc ebp
mov dword [r13 + 0x124], ebp
shr ebp, 0x18
mov esi, edi
and esi, r15d
xor esi, ebp
shr edi, 8
xor edi, dword [rdx + rsi*4]
mov dword [r13 + 0x128], edi
mov rdx, qword [rbx]
mov byte [rdx + rax], cl
inc rax
cmp r14, rax
jne 0x14010f8be
add qword [rbx + 0x60], r14
sub qword [rbx + 0x98], r14
mov rax, qword [rbx]
mov qword [rbx + 8], rax
mov dword [rbx + 0x10], r14d
mov rsi, r8
jmp 0x14010f7dc
xor ebp, ebp
add qword [rbx + 0x88], rbp
mov rdx, qword [rbx + 0x18]
mov ecx, dword [rbx + 0x90]
mov r8d, r14d
call fcn.14006cd40
mov dword [rbx + 0x90], eax
sub qword [rbx + 0xa0], rbp
sub dword [rbx + 0x10], r14d
sub dword [rbx + 0x20], r14d
add qword [rbx + 0x18], rbp
add qword [rbx + 8], rbp
add dword [rbx + 0x24], r14d
add esi, r14d
cmp dword [rbx + 0x20], 0
je 0x14010fa41
mov r14d, dword [rbx + 0x10]
jmp 0x14010f7d7
cmp eax, 0xc
je 0x14010f9a8
mov r12d, dword [rbx + 0x24]
mov r14, qword [rbx + 0x18]
mov rcx, qword [rsp + 0x28]
mov edx, 2
call fcn.140061b20
mov ebp, eax
test eax, eax
js 0x14010f9ea
cmp qword [rbx + 0x28], 0
mov eax, 0xfffffffd
cmovne ebp, eax
mov edi, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x90]
sub rdi, r12
add qword [rbx + 0x88], rdi
mov rdx, r14
mov r8d, edi
call fcn.14006cd40
mov dword [rbx + 0x90], eax
sub qword [rbx + 0xa0], rdi
add esi, edi
test ebp, ebp
je 0x14010f9a8
jmp 0x14010fa54
xor r14d, r14d
jmp 0x14010f7dc
mov ebp, 0xffffff9c
mov eax, ebp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
jmp 0x14010fa2a
mov ebp, esi
jmp 0x14010fa2a
xor ecx, ecx
jmp 0x14010f7b2
mov r12d, esi
mov ebp, r12d
jmp 0x14010fa2a
mov r12d, esi
cmp ebp, 1
jne 0x14010fa2a
jmp 0x14010fa4f