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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3ac0]
mov eax, 0x3bc0
call fcn.1401a4ab0
sub rsp, rax
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x3c10], rbx
mov r14, rdx
mov rbx, rcx
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x78], rdx
lea rdi, [rbp + 0x13a0]
lea rsi, [rbp + 0x2730]
mov ecx, 0x1390
rep movsb byte [rdi], byte [rsi]
lea rax, [rbp + 0x13a0]
mov qword [rsp + 0x20], rax
mov ecx, 0x50
call fcn.140154508
mov r15, rax
lea rax, vtable.Concurrency::details::stl_critical_section_win7.0
mov qword [r15 + 8], rax
lea rcx, [r15 + 0x10]
call qword [sym.imp.KERNEL32.dll_InitializeSRWLock]
or r12d, 0xffffffff
mov dword [r15 + 0x18], r12d
mov dword [r15], 2
and dword [r15 + 0x1c], 0
mov qword [rsp + 0x20], r15
lea rcx, [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand_s]
test eax, eax
jne 0x14014247e
or dword [rbp + 0x1394], 0xffffffff
mov ecx, dword [rsp + 0x38]
mov dword [rbp + 0x14], ecx
lea r13d, [r12 + 2]
mov esi, r13d
mov edi, r13d
mov r8d, 0x270
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, esi
mov dword [rbp + rdi*4 + 0x14], ecx
add esi, r13d
add rdi, r13
cmp rdi, r8
jl 0x140142288
mov dword [rbp + 0x10], r8d
mov r8d, 0x1388
lea rdx, [rbp + 0x10]
lea rdi, [rbp + 0x13a0]
mov rcx, rdi
call fcn.1401572b0
and qword [rsp + 0x20], 0
mov qword [rdi + 0x1388], r15
mov rdx, rdi
lea rcx, [rbp - 0x78]
call fcn.140142988
mov rsi, rax
mov qword [rbp - 0x80], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1401422fe
lock add dword [rcx + 8], r13d
mov rcx, qword [r14 + 8]
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x28]
mov qword [rsp + 0x40], rax
mov ecx, 0x98
call fcn.140154508
mov rdi, rax
mov qword [rsp + 0x48], rax
mov dword [rax + 8], r13d
mov dword [rax + 0xc], r13d
lea rax, [0x1401be6c0]
mov qword [rdi], rax
lea r15, [rdi + 0x10]
mov rax, qword [rsi]
mov rdx, r15
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140055453.0]
mov rax, qword [rsp + 0x30]
xor r8d, r8d
test rax, rax
je 0x140142367
lock add dword [rax + 8], r13d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rax
mov qword [rbx + 0x38], r8
lea rdx, [0x1401c3118]
mov qword [rbx], rdx
mov qword [rbx + 8], r8
mov qword [rbx + 0x10], r8
test rax, rax
je 0x1401423a0
lock add dword [rax + 8], r13d
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], r15
mov qword [rbx + 0x20], rdi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rbx + 0x38], rbx
lea rcx, [rsp + 0x50]
call fcn.1400141bc
nop
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x14014240c
mov eax, r12d
lock xadd dword [rdi + 8], eax
add eax, r12d
jne 0x14014240c
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x140055453.0]
mov eax, r12d
lock xadd dword [rdi + 0xc], eax
add eax, r12d
jne 0x14014240c
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 8]
call qword [case.0x140055453.0]
nop
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140055453.0]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x140142460
mov eax, r12d
lock xadd dword [rdi + 8], eax
add eax, r12d
jne 0x140142460
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x140055453.0]
mov edx, r12d
lock xadd dword [rdi + 0xc], edx
add edx, r12d
jne 0x140142460
mov rdx, qword [rdi]
mov rcx, rdi
mov rax, qword [rdx + 8]
call qword [case.0x140055453.0]
mov rax, rbx
mov rbx, qword [rsp + 0x3c10]
add rsp, 0x3bc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.invalid_random_device_value
call fcn.14003b5ac
int3