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

Disassembly:
push rbp
push rsi
push rdi
mov eax, 0x13f0
call fcn.180019fb0
sub rsp, rax
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1360], xmm6
mov qword [rbp + 0x1358], 0xfffffffffffffffe
mov ecx, 0x7e0
call fcn.180019294
mov rdi, rax
mov qword [rbp + 0x1350], rax
mov rcx, rax
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_CEventHandler::constructor_void____ptr64]
lea rax, vtable.ISocketInterfaceShared.0
mov rdx, qword [rbp + 0x1350]
mov qword [rdx], rax
lea rcx, [rdi + 0x20]
xorps xmm6, xmm6
movups xmmword [rdx + 0x10], xmm6
mov qword [rbp + 0x1338], rcx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_CComposerJson::constructor_void____ptr64]
mov rax, qword [rbp + 0x1350]
mov byte [rax + 0x28], 0
lea rcx, [rdi + 0x58]
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x40], xmm6
mov qword [rax + 0x50], 0
mov qword [rbp + 0x1340], rcx
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_CLightDynString::constructor_unsigned_long_long_unsigned___int64_____ptr64]
lea rcx, [rdi + 0xf0]
call fcn.18000a300
lea rax, [rdi + 0x388]
mov qword [rbp + 0x1348], rax
pxor xmm0, xmm0
mov rax, qword [rbp + 0x1350]
movdqu xmmword [rax + 0x388], xmm0
mov qword [rax + 0x398], 0
mov byte [rax + 0x3a0], 1
lea rsi, [rdi + 0x3a8]
mov rcx, rsi
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov edx, eax
movabs rax, 0x5555555555555555
mov qword [rbp + 0x1328], rax
mov qword [rbp - 0x58], rdx
mov eax, 3
movabs rcx, 0x5851f42d4c957f2d
mov r11, qword [rbp + 0x1350]
nop
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
add rdx, 0xfffffffffffffffe
mov qword [rbp + rax*8 - 0x68], rdx
cmp rax, 0x139
je 0x1800011d3
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
dec rdx
mov qword [rbp + rax*8 - 0x60], rdx
add rax, 2
jmp 0x180001190
lea rax, [rsi + 0x20]
mov r8d, 0x138
movdqa xmm0, xmmword [0x18001c170]
movdqa xmm1, xmmword [0x18001c180]
movdqa xmm2, xmmword [0x18001c190]
movabs rcx, 0x555555555
movabs rdx, 0x71d67fffeda60000
jmp 0x180001260
mov r9d, r8d
inc r8d
mov r9, qword [rbp + r9*8 - 0x58]
mov r10, r9
shr r10, 0x1d
and r10, rcx
xor r10, r9
mov r9, r10
shl r9, 0x11
and r9, rdx
xor r9, r10
mov r10d, r9d
and r10d, 0x7ffbf77
shl r10, 0x25
xor r10, r9
mov r9, r10
shr r9, 0x2b
xor r9, r10
mov qword [rsi], r9
add rsi, 8
cmp rsi, rax
je 0x180001433
cmp r8d, 0x138
jne 0x1800012e0
mov r8, 0xfffffffffffffec8
movdqu xmm3, xmmword [rbp + r8*8 + 0x968]
movdqu xmm4, xmmword [rbp + r8*8 + 0x970]
pand xmm3, xmm0
movdqa xmm5, xmm4
pand xmm5, xmm1
por xmm5, xmm3
psrlq xmm5, 1
psllq xmm4, 0x3f
psrad xmm4, 0x1f
pshufd xmm3, xmm4, 0xf5
pand xmm3, xmm2
movdqu xmm4, xmmword [rbp + r8*8 + 0xe48]
pxor xmm4, xmm5
pxor xmm4, xmm3
movdqu xmmword [rbp + r8*8 + 0x1328], xmm4
add r8, 2
jne 0x180001270
mov r8d, 0x138
jmp 0x180001210
cmp r8d, 0x270
jb 0x180001210
mov r8, 0xffffffffffffff64
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rbp + r8*8 + 0xe48]
movdqu xmm4, xmmword [rbp + r8*8 + 0xe50]
pand xmm3, xmm0
movdqa xmm5, xmm4
pand xmm5, xmm1
por xmm5, xmm3
psrlq xmm5, 1
psllq xmm4, 0x3f
psrad xmm4, 0x1f
pshufd xmm3, xmm4, 0xf5
pand xmm3, xmm2
movdqu xmm4, xmmword [rbp + r8*8 + 0x1328]
pxor xmm4, xmm5
pxor xmm4, xmm3
movdqu xmmword [rbp + r8*8 + 0x488], xmm4
add r8, 2
jne 0x180001300
xor r8d, r8d
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rbp + r8*8 + 0xe48]
pand xmm3, xmm0
movdqu xmm4, xmmword [rbp + r8*8 + 0xe50]
movdqa xmm5, xmm4
pand xmm5, xmm1
por xmm5, xmm3
psrlq xmm5, 1
psllq xmm4, 0x3f
psrad xmm4, 0x1f
pshufd xmm3, xmm4, 0xf5
pand xmm3, xmm2
movdqu xmm4, xmmword [rbp + r8*8 - 0x58]
pxor xmm4, xmm5
pxor xmm4, xmm3
movdqu xmmword [rbp + r8*8 + 0x488], xmm4
add r8, 2
cmp r8, 0x9a
jne 0x180001370
movdqu xmm3, xmmword [rbp + 0x1320]
movdqu xmm4, xmmword [rbp + 0x1318]
pand xmm4, xmm0
movq xmm5, qword [rbp - 0x58]
punpcklqdq xmm3, xmm5
movdqa xmm5, xmm3
pand xmm5, xmm1
por xmm5, xmm4
psrlq xmm5, 1
psllq xmm3, 0x3f
psrad xmm3, 0x1f
pshufd xmm3, xmm3, 0xf5
pand xmm3, xmm2
movdqu xmm4, xmmword [rbp + 0x478]
pxor xmm4, xmm5
pxor xmm4, xmm3
movdqu xmmword [rbp + 0x958], xmm4
xor r8d, r8d
jmp 0x180001210
lea rax, vtable.ISocketInterfaceBase.0
mov qword [r11], rax
mov qword [r11 + 0x3c8], 0
mov dword [r11 + 0x3d0], 0
add rdi, 0x3d8
mov qword [rbp + 0x1330], rdi
mov rcx, rdi
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_INwInterfaceSocket::constructor_void____ptr64]
mov rcx, qword [rbp + 0x1350]
mov dword [rcx + 0x7d0], 0x1000100
mov word [rcx + 0x7d4], 0
call qword [sym.imp.TT_SubSystem.dll_public:_void____ptr64___cdecl_CEventHandler::GetEvHandle_void_const___ptr64]
mov rcx, qword [rbp + 0x1330]
mov qword [rcx + 0x10], rax
call qword [sym.imp.TT_SubSystem.dll_public:_void____ptr64___cdecl_CEventHandler::GetEvHandle_void_const___ptr64]
mov rcx, qword [rbp + 0x1350]
mov qword [rcx + 0x10], rax
lea rax, vtable.IPluginImpl.0
mov qword [rcx], rax
mov byte [rcx + 0x7d8], 0
mov rax, rcx
movaps xmm6, xmmword [rbp + 0x1360]
add rsp, 0x13f0
pop rdi
pop rsi
pop rbp
ret