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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1310]
mov eax, 0x1410
call fcn.140009d80
sub rsp, rax
mov rax, qword [0x140010040]
xor rax, rsp
mov qword [rbp + 0x1300], rax
mov rsi, rcx
mov qword [rsp + 0x20], rcx
xor ebx, ebx
xorps xmm0, xmm0
cmp byte [0x140010bf0], bl
je 0x140002c13
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rbx
mov qword [rcx + 0x18], rbx
lea r8d, [rbx + 0x20]
lea rdx, str.00000000000000000000000000000000
call fcn.140007860
jmp 0x140002f48
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbx
mov r8d, 0x40
lea rdx, str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ__
lea rcx, [rsp + 0x50]
call fcn.140007860
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov ecx, 0x30
call fcn.140008f50
mov r15, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], 0x20
mov r13d, 0x2f
mov qword [rsp + 0x48], r13
movdqa xmm0, xmmword [str._________________]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov byte [rax + 0x20], 0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12f4], 0xffffffff
mov dword [rsp + 0x74], eax
lea edx, [r13 - 0x2e]
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x74], eax
inc rdx
cmp rdx, 0x270
jb 0x140002ca0
mov r8d, 0x270
mov dword [rsp + 0x70], r8d
mov r14d, dword [rsp + 0x60]
dec r14d
mov qword [rsp + 0x20], rbx
mov r12, qword [rsp + 0x50]
nop dword [rax]
mov eax, r14d
cmp r14d, 0x80000000
cmovae eax, r14d
cmp eax, 0xffffffff
jne 0x140002e6b
cmp r8d, 0x270
jne 0x140002d53
lea r8, [rsp + 0x78]
mov r9d, 0x270
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub r9, 1
jne 0x140002d10
mov r8d, dword [rsp + 0x70]
jmp 0x140002e2e
cmp r8d, 0x4e0
jb 0x140002e2e
mov r8, rbx
mov eax, dword [rbp + r8*4 + 0x934]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x938]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf68]
shr edx, 1
xor ecx, edx
mov dword [rsp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0xe3
jb 0x140002d63
mov r8d, 0xe3
nop dword [rax]
mov eax, dword [rbp + r8*4 + 0x934]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x938]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + r8*4 - 0x418]
mov dword [rsp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0x26f
jb 0x140002db0
mov edx, dword [rbp + 0x12f0]
and edx, 0x80000000
mov eax, dword [rsp + 0x74]
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + 0x5a4]
mov dword [rbp + 0x930], ecx
mov r8d, ebx
mov dword [rsp + 0x70], ebx
mov eax, r8d
mov edx, dword [rsp + rax*4 + 0x74]
inc r8d
mov dword [rsp + 0x70], r8d
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x12f4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
jmp 0x140002eb1
lea ebx, [rax + 1]
lea rcx, [rsp + 0x70]
call fcn.140008540
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140002ea6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140002ea6
lea rcx, [rsp + 0x70]
call fcn.140008540
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140002e92
shr rcx, 0x20
mov r8d, dword [rsp + 0x70]
xor ebx, ebx
lea rdx, [rsp + 0x50]
mov r9, qword [rsp + 0x68]
cmp r9, 0xf
cmova rdx, r12
movsxd rax, ecx
movzx ecx, byte [rax + rdx]
lea rax, [rsp + 0x30]
cmp r13, 0xf
cmova rax, r15
mov rdx, qword [rsp + 0x20]
mov byte [rax + rdx], cl
inc rdx
mov qword [rsp + 0x20], rdx
cmp rdx, 0x20
jge 0x140002efc
mov r13, qword [rsp + 0x48]
mov r15, qword [rsp + 0x30]
jmp 0x140002ce0
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
cmp r9, 0xf
jbe 0x140002f48
lea rdx, [r9 + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x140002f40
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002f40
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r12
call fcn.1400091cc
mov rax, rsi
mov rcx, qword [rbp + 0x1300]
xor rcx, rsp
call fcn.140008f30
lea r11, [rsp + 0x1410]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret