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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x13e0
call fcn.140068490
sub rsp, rax
mov rax, qword [0x140081060]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
lea r12, [rsp + 0x1408]
movabs r13, 0xff00ff00ff00ff00
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r12
mov rax, qword [r12]
xor rax, r13
mov qword [rsp + 0x28], rax
xor ebx, ebx
mov qword [r12], rbx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x13c4], 0xffffffff
mov dword [rsp + 0x44], eax
mov r15d, 1
mov edx, r15d
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x140017640
mov dword [rsp + 0x40], 0x270
mov dword [rsp + 0x20], ebx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x140017689
imul rax, rax, 0x64
jmp 0x1400176a4
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rbp, [rax + 0x5f5e100]
mov r14d, 0x80000000
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1400176cf
imul rax, rax, 0x64
jmp 0x1400176ea
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rbp
jge 0x1400178a0
mov esi, 0x186a0
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x140017738
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x140017720
shr rax, 0x20
lea ecx, [rax + 0x7fffff9c]
lea eax, [rcx + r14]
lea ebx, [rcx - 0x80000000]
cmp ecx, r14d
cmovae ebx, eax
test ebx, ebx
cmove ebx, r15d
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rcx, rcx, 0xc9
mov edi, ebx
cmp ecx, 0xc9
jae 0x140017798
cmp ecx, 0x64
jae 0x140017798
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x140017780
shr rcx, 0x20
add ecx, 0x7fffff9c
lea eax, [rcx + r14]
lea edx, [rcx - 0x80000000]
cmp ecx, r14d
cmovae edx, eax
mov eax, dword [rsp + 0x20]
add edx, eax
mov dword [rsp + 0x20], edx
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rcx, rcx, 0xc9
mov ebx, edi
cmp ecx, 0xc9
jae 0x1400177f8
cmp ecx, 0x64
jae 0x1400177f8
nop
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1400177e0
shr rcx, 0x20
add ecx, 0x7fffff9c
lea eax, [rcx + r14]
lea edx, [rcx - 0x80000000]
cmp ecx, r14d
cmovae edx, eax
mov eax, dword [rsp + 0x20]
imul edx, eax
mov dword [rsp + 0x20], edx
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rdx, rcx, 0xc9
mov edi, ebx
cmp edx, 0xc9
jae 0x140017858
cmp edx, 0x64
jae 0x140017858
nop
lea rcx, [rsp + 0x40]
call fcn.140024d90
mov ecx, eax
imul rdx, rcx, 0xc9
cmp edx, 0x64
jb 0x140017840
shr rdx, 0x20
add edx, 0x7fffff9c
lea eax, [rdx + r14]
lea ecx, [rdx - 0x80000000]
cmp edx, r14d
cmovae ecx, eax
mov eax, dword [rsp + 0x20]
sub eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv edi
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv edi
mov dword [rsp + 0x20], edx
sub rsi, r15
jne 0x140017700
jmp 0x1400176b1
mov eax, dword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
xor rax, r13
mov qword [r12], rax
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.140067ae0
lea r11, [rsp + 0x13e0]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret