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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov edi, 4
mov rax, qword gs:[0x58]
add rdi, qword [rax]
xor r15d, r15d
lea rsi, [0x1400ddf78]
mov eax, dword [rdi]
cmp dword [0x1400dcbc4], eax
jle 0x140044376
lea rcx, [0x1400dcbc4]
call fcn.1400b018c
cmp dword [0x1400dcbc4], 0xffffffff
jne 0x140044376
xorps xmm0, xmm0
movups xmmword [0x1400ddf78], xmm0
mov qword [0x1400ddf88], r15
mov qword [0x1400ddf90], r15
lea r8d, [r15 + 0x47]
lea rdx, str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_____
mov rcx, rsi
call fcn.14004db60
lea rcx, [0x1400b2d10]
call fcn.1400b043c
nop
lea rcx, [0x1400dcbc4]
call fcn.1400b0120
mov eax, dword [rdi]
cmp dword [0x1400dcbe4], eax
jle 0x1400443a1
lea rcx, [0x1400dcbe4]
call fcn.1400b018c
cmp dword [0x1400dcbe4], 0xffffffff
jne 0x1400443a1
lea rcx, [0x1400dcbe4]
call fcn.1400b0120
lea rbp, [0x1400dcbf0]
mov ebx, 0x270
mov eax, dword [rdi]
cmp dword [0x1400dcbbc], eax
jle 0x14004441f
lea rcx, [0x1400dcbbc]
call fcn.1400b018c
cmp dword [0x1400dcbbc], 0xffffffff
jne 0x14004441f
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x1400ddf74], 0xffffffff
mov dword [0x1400dcbf4], eax
mov r8d, 1
nop dword [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [rbp + r8*4 + 4], eax
inc r8
cmp r8, rbx
jb 0x1400443f0
mov dword [0x1400dcbf0], ebx
lea rcx, [0x1400dcbbc]
call fcn.1400b0120
mov eax, dword [rdi]
cmp dword [0x1400dcbc0], eax
jle 0x140044462
lea rcx, [0x1400dcbc0]
call fcn.1400b018c
cmp dword [0x1400dcbc0], 0xffffffff
jne 0x140044462
mov qword [0x1400dcbd0], r15
mov rax, qword [0x1400ddf88]
dec rax
mov qword [0x1400dcbd8], rax
lea rcx, [0x1400dcbc0]
call fcn.1400b0120
mov qword [rsp + 0x40], rbp
mov r14, qword [0x1400dcbd0]
mov rdx, qword [0x1400dcbd8]
sub rdx, r14
cmp rdx, 0xffffffffffffffff
jne 0x140044765
lea r8, [0x1400dcbf8]
mov r11d, 0x9c4
mov r9d, 0xd50
mov ecx, dword [0x1400dcbf0]
cmp ecx, ebx
jne 0x1400444f4
mov r10, r8
mov rdi, rbx
nop word [rax + rax]
mov edx, dword [r10 - 4]
xor edx, dword [r10]
btr edx, 0x1f
xor edx, dword [r10 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r10 + 0x9bc], ecx
lea r10, [r10 + 4]
sub rdi, 1
jne 0x1400444b0
mov ecx, dword [0x1400dcbf0]
jmp 0x1400445c0
cmp ecx, 0x4e0
jb 0x1400445c0
mov r10, r11
mov edx, dword [r10 + rbp]
xor edx, dword [r10 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r10 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r10 + rbp + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r10 + rbp - 0x9c0], ecx
add r10, 4
cmp r10, r9
jb 0x140044503
mov r10, r9
mov edx, dword [r10 + rbp]
xor edx, dword [r10 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r10 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r10 + rbp - 0xd4c]
shr edx, 1
xor ecx, edx
mov dword [r10 + rbp - 0x9c0], ecx
add r10, 4
cmp r10, 0x1380
jb 0x140044542
mov edx, dword [0x1400ddf70]
xor edx, dword [0x1400dcbf4]
btr edx, 0x1f
xor edx, dword [0x1400ddf70]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [0x1400dd224]
mov dword [0x1400dd5b0], ecx
mov dword [0x1400dcbf0], r15d
mov ecx, r15d
mov eax, ecx
mov edx, dword [rbp + rax*4 + 4]
lea r10d, [rcx + 1]
mov dword [0x1400dcbf0], r10d
mov eax, edx
shr eax, 0xb
and eax, dword [0x1400ddf74]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov ecx, edx
and edx, 0xffffdf8c
shl edx, 0xf
mov eax, edx
xor rax, rcx
mov rdi, rax
shr rdi, 0x12
xor rdi, rax
shl rdi, 0x20
cmp r10d, ebx
jne 0x140044655
nop dword [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 0x140044610
mov r10d, dword [0x1400dcbf0]
jmp 0x14004471e
cmp r10d, 0x4e0
jb 0x14004471e
mov edx, dword [r11 + rbp]
xor edx, dword [r11 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r11 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r11 + rbp + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r11 + rbp - 0x9c0], ecx
add r11, 4
cmp r11, r9
jb 0x140044662
nop
mov edx, dword [r9 + rbp]
xor edx, dword [r9 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r9 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r9 + rbp - 0xd4c]
shr edx, 1
xor ecx, edx
mov dword [r9 + rbp - 0x9c0], ecx
add r9, 4
cmp r9, 0x1380
jb 0x1400446a0
mov edx, dword [0x1400ddf70]
xor edx, dword [0x1400dcbf4]
btr edx, 0x1f
xor edx, dword [0x1400ddf70]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [0x1400dd224]
mov dword [0x1400dd5b0], ecx
mov dword [0x1400dcbf0], r15d
mov r10d, r15d
mov eax, r10d
mov ecx, dword [rbp + rax*4 + 4]
lea eax, [r10 + 1]
mov dword [0x1400dcbf0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1400ddf74]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
or rdi, rax
jmp 0x140044775
inc rdx
lea rcx, [rsp + 0x40]
call fcn.14004e8f0
mov rdi, rax
cmp qword [0x1400ddf90], 0x10
cmovae rsi, qword [0x1400ddf78]
lea rax, [r14 + rdi]
movzx eax, byte [rax + rsi]
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret