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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1530]
mov eax, 0x1630
call fcn.1401cb620
sub rsp, rax
mov rax, qword [0x1405d2948]
xor rax, rsp
mov qword [rbp + 0x1520], rax
movsxd rsi, ecx
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 0x14000361f
imul rax, rax, 0x64
jmp 0x14000363a
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
mov dword [rbp + 0x1514], 0xffffffff
mov dword [rbp + 0x194], eax
mov edx, 1
mov ebx, 0x270
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rbp + rdx*4 + 0x194], ecx
inc rdx
cmp rdx, rbx
jb 0x140003660
mov dword [rbp + 0x190], ebx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x58], xmm0
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x60], rax
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
lea r13, vtable.asmjit::_abi_1_10::JitRuntime.0
mov qword [rsp + 0x58], r13
xor ecx, ecx
call fcn.14001ebb0
mov qword [rbp - 0x78], rax
lea r12, [0x140425330]
test rax, rax
jne 0x1400036c8
mov qword [rbp - 0x78], r12
mov dword [rsp + 0x30], 0x1000002
mov dword [rsp + 0x34], 1
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x65], 1
call sym.Token_Disc.exe_public:_static_class_asmjit::_abi_1_10::CpuInfo_const____ptr64___cdecl_asmjit::_abi_1_10::CpuInfo::host_void_
movups xmm0, xmmword [rax + 0x78]
movups xmmword [rsp + 0x68], xmm0
movups xmm1, xmmword [rax + 0x88]
movups xmmword [rsp + 0x78], xmm1
xor edx, edx
mov r8d, 0x150
lea rcx, [rbp + 0x40]
call fcn.1401cbb7e
xor edx, edx
lea rcx, [rbp + 0x40]
call sym.Token_Disc.exe_public:_void___cdecl_asmjit::_abi_1_10::CodeHolder::constructor_struct_asmjit::_abi_1_10::Support::Temporary_const____ptr64____ptr64
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov r14, 0xffffffffffffffff
mov r9, r14
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x40]
call sym.Token_Disc.exe_public:_unsigned_int___cdecl_asmjit::_abi_1_10::CodeHolder::init_class_asmjit::_abi_1_10::Environment_const____ptr64__class_asmjit::_abi_1_10::CpuFeatures_const____ptr64__unsigned_long_long_unsigned___int64_____ptr64
xor edx, edx
mov r8d, 0xb0
lea rcx, [rbp - 0x70]
call fcn.1401cbb7e
mov al, 1
mov word [rbp - 0x68], 1
xor r15d, r15d
mov qword [rbp - 0x64], r15
mov dword [rbp - 0x50], r15d
mov qword [rbp - 0x4c], 1
xorps xmm2, xmm2
movdqa xmmword [rbp - 0x40], xmm2
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], r15
xor ecx, ecx
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], r15
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
movups xmmword [rbp + 8], xmm0
movdqa xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x30], xmm1
lea rdi, vtable.asmjit::_abi_1_10::x86::Assembler.0
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x58], 6
lea rcx, [0x140024410]
mov qword [rbp - 8], rcx
lea rcx, [0x140024460]
mov qword [rbp], rcx
lea rcx, [0x1400244b0]
mov qword [rbp + 8], rcx
lea rcx, [0x14002b610]
mov qword [rbp + 0x10], rcx
lea rcx, [0x140028f00]
mov qword [rbp + 0x18], rcx
dec al
cmp al, 2
ja 0x140003871
movzx eax, byte [rbp + 0x40]
dec eax
cmp eax, 1
ja 0x140003871
movq rax, xmm2
test rax, rax
jne 0x140003871
mov eax, dword [rbp + 0x10c]
sub eax, dword [rbp + 0x108]
cmp eax, 1
jae 0x140003843
lea r9d, [r14 + 2]
lea r8d, [r14 + 9]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x100]
call sym.Token_Disc.exe_protected:_unsigned_int___cdecl_asmjit::_abi_1_10::ZoneVectorBase::_grow_class_asmjit::_abi_1_10::ZoneAllocator____ptr64__unsigned_int__unsigned_int____ptr64
test eax, eax
jne 0x14000386d
mov rdi, qword [rbp - 0x70]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x70]
call qword [rdi + 0x78]
test eax, eax
jne 0x14000386d
mov ecx, dword [rbp + 0x108]
lea rdx, [rbp - 0x70]
mov rax, qword [rbp + 0x100]
mov qword [rax + rcx*8], rdx
inc dword [rbp + 0x108]
mov rdi, qword [rbp - 0x70]
mov qword [rsp + 0x50], r15
cmp esi, 0xa
ja case.0x140003890.8
lea rdx, [0x140000000]
mov ecx, dword [rdx + rsi*4 + 0x3cfc]
add rcx, rdx
jmp rcx
lea rcx, [rbp + 0x190]
call fcn.14000d910
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
call fcn.140003480
lea r9, [rsp + 0x30]
mov edx, 0x1a2
jmp 0x140003a69
lea rcx, [rbp + 0x190]
call fcn.14000d910
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
lea rcx, [0x1404252f0]
mov qword [rsp + 0x28], rcx
lea rcx, [0x140425310]
mov qword [rsp + 0x20], rcx
lea r9, [0x140425300]
lea r8, [rsp + 0x30]
mov edx, 0x282
lea rcx, [rbp - 0x70]
call qword [rdi + 0x30]
jmp case.0x140003890.8
call fcn.140003480
mov edx, 0x24c
jmp 0x140003a62
lea r8, [rbp + 0x198]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub rbx, 1
jne 0x140003940
mov eax, dword [rbp + 0x190]
mov edx, dword [rbp + rax*4 + 0x194]
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x1514]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov eax, ecx
shr rax, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], eax
lea rcx, [0x1404252f0]
mov qword [rsp + 0x28], rcx
lea rcx, [0x140425310]
mov qword [rsp + 0x20], rcx
lea r9, [0x140425300]
lea r8, [rsp + 0x30]
lea edx, [rbx + 0x3b]
lea rcx, [rbp - 0x70]
call qword [rdi + 0x30]
jmp case.0x140003890.8
call fcn.140003480
mov rbx, rax
call fcn.140003480
mov r9, rbx
mov edx, 0x1d6
jmp 0x140003a69
call fcn.140003480
mov rbx, rax
call fcn.140003480
mov r9, rbx
mov edx, 0x66c
jmp 0x140003a69
call fcn.140003480
mov rbx, rax
call fcn.140003480
mov r9, rbx
mov edx, reloc.WS2_32.dll_setsockopt
jmp 0x140003a69
call fcn.140003480
mov rbx, rax
call fcn.140003480
mov r9, rbx
mov edx, 0x2f6
jmp 0x140003a69
call fcn.140003480
mov edx, 0x12f
lea r9, [0x140425300]
mov rcx, qword [rbp - 0x70]
mov r10, qword [rcx + 0x30]
lea rcx, [0x1404252f0]
mov qword [rsp + 0x28], rcx
lea rcx, [0x140425310]
mov qword [rsp + 0x20], rcx
mov r8, rax
lea rcx, [rbp - 0x70]
call r10
mov rax, qword [rsp + 0x58]
lea r8, [rbp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x58]
call qword [rax + reloc.WS2_32.dll_htonl]
test eax, eax
je 0x140003ab5
mov rdi, r15
jmp 0x140003ba7
xor r10b, r10b
mov r9, r15
mov eax, dword [rbp + 0x128]
mov r8, qword [rbp + 0x120]
lea r11, [r8 + rax*8]
cmp r8, r11
je 0x140003b26
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [r8]
mov rdx, qword [rcx + 0x50]
cmp qword [rcx + 0x18], rdx
cmovae rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x140003b15
mov eax, dword [rcx + 8]
lea rcx, [rax - 1]
not rcx
dec r9
add rax, r9
and rcx, rax
lea r9, [rcx + rdx]
cmp r9, rcx
setb al
or r10b, al
add r8, 8
cmp r8, r11
jne 0x140003ae0
test r10b, r10b
je 0x140003b26
mov r9, r14
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
xor r10b, r10b
mov r9, r15
mov eax, dword [rbp + 0x128]
mov r8, qword [rbp + 0x120]
lea r11, [r8 + rax*8]
cmp r8, r11
je 0x140003b93
nop
mov rcx, qword [r8]
mov rdx, qword [rcx + 0x50]
cmp qword [rcx + 0x18], rdx
cmovae rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x140003b85
mov eax, dword [rcx + 8]
lea rcx, [rax - 1]
not rcx
dec r9
add rax, r9
and rcx, rax
lea r9, [rcx + rdx]
cmp r9, rcx
setb al
or r10b, al
add r8, 8
cmp r8, r11
jne 0x140003b50
test r10b, r10b
jne 0x140003b96
mov r14, r9
mov r8, r14
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
nop
lea rax, vtable.asmjit::_abi_1_10::BaseEmitter.0
mov qword [rbp - 0x70], rax
mov r9, qword [rbp - 0x40]
test r9, r9
je 0x140003c27
or byte [rbp - 0x67], 0x80
mov r10, qword [r9 + 0xc0]
mov r8d, dword [r9 + 0xc8]
mov eax, r15d
test r8d, r8d
je 0x140003bf4
mov rcx, r10
nop dword [rax + rax]
lea rdx, [rbp - 0x70]
cmp qword [rcx], rdx
je 0x140003bf9
inc eax
add rcx, 8
cmp eax, r8d
jb 0x140003be0
mov eax, 0xffffffff
mov edx, eax
lea rcx, [r10 + rdx*8]
lea eax, [r8 - 1]
mov dword [r9 + 0xc8], eax
mov r8d, eax
sub r8, rdx
je 0x140003c23
lea r8, [r8*8]
lea rdx, [rcx + 8]
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 0x40], r15
mov edx, 1
lea rcx, [rbp + 0x40]
call fcn.14001bf00
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x140003c53
mov rbx, qword [rcx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
test rbx, rbx
jne 0x140003c41
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0xa0], r15
mov edx, 1
lea rcx, [rbp + 0x80]
call sym.Token_Disc.exe_public:_void___cdecl_asmjit::_abi_1_10::Zone::reset_enum_asmjit::_abi_1_10::ResetPolicy____ptr64
nop
mov qword [rsp + 0x58], r13
cmp qword [rbp - 0x78], r12
je 0x140003cc9
mov edx, 1
lea rcx, [rbp - 0x78]
call sym.Token_Disc.exe_public:_void___cdecl_asmjit::_abi_1_10::JitAllocator::reset_enum_asmjit::_abi_1_10::ResetPolicy____ptr64
mov rbx, qword [rbp - 0x78]
lea rcx, [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, rdi
mov rcx, qword [rbp + 0x1520]
xor rcx, rsp
call fcn.1401cac00
lea r11, [rsp + 0x1630]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret