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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.14016acf0
sub rsp, rax
mov rax, qword [0x1401d4200]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
movsxd rdi, edx
mov rsi, rcx
mov qword [rsp + 0x20], rcx
xor r14d, r14d
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x12d4], 0xffffffff
mov dword [rsp + 0x54], eax
lea ecx, [r14 + 1]
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x54], edx
inc rcx
cmp rcx, 0x270
jb 0x140045380
mov ebx, 0x270
mov dword [rsp + 0x50], ebx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r14
mov r8d, reloc.WS2_32.dll_ntohs
lea rdx, str.0123456789ABCDE
lea rcx, [rsp + 0x30]
call fcn.140038970
nop
mov r13d, dword [rsp + 0x40]
dec r13d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi], xmm0
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov qword [rsp + 0x20], rax
test rdi, rdi
je 0x14004546f
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x1400456cf
cmp rdi, 0x1000
jb 0x14004543f
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x1400456c9
call fcn.14016a5fc
test rax, rax
je 0x140045438
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14004544a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.14016a5fc
mov rcx, rax
mov qword [rsi], rcx
lea rax, [rcx + rdi]
mov qword [rsi + 0x10], rax
lea r14, [rcx + rdi]
mov qword [rsp + 0x20], r14
mov r8, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov qword [rsi + 8], r14
mov rax, r14
mov r14, qword [rsi]
mov r12, qword [rsp + 0x48]
mov r15, qword [rsp + 0x30]
cmp r14, rax
je 0x140045661
cmp r13d, 0xffffffff
jne 0x1400455f7
cmp ebx, 0x270
jne 0x1400454e2
lea r8, [rsp + 0x58]
mov r9d, ebx
nop
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
shr edx, 1
xor ecx, edx
xor ecx, dword [r8 + 0x630]
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub r9, 1
jne 0x1400454a0
mov ebx, dword [rsp + 0x50]
jmp 0x1400455bd
cmp ebx, 0x4e0
jb 0x1400455bd
xor r8d, r8d
mov eax, dword [rbp + r8*4 + 0x914]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x918]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf48]
shr edx, 1
xor ecx, edx
mov dword [rsp + r8*4 + 0x54], ecx
inc r8
cmp r8, 0xe3
jb 0x1400454f1
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x914]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x918]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + r8*4 - 0x438]
mov dword [rsp + r8*4 + 0x54], ecx
inc r8
cmp r8, 0x26f
jb 0x140045540
mov edx, dword [rbp + 0x12d0]
and edx, 0x80000000
mov eax, dword [rsp + 0x54]
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + 0x584]
mov dword [rbp + 0x910], ecx
xor ebx, ebx
mov dword [rsp + 0x50], ebx
mov eax, ebx
mov edx, dword [rsp + rax*4 + 0x54]
inc ebx
mov dword [rsp + 0x50], ebx
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x12d4]
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
jmp 0x14004563c
lea ebx, [r13 + 1]
lea rcx, [rsp + 0x50]
call fcn.14004d100
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140045634
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140045634
nop
lea rcx, [rsp + 0x50]
call fcn.14004d100
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140045620
shr rcx, 0x20
mov ebx, dword [rsp + 0x50]
lea rdx, [rsp + 0x30]
cmp r12, 0xf
cmova rdx, r15
movsxd rax, ecx
movzx ecx, byte [rax + rdx]
mov byte [r14], cl
inc r14
cmp r14, qword [rsp + 0x20]
jne 0x140045485
cmp r12, 0xf
jbe 0x14004569c
lea rdx, [r12 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140045694
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140045694
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.14016a950
mov rax, rsi
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.14016a220
mov rbx, qword [rsp + 0x1440]
add rsp, 0x13f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140003770
nop
call fcn.1400351d0
int3