Function at 0x1800ec1a0
Capabilities:
Create thread
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x180583020]
xor rax, rsp
mov qword [rsp + 0x50], rax
xor edi, edi
mov byte [0x18059da87], dil
call fcn.1800eb100
mov rbx, 0xffffffffffffffff
mov rcx, rbx
inc rcx
cmp byte [rax + rcx], dil
jne 0x1800ec1d1
cmp rcx, 5
jne 0x1800ec3a8
call fcn.1800eb100
mov rcx, rax
call fcn.1800eb410
test al, al
je 0x1800ec318
mov rax, qword [0x18059e768]
inc rbx
cmp byte [rax + rbx], dil
jne 0x1800ec200
cmp rbx, 5
jae 0x1800ec2f0
mov ecx, dword [0x18059fb4c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
lea rbx, [0x1805d6bb0]
mov eax, dword [rdx + rax]
cmp dword [0x1805d6bac], eax
jle 0x1800ec2a5
lea rcx, [0x1805d6bac]
call fcn.1800f1a50
cmp dword [0x1805d6bac], 0xffffffff
jne 0x1800ec2a5
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x1805d7f34], 0xffffffff
mov dword [0x1805d6bb4], eax
mov ecx, 1
nop dword [rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rbx + rcx*4 + 4], eax
inc rcx
cmp rcx, 0x270
jb 0x1800ec270
mov dword [0x1805d6bb0], 0x270
lea rcx, [0x1805d6bac]
call fcn.1800f19e4
mov rcx, rbx
call fcn.1800ed310
mov ecx, eax
imul rax, rcx, 0x90c
cmp eax, 0x36f
ja 0x1800ec2d8
nop dword [rax]
mov rcx, rbx
call fcn.1800ed310
mov ecx, eax
imul rax, rcx, 0x90c
cmp eax, 0x370
jb 0x1800ec2c0
shr rax, 0x20
cdqe
lea rcx, str.rebut
mov rax, qword [rcx + rax*8]
mov qword [0x18059e768], rax
call fcn.1800eb100
mov ecx, dword [0x1805d57b8]
call fcn.1800ebd60
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1800f15b0
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
mov ecx, 0x10
call fcn.1800f15d0
mov ecx, dword [0x1805d57b8]
mov dword [rax], ecx
lea rcx, [0x1800eb380]
mov qword [rax + 8], rcx
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x1800ed5f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1800ec398
cmp dword [rsp + 0x38], 0
je 0x1800ec38c
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x1800ec38c
jmp 0x1800ec300
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rsp + 0x38], edi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov ecx, 0x10
call fcn.1800f15d0
mov ecx, dword [0x1805d57b8]
mov dword [rax], ecx
lea rcx, [0x1800eb380]
mov qword [rax + 8], rcx
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x1800ed5f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1800ec428
cmp dword [rsp + 0x38], 0
je 0x1800ec41c
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x1800ec41c
jmp 0x1800ec300
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rsp + 0x38], edi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3