Function at 0x14004b020
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov ebp, r8d
mov r13d, edx
lea r12, [rcx + 8]
mov r14, qword [r12 + 8]
sub r14, qword [r12]
sar r14, 3
mov qword [rsp + 0x28], r14
xor esi, esi
xor eax, eax
mov qword [rsp + 0x20], rax
xor r15d, r15d
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea edi, [rsi + 1]
lea rbx, [0x14013bcb0]
mov eax, dword [rdx + rcx]
cmp dword [0x14013d038], eax
jle 0x14004b0fa
lea rcx, [0x14013d038]
call fcn.1400758c8
cmp dword [0x14013d038], 0xffffffff
jne 0x14004b0fa
mov dword [0x14013d034], 0xffffffff
mov r8d, 0x1571
mov dword [0x14013bcb4], r8d
mov edx, edi
nop word [rax + rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, edx
mov dword [rbx + rdx*4 + 4], r8d
inc rdx
cmp rdx, 0x270
jb 0x14004b0c0
mov dword [0x14013bcb0], 0x270
lea rcx, [0x14013d038]
call fcn.140075868
call fcn.140074154
mov rbx, rax
call fcn.140074138
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rdx, [rcx + rax]
mov dword [0x14013bcb4], edx
lea r14, [0x14013bcb0]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul ecx, eax, 0x6c078965
add ecx, edi
mov dword [r14 + rdi*4 + 4], ecx
mov edx, ecx
inc rdi
cmp rdi, 0x270
jb 0x14004b130
mov dword [0x14013bcb0], 0x270
sub ebp, r13d
lea ebx, [rbp + 1]
mov dword [rsp + 0xc8], ebx
mov rcx, r14
call fcn.14004e350
xor edx, edx
div ebx
lea ebx, [r13 + 1]
add ebx, edx
and ebx, 0xfffffffe
mov dword [rsp + 0xc0], ebx
xor r13d, r13d
cmp qword [rsp + 0x28], rsi
je 0x14004b415
mov rdi, qword [rsp + 0x28]
nop dword [rax + rax]
mov rax, qword [r12]
mov r14, qword [rax + r13*8]
mov qword [rsp + 0x30], r14
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
test al, al
je 0x14004b409
mov eax, ebx
mov rbp, qword [rsp + 0x20]
cmp rbp, rax
jne 0x14004b2a8
mov ecx, 0xe
call fcn.140075634
mov rbx, rax
mov dword [rax], 0x25ff
mov word [rax + 4], 0
xor eax, eax
mov qword [rbx + 6], rax
lea ecx, [rax + 0x38]
call fcn.1400753a0
mov r15, rax
mov qword [rsp + 0x38], 0xffffffffffffffff
xor ebp, ebp
mov dword [rsp + 0x40], ebp
mov dword [rax + 0x10], ebp
lea rax, vtable.ModifiedTranslation.0
mov qword [r15], rax
mov qword [r15 + 0x28], rbx
mov dword [r15 + 0x30], 0xe
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [r15 + 8], xmm0
mov qword [r15 + 0x18], rsi
mov byte [r15 + 0x20], bpl
mov qword [rsp + 0x20], r15
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax + 0x10]
cmp rdx, qword [rax + 0x18]
je 0x14004b256
mov ecx, ebp
mov qword [rdx], r15
add qword [r12 + 8], 8
jmp 0x14004b268
lea r8, [rsp + 0x20]
mov rcx, r12
call fcn.14004eb80
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14004b277
mov edx, 0x28
call fcn.14007562c
mov qword [rsp + 0x20], rbp
lea rcx, [0x14013bcb0]
call fcn.14004e350
xor edx, edx
div dword [rsp + 0xc8]
mov eax, dword [rsp + 0xb8]
inc eax
add eax, edx
and eax, 0xfffffffe
mov dword [rsp + 0xc0], eax
jmp 0x14004b2d8
test rsi, rsi
je 0x14004b2d1
mov qword [r14 + 0x18], rsi
mov byte [r14 + 0x20], 0
inc rbp
mov qword [rsp + 0x20], rbp
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
mov eax, eax
add rsi, rax
jmp 0x14004b409
mov eax, dword [rsp + 0xc0]
mov esi, 0xe
mov rbx, r13
mov ebp, eax
add rbp, r13
cmp r13, rbp
jae 0x14004b32a
mov r14, qword [rsp + 0x28]
nop
cmp rbx, r14
jae 0x14004b320
mov rax, qword [r12]
lea rdi, [rax + rbx*8]
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 0x10]
test al, al
je 0x14004b320
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, eax
add rsi, rax
inc rbx
cmp rbx, rbp
jb 0x14004b2f0
mov r14, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
mov qword [rsp + 0x48], 0
lea rax, [rsi + 0xbf]
and rax, 0xffffffffffffff40
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x48]
lea rcx, [0x140001350]
call fcn.14003faa0
cmp eax, 0xffffffff
je 0x14004b428
cmp byte [rsp + 0x58], 0
je 0x14004b428
mov rbx, qword [rsp + 0x48]
test rbx, rbx
je 0x14004b428
test r15, r15
je 0x14004b3e6
mov rax, qword [r15]
mov rcx, r15
call qword [rax]
mov rcx, rax
mov rax, rbx
sub rax, qword [r15 + 0x18]
cqo
mov r8, rax
xor r8, rdx
sub r8, rdx
lea rax, [r8 - 2]
cqo
xor rax, rdx
sub rax, rdx
cmp rax, 0x7f
jg 0x14004b3bd
mov byte [rcx], 0xeb
movzx eax, bl
sub al, byte [r15 + 0x18]
sub al, 2
mov byte [rcx + 1], al
jmp 0x14004b3e6
lea rax, [r8 - 5]
cqo
xor rax, rdx
sub rax, rdx
cmp rax, 0x7fffffff
jg 0x14004b3e2
mov byte [rcx], 0xe9
mov eax, ebx
sub eax, dword [r15 + 0x18]
sub eax, 5
mov dword [rcx + 1], eax
jmp 0x14004b3e6
mov qword [rcx + 6], rbx
mov qword [r14 + 0x18], rbx
mov byte [r14 + 0x20], 1
inc qword [rsp + 0x20]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
mov esi, eax
add rsi, rbx
mov ebx, dword [rsp + 0xc0]
inc r13
cmp r13, rdi
jb 0x14004b1a0
mov al, 1
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor al, al
jmp 0x14004b417