Function at 0x1400030f0
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 r14
push r15
lea rbp, [rsp - 0x1440]
mov eax, 0x1540
call fcn.140008ad0
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1430], rax
mov rbx, rcx
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll_memset
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14000314b
mov rdx, qword [rbx]
lea rcx, [rbp - 0x80]
call fcn.1400069d0
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea r15, vtable.std::basic_fstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], r15
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb8]
mov dword [rsp + rcx + 0x7c], edx
cmp qword [rbp + 0x18], 0
jne 0x140003270
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.1400058d0
mov rdi, rax
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x1400031a1
mov rdx, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
call fcn.140007438
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov edx, eax
lea rcx, [rsp + 0x50]
call fcn.140007070
nop
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 0xf
cmova rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov word [rsp + 0x40], 0x5c22
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140006d20
mov rbx, rax
mov rdx, qword [rsp + 0x68]
cmp rdx, 0xf
jbe 0x140003248
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003243
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003243
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140007b94
movdqa xmm0, xmmword [0x14000ac70]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
lea rdx, [0x140005a90]
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140003407
xor edx, edx
mov r8d, 2
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int____ptr64]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____cdecl_std::basic_istream_char__struct_std::char_traits_char__::tellg_void____ptr64]
mov rsi, qword [rax + 8]
add rsi, qword [rax]
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int____ptr64]
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1424], 0xffffffff
mov dword [rbp + 0xa4], eax
mov edx, 1
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 [rbp + rdx*4 + 0xa4], eax
inc rdx
cmp rdx, 0x270
jb 0x1400032d0
mov dword [rbp + 0xa0], 0x270
dec esi
btc esi, 0x1f
mov r14d, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0xa0]
cmp esi, 0x7fffffff
jne 0x140003328
call fcn.140007200
mov ecx, eax
jmp 0x14000336a
lea ebx, [rsi - 0x7fffffff]
call fcn.140007200
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140003366
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140003366
nop dword [rax]
lea rcx, [rbp + 0xa0]
call fcn.140007200
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140003350
shr rcx, 0x20
lea eax, [rcx - 0x80000000]
cdqe
xor rax, 0xffffffff80000000
mov qword [rsp + 0x30], rax
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
movups xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm0
unpckhpd xmm1, xmm1
movsd qword [rsp + 0x60], xmm1
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::seekp_class_std::fpos_struct__Mbstatet_____ptr64]
lea rcx, [rbp + 0xa0]
call fcn.140007200
shr eax, 0x1f
mov byte [rsp + 0x74], al
mov r8d, 1
lea rdx, [rsp + 0x74]
lea rcx, [rbp - 0x70]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::write_char_const____ptr64__long_long___int64_____ptr64]
sub r14, 1
jne 0x140003310
lea rcx, [rbp - 0x68]
call fcn.140005440
test rax, rax
jne 0x140003407
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x80]
add rcx, rax
xor r8d, r8d
mov edx, 2
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x80], r15
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb8]
mov dword [rsp + rcx + 0x7c], edx
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x68], rax
cmp qword [rbp + 0x18], 0
je 0x14000345f
lea rcx, [rbp + 8]
mov rax, qword [rbp - 0x50]
cmp qword [rax], rcx
jne 0x14000345f
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
mov qword [rax], rcx
mov rax, qword [rbp - 0x30]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp - 0x18]
mov dword [rax], edx
cmp byte [rbp + 0x14], 0
je 0x14000346e
lea rcx, [rbp - 0x68]
call fcn.140005440
lea rcx, [rbp - 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x38]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rcx, qword [rbp + 0x1430]
xor rcx, rsp
call fcn.140007b30
lea r11, [rsp + 0x1540]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret