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

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1cf0]
mov eax, 0x1df0
call fcn.1800e7610
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x1e20], rbx
mov qword [rsp + 0x1e28], rsi
mov qword [rsp + 0x1e30], rdi
mov rax, qword [0x1801b0238]
xor rax, rsp
mov qword [rbp + 0x1ce0], rax
or r15d, 0xffffffff
mov dword [0x18032ff34], r15d
mov edi, 0x1571
mov dword [0x18032ebb4], edi
mov r8d, edi
mov r14d, 1
mov r9d, r14d
mov ecx, 4
mov edx, ecx
lea r13, [0x18032ebb0]
nop dword [rax]
nop word [rax + rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, r9d
mov dword [rdx + r13 + 4], r8d
inc r9d
add rdx, rcx
cmp rdx, 0x9c0
jl 0x180001400
mov dword [0x18032ebb0], 0x270
mov dword [0x1803312bc], r15d
mov dword [0x18032ff3c], edi
mov edx, edi
mov r8d, r14d
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
mov dword [rcx + r13 + 0x138c], edx
inc r8d
add rcx, 4
cmp rcx, 0x9c0
jl 0x180001450
mov dword [0x18032ff38], 0x270
xor esi, esi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], 0xf
mov byte [rsp + 0x28], sil
lea r8d, [rsi + 8]
lea rdx, str._Y__m__d
lea rcx, [rsp + 0x28]
call fcn.18000f070
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x70]
call fcn.180001880
nop
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae rdx, qword [rsp + 0x70]
mov rax, qword [rbp - 0x80]
add rax, rdx
lea rbx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae rbx, qword [rsp + 0x70]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], rsi
mov r12, rax
sub r12, rbx
cmp rbx, rax
cmova r12, rsi
test r12, r12
je 0x180001537
mov r15, rbx
neg r15
nop dword [rax]
movsx eax, byte [rbx]
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.180004060
lea rbx, [rbx + 1]
lea rax, [r15 + rbx]
cmp rax, r12
jne 0x180001510
or r15d, 0xffffffff
mov dword [rbp + 0x1314], r15d
mov dword [rbp - 0x6c], edi
mov edx, edi
mov r8d, r14d
mov rcx, r14
nop dword [rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
mov dword [rbp + rcx*4 - 0x6c], edx
inc r8d
inc rcx
cmp rcx, 0x270
jl 0x180001550
lea r8, [rbp + 0x1ce0]
lea rdx, [rbp + 0x1320]
lea rcx, [rsp + 0x28]
call fcn.1800041d0
mov ecx, esi
mov eax, esi
mov rdx, rsi
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [rbp + rdx + 0x1320]
mov dword [rbp + rdx - 0x6c], r8d
test eax, eax
jne 0x1800015b9
mov ecx, r8d
shr ecx, 0x1f
jmp 0x1800015bc
or ecx, r8d
inc eax
add rdx, 4
cmp eax, 0x270
jb 0x1800015a0
mov eax, dword [rbp - 0x6c]
test ecx, ecx
cmove eax, r15d
mov dword [rbp - 0x6c], eax
mov dword [rbp - 0x70], 0x270
lea rcx, [0x18032ff38]
lea rax, [rbp - 0x70]
mov r12d, 0x27
mov edx, r12d
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x1800015f0
mov rax, qword [rax]
mov qword [rcx], rax
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], dl
xor r8d, r8d
lea rdx, [0x180187ba0]
lea rcx, [rsp + 0x50]
call fcn.18000f070
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
nop
lea rcx, [rsp + 0x50]
call fcn.18000ec30
mov ebx, 0x270
lea r15, [rbp + 0x1320]
nop dword [rax]
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [r15], eax
lea r15, [r15 + 4]
sub rbx, 1
jne 0x180001690
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
lea rbx, [rbp + 0x1320]
nop dword [rax + rax]
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.180004060
add rbx, 4
lea rax, [rbp + 0x1ce0]
cmp rbx, rax
jne 0x1800016c0
or ebx, 0xffffffff
mov dword [rbp + 0x1314], ebx
mov dword [rbp - 0x6c], edi
mov rcx, r14
nop dword [rax]
mov eax, edi
shr eax, 0x1e
xor eax, edi
imul edi, eax, 0x6c078965
add edi, r14d
mov dword [rbp + rcx*4 - 0x6c], edi
inc r14d
inc rcx
cmp rcx, 0x270
jl 0x1800016f0
lea r8, [rbp + 0x1ce0]
lea rdx, [rbp + 0x1320]
lea rcx, [rsp + 0x50]
call fcn.1800041d0
mov ecx, esi
mov rdx, rsi
mov eax, dword [rbp + rdx + 0x1320]
mov dword [rbp + rdx - 0x6c], eax
test ecx, ecx
jne 0x180001746
shr eax, 0x1f
mov esi, eax
jmp 0x180001748
or esi, eax
inc ecx
add rdx, 4
cmp ecx, 0x270
jb 0x180001730
mov eax, dword [rbp - 0x6c]
test esi, esi
cmove eax, ebx
mov dword [rbp - 0x6c], eax
mov dword [rbp - 0x70], 0x270
mov rdx, r13
lea rax, [rbp - 0x70]
nop
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x60], xmm0
lea rdx, [rdx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rdx - 0x10], xmm1
lea rax, [rax + 0x80]
sub r12, 1
jne 0x180001770
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x1800017e4
mov r8, qword [rsp + 0x60]
sub r8, rdx
sar r8, 2
call fcn.180003c60
nop
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180001800
mov r8, qword [rsp + 0x38]
sub r8, rdx
sar r8, 2
call fcn.180003c60
nop
lea rcx, [rsp + 0x70]
call fcn.18000ec30
mov rax, r13
mov rcx, qword [rbp + 0x1ce0]
xor rcx, rsp
call fcn.1800e5f40
lea r11, [rsp + 0x1df0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret