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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x12d0]
mov eax, 0x13d0
call fcn.14000f300
sub rsp, rax
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rbp + 0x12c0], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov dword [rsp + 0x24], ecx
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx], rcx
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rcx
mov edi, 1
mov dword [rsp + 0x24], edi
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
mov dword [rbp + 0x12b4], 0xffffffff
mov dword [rsp + 0x34], eax
nop
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edi
mov dword [rsp + rdi*4 + 0x34], ecx
inc rdi
cmp rdi, 0x270
jb 0x1400032c0
mov dword [rsp + 0x30], 0x270
mov edi, 0xa
nop dword [rax]
lea rcx, [rsp + 0x30]
call fcn.14000d5b0
mov ecx, eax
lea rax, [rcx + rcx*4]
test eax, eax
jne 0x140003319
lea rcx, [rsp + 0x30]
call fcn.14000d5b0
mov ecx, eax
lea rax, [rcx + rcx*4]
cmp eax, 1
jb 0x140003304
shr rax, 0x20
add eax, 0x80000001
xor eax, 0x80000000
sub eax, 1
je 0x1400034d9
sub eax, 1
je 0x1400034b4
sub eax, 1
je 0x140003470
sub eax, 1
je 0x140003407
cmp eax, 1
jne 0x1400034fe
mov byte [rsp + 0x20], 0xf
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x14000336c
mov byte [rdx], 0xf
inc qword [rbx + 8]
jmp 0x140003379
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0x1f
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x140003391
mov byte [rdx], 0x1f
inc qword [rbx + 8]
jmp 0x14000339e
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0x44
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400033b6
mov byte [rdx], 0x44
inc qword [rbx + 8]
jmp 0x1400033c3
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400033db
mov byte [rdx], 0
inc qword [rbx + 8]
jmp 0x1400033e8
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400034f1
mov byte [rdx], 0
inc qword [rbx + 8]
jmp 0x1400034fe
mov byte [rsp + 0x20], 0xf
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x14000341f
mov byte [rdx], 0xf
inc qword [rbx + 8]
jmp 0x14000342c
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0x1f
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x140003444
mov byte [rdx], 0x1f
inc qword [rbx + 8]
jmp 0x140003451
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0x40
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400033db
mov byte [rdx], 0x40
inc qword [rbx + 8]
jmp 0x1400033e8
mov byte [rsp + 0x20], 0xf
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x140003488
mov byte [rdx], 0xf
inc qword [rbx + 8]
jmp 0x140003495
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov byte [rsp + 0x20], 0x1f
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400033db
mov byte [rdx], 0x1f
inc qword [rbx + 8]
jmp 0x1400033e8
mov byte [rsp + 0x20], 0x66
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400034cc
mov byte [rdx], 0x66
inc qword [rbx + 8]
jmp 0x1400034d9
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
mov byte [rsp + 0x20], 0x90
je 0x1400034f1
mov byte [rdx], 0x90
inc qword [rbx + 8]
jmp 0x1400034fe
lea r8, [rsp + 0x20]
mov rcx, rbx
call fcn.14000cb40
sub rdi, 1
jne 0x1400032f0
mov rax, rbx
mov rcx, qword [rbp + 0x12c0]
xor rcx, rsp
call fcn.14000e270
lea r11, [rsp + 0x13d0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret