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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1348]
mov eax, 0x1408
call fcn.1801585f0
sub rsp, rax
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov r9, r8
mov r8, rdx
mov rdi, rcx
and dword [rsp + 0x20], 0
and qword [rcx], 0
and qword [rcx + 8], 0
and qword [rcx + 0x10], 0
mov esi, 1
mov dword [rsp + 0x20], esi
mov ecx, dword [0x1801901b8]
xor edx, edx
mov rax, r8
div rcx
mov rbx, rax
add rbx, rsi
je 0x18013a4df
movabs rax, 0x666666666666666
cmp rbx, rax
ja 0x18013a772
mov rdx, rbx
mov rcx, rdi
call fcn.18014cd58
mov r8, qword [rbp + 0x1358]
mov r9, qword [rbp + 0x1360]
xor r13d, r13d
xor r12d, r12d
test rbx, rbx
je 0x18013a66a
mov r14d, dword [0x1801901b8]
mov eax, r14d
imul rax, r12
lea r15, [rax + r9]
mov rcx, r8
sub rcx, rax
cmp rcx, r14
cmovb r14, rcx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
and qword [rsp + 0x38], 0
cmp r13, r8
ja 0x18013a66a
lea rcx, [r8 + r9]
cmp r15, rcx
ja 0x18013a66a
lea rax, [r15 + r14]
cmp rax, rcx
ja 0x18013a66a
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x28]
call fcn.1800255bc
mov rdx, qword [rbp + 0x1368]
add rdx, r13
mov r8, r14
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x40]
call fcn.1800a8124
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r15
or dword [rsp + 0x20], 2
mov r9, qword [rdi + 8]
cmp r9, qword [rdi + 0x10]
je 0x18013a5bb
mov rcx, qword [rsp + 0x50]
xor edx, edx
mov rax, qword [rsp + 0x40]
xor r8d, r8d
mov qword [r9], rax
mov rax, qword [rsp + 0x48]
mov qword [r9 + 8], rax
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], r14
mov qword [r9 + 0x20], r15
add qword [rdi + 8], 0x28
jmp 0x18013a5d5
lea r8, [rsp + 0x40]
mov rdx, r9
mov rcx, rdi
call fcn.180156ff0
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
test r8, r8
je 0x18013a606
sub rdx, r8
mov rax, r8
cmp rdx, 0x1000
jb 0x18013a5fe
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18013a65c
mov rcx, r8
call fcn.180157a14
add r13, r14
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x18013a641
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013a63c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18013a663
call fcn.180157a14
add r12, rsi
cmp r12, rbx
jae 0x18013a66a
mov r8, qword [rbp + 0x1358]
mov r9, qword [rbp + 0x1360]
jmp 0x18013a4ee
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov r8d, 0xffffffff
mov dword [rbp + 0x12f4], r8d
mov ecx, 0x1571
mov dword [rsp + 0x74], ecx
mov rdx, rsi
mov r9d, 0x270
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rsp + rdx*4 + 0x74], ecx
add rdx, rsi
cmp rdx, r9
jb 0x18013a689
mov dword [rsp + 0x70], r9d
mov r14, qword [rdi + 8]
mov r15, qword [rdi]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov ecx, 0x40
or rax, 0xffffffffffffffff
sub rcx, rsi
shr rax, 1
cmp rax, r8
ja 0x18013a6c3
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
cmp r15, r14
je 0x18013a75b
lea rbx, [r15 + 0x28]
jmp 0x18013a756
lea rdx, [rsi + 1]
lea rcx, [rsp + 0x28]
call fcn.18001fd40
cmp rax, rsi
je 0x18013a74f
lea rax, [rax + rax*4]
lea rdx, [r15 + rax*8]
mov rcx, qword [rbx + 0x20]
mov rax, qword [rdx + 0x20]
mov qword [rbx + 0x20], rax
mov qword [rdx + 0x20], rcx
mov rcx, qword [rbx + 0x18]
mov rax, qword [rdx + 0x18]
mov qword [rbx + 0x18], rax
mov qword [rdx + 0x18], rcx
cmp rbx, rdx
je 0x18013a74f
mov rcx, qword [rbx]
mov rax, qword [rdx]
mov qword [rbx], rax
mov qword [rdx], rcx
mov rcx, qword [rbx + 8]
mov rax, qword [rdx + 8]
mov qword [rbx + 8], rax
mov qword [rdx + 8], rcx
mov rcx, qword [rbx + 0x10]
mov rax, qword [rdx + 0x10]
mov qword [rbx + 0x10], rax
mov qword [rdx + 0x10], rcx
inc rsi
add rbx, 0x28
cmp rbx, r14
jne 0x18013a6e3
mov rax, rdi
add rsp, 0x1408
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18001e2f0
int3