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

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov eax, 0x1400
call fcn.18006e250
sub rsp, rax
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x1370], xmm7
movdqa xmmword [rbp + 0x1360], xmm6
mov qword [rbp + 0x1358], 0xfffffffffffffffe
mov ecx, 0x808
call fcn.180035790
mov r12, 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, [0x1800ee710]
mov rdx, qword [rbp + 0x1350]
mov qword [rdx], rax
mov dword [rdx + 0x10], 0
lea rcx, [r12 + 0x28]
pxor xmm0, xmm0
movdqu xmmword [rdx + 0x18], xmm0
mov qword [rbp + 0x1348], rcx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_CComposerJson::constructor_void____ptr64]
mov rsi, qword [rbp + 0x1350]
mov byte [rsi + 0x30], 0
lea rcx, [r12 + 0x38]
mov r8d, 0x174
xor edx, edx
call fcn.18002d2c0
mov byte [rsi + 0x1ac], 1
lea r15, [r12 + 0x1b0]
mov rcx, r15
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea r14, [r12 + 0x1d0]
mov rcx, r14
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea rbx, [r12 + 0x1f0]
mov rcx, rbx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea rdi, [r12 + 0x210]
mov rcx, rdi
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea rsi, [r12 + 0x230]
mov rcx, rsi
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea rcx, [r12 + 0x250]
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
mov rax, qword [rbp + 0x1350]
mov qword [rax + 0x270], 0
mov dword [rax + 0x278], 0
pxor xmm0, xmm0
movdqu xmmword [rax + 0x280], xmm0
movdqu xmmword [rax + 0x28c], xmm0
movdqu xmmword [rax + 0x2a0], xmm0
movdqu xmmword [rax + 0x2b0], xmm0
mov qword [rax + 0x2c0], 0xffffffffffffffff
mov dword [rax + 0x2c8], 0
movdqu xmmword [rax + 0x2d0], xmm0
movdqu xmmword [rax + 0x2e0], xmm0
movdqu xmmword [rax + 0x2f0], xmm0
mov qword [rax + 0x300], 0
movdqu xmmword [rax + 0x308], xmm0
mov qword [rax + 0x318], 0
mov rcx, r15
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::reset_unsigned_char____ptr64]
mov rcx, r14
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::reset_unsigned_char____ptr64]
mov rcx, rbx
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::reset_unsigned_char____ptr64]
mov rcx, rdi
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::reset_unsigned_char____ptr64]
mov rcx, rsi
xor edx, edx
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::reset_unsigned_char____ptr64]
lea rax, [r12 + 0x60]
mov qword [rbp + 0x1330], rax
lea rax, [r12 + 0x320]
mov qword [rbp + 0x1338], rax
pxor xmm0, xmm0
mov rax, qword [rbp + 0x1350]
movdqu xmmword [rax + 0x320], xmm0
mov qword [rax + 0x330], 0
mov byte [rax + 0x338], 1
lea rcx, [r12 + 0x340]
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_uint256_type::constructor_void____ptr64]
lea rcx, [r12 + 0x360]
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]
call fcn.180034944
mov edx, eax
mov qword [rbp - 0x58], rdx
xor ecx, ecx
movabs rax, 0x5851f42d4c957f2d
nop
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
inc rdx
mov qword [rbp + rcx*8 - 0x50], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 2
mov qword [rbp + rcx*8 - 0x48], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 3
mov qword [rbp + rcx*8 - 0x40], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 4
mov qword [rbp + rcx*8 - 0x38], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 5
mov qword [rbp + rcx*8 - 0x30], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 6
mov qword [rbp + rcx*8 - 0x28], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 7
mov qword [rbp + rcx*8 - 0x20], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rax
lea rdx, [rcx + r8]
add rdx, 8
mov qword [rbp + rcx*8 - 0x18], rdx
add rcx, 8
cmp rcx, 0x130
jne 0x180005e80
add r8, rcx
mov rcx, r8
shr rcx, 0x3e
xor rcx, r8
imul rcx, rax
add rcx, 0x131
mov qword [rbp + 0x930], rcx
mov rdx, rcx
shr rdx, 0x3e
xor rdx, rcx
imul rdx, rax
add rdx, 0x132
mov qword [rbp + 0x938], rdx
mov rcx, rdx
shr rcx, 0x3e
xor rcx, rdx
imul rcx, rax
add rcx, 0x133
mov qword [rbp + 0x940], rcx
mov rdx, rcx
shr rdx, 0x3e
xor rdx, rcx
imul rdx, rax
add rdx, 0x134
mov qword [rbp + 0x948], rdx
mov rcx, rdx
shr rcx, 0x3e
xor rcx, rdx
imul rcx, rax
add rcx, 0x135
mov qword [rbp + 0x950], rcx
mov rdx, rcx
shr rdx, 0x3e
xor rdx, rcx
imul rdx, rax
add rdx, 0x136
mov qword [rbp + 0x958], rdx
mov rcx, rdx
shr rcx, 0x3e
xor rcx, rdx
imul rcx, rax
add rcx, 0x137
mov qword [rbp + 0x960], rcx
mov r8d, 0x138
xor eax, eax
movdqa xmm0, xmmword [0x1800eb880]
movdqa xmm1, xmmword [0x1800eb890]
movdqa xmm2, xmmword [0x1800eb8a0]
movabs rcx, 0x555555555
movabs rdx, 0x71d67fffeda60000
mov r11, qword [rbp + 0x1350]
jmp 0x180006167
movdqu xmm5, xmmword [rbp + 0x1320]
movdqu xmm3, xmmword [rbp + 0x1318]
movdqu xmm4, xmmword [rbp + 0xe38]
movdqu xmm6, xmmword [rbp + 0xe40]
pshufd xmm7, xmm6, 0xa0
pslld xmm7, 0x1f
psrad xmm7, 0x1f
pand xmm7, xmm0
psrlq xmm6, 1
pand xmm6, xmm1
psrlq xmm4, 1
pand xmm4, xmm2
por xmm4, xmm6
pxor xmm4, xmm3
pxor xmm4, xmm7
movdqu xmmword [rbp + 0x478], xmm4
movq xmm6, qword [rbp - 0x58]
punpcklqdq xmm5, xmm6
pshufd xmm6, xmm5, 0xa0
pslld xmm6, 0x1f
psrad xmm6, 0x1f
pand xmm6, xmm0
psrlq xmm5, 1
pand xmm5, xmm1
psrlq xmm3, 1
pand xmm3, xmm2
por xmm3, xmm5
pxor xmm3, xmm6
pxor xmm3, xmm4
movdqu xmmword [rbp + 0x958], xmm3
xor r8d, r8d
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 [r11 + rax*8 + 0x340], r9
lea r9, [rax + 1]
cmp rax, 3
mov rax, r9
je 0x180006321
cmp r8d, 0x138
jne 0x180006250
mov r8, 0xfffffffffffff640
mov r9, qword [rbp - 0x58]
nop
movdqu xmm5, xmmword [rbp + r8 + 0x970]
movdqu xmm3, xmmword [rbp + r8 + 0x980]
pshufd xmm4, xmm5, 0xa0
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm0
movdqu xmm6, xmmword [rbp + r8 + 0xe48]
pxor xmm6, xmm4
pshufd xmm4, xmm5, 0x4e
psrlq xmm5, 1
pand xmm5, xmm1
movq xmm7, r9
shufps xmm7, xmm4, 0xe4
psrlq xmm7, 1
pand xmm7, xmm2
por xmm7, xmm5
pxor xmm7, xmm6
movdqu xmmword [rbp + r8 + 0x1328], xmm7
pshufd xmm5, xmm3, 0xa0
pslld xmm5, 0x1f
psrad xmm5, 0x1f
pand xmm5, xmm0
movdqu xmm6, xmmword [rbp + r8 + 0xe58]
pxor xmm6, xmm5
punpcklqdq xmm4, xmm3
pshufd xmm5, xmm3, 0xee
psrlq xmm3, 1
pand xmm3, xmm1
psrlq xmm4, 1
pand xmm4, xmm2
por xmm4, xmm3
pxor xmm4, xmm6
movdqu xmmword [rbp + r8 + 0x1338], xmm4
movq r9, xmm5
add r8, 0x20
jne 0x180006180
mov r8d, 0x138
jmp 0x18000610e
cmp r8d, 0x270
jb 0x18000610e
mov r8, 0xfffffffffffffffe
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rbp + r8*8 + 0x978]
movdqu xmm5, xmmword [rbp + r8*8 + 0x980]
pshufd xmm6, xmm5, 0xa0
pslld xmm6, 0x1f
psrad xmm6, 0x1f
pand xmm6, xmm0
movdqu xmm4, xmmword [rbp + r8*8 + 0xe58]
psrlq xmm5, 1
pand xmm5, xmm1
psrlq xmm3, 1
pand xmm3, xmm2
por xmm3, xmm5
pxor xmm3, xmm4
pxor xmm3, xmm6
movdqu xmmword [rbp + r8*8 - 0x48], xmm3
movdqu xmm5, xmmword [rbp + r8*8 + 0xe60]
pshufd xmm6, xmm5, 0xa0
pslld xmm6, 0x1f
psrad xmm6, 0x1f
pand xmm6, xmm0
psrlq xmm5, 1
pand xmm5, xmm1
psrlq xmm4, 1
pand xmm4, xmm2
por xmm4, xmm5
pxor xmm4, xmm6
pxor xmm4, xmm3
movdqu xmmword [rbp + r8*8 + 0x498], xmm4
add r8, 2
cmp r8, 0x98
jb 0x180006270
jmp 0x180006070
lea rax, [0x1800ee6b0]
mov qword [r11], rax
mov qword [r11 + 0x3f8], 0
mov dword [r11 + 0x400], 0
add r12, 0x408
mov qword [rbp + 0x1348], r12
mov rcx, r12
call qword [sym.imp.TT_SubSystem.dll_public:_void___cdecl_INwInterfaceSocket::constructor_void____ptr64]
mov rcx, qword [rbp + 0x1350]
mov word [rcx + 0x800], 1
mov byte [rcx + 0x802], 1
call qword [sym.imp.TT_SubSystem.dll_public:_void____ptr64___cdecl_CEventHandler::GetEvHandle_void_const___ptr64]
mov rcx, qword [rbp + 0x1350]
mov qword [rcx + 0x418], rax
mov rcx, qword [rbp + 0x1348]
call qword [sym.imp.TT_SubSystem.dll_public:_void____ptr64___cdecl_CEventHandler::GetEvHandle_void_const___ptr64]
mov rcx, qword [rbp + 0x1350]
mov qword [rcx + 0x18], rax
lea rax, [0x1800ee530]
mov qword [rcx], rax
mov rax, rcx
movaps xmm6, xmmword [rbp + 0x1360]
movaps xmm7, xmmword [rbp + 0x1370]
add rsp, 0x1400
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret