Function at 0x140035310
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 - 0x37]
sub rsp, 0xc0
mov rsi, rcx
mov qword [rbp - 0x11], rcx
xor r15d, r15d
mov dword [rbp - 0x69], r15d
mov r14d, 0x10
mov rax, qword gs:[0x58]
mov r12, qword [rax]
mov eax, 0x10
mov eax, dword [rax + r12]
cmp dword [0x140043cc0], eax
jle 0x1400354f3
lea rcx, [0x140043cc0]
call fcn.140036870
cmp dword [0x140043cc0], 0xffffffff
jne 0x1400354f3
movabs rax, 0x6c99847eed188ac7
mov qword [rbp - 9], rax
movabs rax, 0x40a0a59fa25509a4
mov qword [rbp - 1], rax
movabs rax, 0xfc64cebc982f2609
mov qword [rbp + 7], rax
movabs rax, 0xfb2563b50617a24e
mov qword [rbp + 0xf], rax
movabs rax, 0x7206004240acc97b
mov qword [rbp + 0x17], rax
movabs rax, 0x539ceb73e79a5cd8
mov qword [rbp + 0x1f], rax
movabs rax, 0x5cfeef20e3acd1bd
mov qword [rbp + 0x27], rax
movabs rax, 0xad3f8a39b6559392
mov qword [rbp + 0x2f], rax
movabs rax, 0x5bafb14ade2abbf7
mov qword [rbp - 0x59], rax
movabs rax, 0x26c5c1fcc034309c
mov qword [rbp - 0x51], rax
movabs rax, 0x9209a2d7f2464e6e
mov qword [rbp - 0x49], rax
movabs rax, 0x8d5017c67466d221
mov qword [rbp - 0x41], rax
movabs rax, 0x364542033ad5b10c
mov qword [rbp - 0x39], rax
movabs rax, 0x1fd7a13aafdd1a9d
mov qword [rbp - 0x31], rax
movabs rax, 0x8adbd71b3e39ff0
mov qword [rbp - 0x29], rax
movabs rax, 0xad3fd060ee02c5c7
mov qword [rbp - 0x21], rax
movups xmm0, xmmword [rbp - 0x59]
movups xmm1, xmmword [rbp - 0x49]
movups xmm2, xmmword [rbp - 0x39]
movups xmm3, xmmword [rbp - 0x29]
xorps xmm0, xmmword [rbp - 9]
movdqa xmmword [rbp - 0x59], xmm0
xorps xmm1, xmmword [rbp + 7]
movdqa xmmword [rbp - 0x49], xmm1
xorps xmm2, xmmword [rbp + 0x17]
movdqa xmmword [rbp - 0x39], xmm2
xorps xmm3, xmmword [rbp + 0x27]
movdqa xmmword [rbp - 0x29], xmm3
xorps xmm0, xmm0
movups xmmword [0x140043ca0], xmm0
mov qword [0x140043cb0], r15
mov qword [0x140043cb8], r15
lea rax, [rbp - 0x59]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400354c0
lea rdx, [rbp - 0x59]
lea rcx, [0x140043ca0]
call fcn.14002e6c0
lea rcx, [0x140038d30]
call fcn.1400364d4
nop
lea rcx, [0x140043cc0]
call fcn.140036804
mov edi, 0x14
mov eax, dword [rdi + r12]
mov ebx, 0x30
test al, 1
jne 0x14003555d
or eax, 1
mov dword [rdi + r12], eax
add rbx, r12
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
mov dword [rbx + 0x1384], 0xffffffff
mov dword [rbx + 4], eax
mov edx, 1
lea r8, [rbx + 8]
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [r8], ecx
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x140035530
mov dword [rbx], 0x270
mov ebx, 0x30
mov eax, dword [rdi + r12]
mov r13d, 0x18
test al, 2
jne 0x14003557f
or eax, 2
mov dword [rdi + r12], eax
mov qword [r12 + r13], r15
mov qword [r12 + r13 + 8], 0x1e
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov dword [rbp - 0x69], 1
mov rdx, r14
mov rcx, rsi
call fcn.14002bef0
add rbx, r12
nop dword [rax]
dec r14
mov qword [rbp - 0x19], rbx
mov r15, qword [r12 + r13]
mov rdx, qword [r12 + r13 + 8]
sub rdx, r15
cmp rdx, 0xffffffffffffffff
jne 0x1400355e6
mov rcx, rbx
call fcn.1400359e0
mov edi, eax
shl rdi, 0x20
mov rcx, rbx
call fcn.1400359e0
mov eax, eax
or rdi, rax
jmp 0x1400355f5
inc rdx
lea rcx, [rbp - 0x19]
call fcn.1400357f0
mov rdi, rax
lea rcx, [rdi + r15]
lea rax, [0x140043ca0]
cmp qword [0x140043cb8], 0xf
cmova rax, qword [0x140043ca0]
movzx r9d, byte [rax + rcx]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x140035641
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x140035636
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140035649
mov rcx, rsi
call fcn.14002e3a0
test r14, r14
jne 0x1400355b0
mov rax, rsi
lea r11, [rsp + 0xc0]
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