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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov rbx, rcx
xor r13d, r13d
mov dword [rbp - 0x39], r13d
mov r12d, 8
mov edx, dword [0x180542bb4]
mov rax, qword gs:[0x58]
mov r14, qword [rax + rdx*8]
mov eax, 0x10
mov eax, dword [rax + r14]
cmp dword [0x180543288], eax
jg 0x18000efc4
mov r15d, 0x14
mov eax, dword [r15 + r14]
mov ecx, 0x20
test al, 1
jne 0x18000ec97
or eax, 1
mov dword [r15 + r14], eax
mov esi, ecx
add rsi, r14
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsi + 0x1384], 0xffffffff
mov dword [rsi + 4], eax
mov edx, 1
lea rdi, [rsi + 8]
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rdi], eax
inc rdx
lea rdi, [rdi + 4]
cmp rdx, 0x270
jb 0x18000ec70
mov dword [rsi], 0x270
mov eax, dword [r15 + r14]
mov esi, 0x13a8
test al, 2
jne 0x18000ecbb
or eax, 2
mov dword [r15 + r14], eax
mov qword [rsi + r14], r13
mov rax, qword [0x1805432a0]
mov qword [rsi + r14 + 8], rax
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], r13
mov qword [rbp - 1], 7
mov word [rbp - 0x19], r13w
mov dword [rbp - 0x39], 5
mov edx, 0x105
mov r9d, edx
lea rcx, [rbp - 0x19]
call fcn.180011010
lea rcx, [rbp - 0x19]
cmp qword [rbp - 1], 7
cmova rcx, qword [rbp - 0x19]
call fcn.18001af18
mov qword [rbp + 0x6f], rax
mov ecx, eax
mov r9, qword [rbp - 9]
cmp rcx, r9
ja 0x18000ed38
mov qword [rbp - 9], rcx
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], 7
cmova rax, qword [rbp - 0x19]
mov word [rax + rcx*2], r13w
jmp 0x18000ed88
mov rdx, rcx
sub rdx, r9
mov rdi, qword [rbp - 1]
mov rax, rdi
sub rax, r9
cmp rdx, rax
ja 0x18000ed7c
mov qword [rbp - 9], rcx
lea r8, [rbp - 0x19]
cmp rdi, 7
cmova r8, qword [rbp - 0x19]
lea rdi, [r8 + r9*2]
test rdx, rdx
je 0x18000ed71
movzx eax, r13w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r9 + rdx]
mov word [r8 + rax*2], r13w
jmp 0x18000ed88
mov r9, rdx
lea rcx, [rbp - 0x19]
call fcn.180011010
mov ecx, dword [rbp + 0x73]
cmp ecx, 0xffffffff
jne 0x18000ed9f
mov ecx, 0x14
mov dword [rbp - 0x29], ecx
call fcn.1800126f0
jmp 0x18000eda7
mov dword [rbp - 0x29], ecx
call fcn.1800127e0
mov qword [rbp - 0x21], rax
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x29], xmm0
mov dword [rbp - 0x39], 3
lea rdx, [rbp - 0x29]
test ecx, ecx
jne 0x18000efba
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], 7
cmova rax, qword [rbp - 0x19]
mov qword [rbp - 0x29], rax
mov rax, qword [rbp - 9]
mov qword [rbp - 0x21], rax
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x29], xmm0
lea rcx, [rbp + 7]
call fcn.180012a30
nop
mov dword [rbp - 0x39], 0x19
mov rdx, qword [rbp - 1]
cmp rdx, 7
jbe 0x18000ee3e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000ee39
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000ee39
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18001b554
mov qword [rbp - 9], r13
mov qword [rbp - 1], 7
mov word [rbp - 0x19], r13w
mov rdx, qword [rbp + 0x17]
add rdx, 0xa
mov rcx, rbx
call fcn.18000e650
lea rax, [rbp + 7]
cmp rbx, rax
je 0x18000ee82
lea rdx, [rbp + 7]
cmp qword [rbp + 0x1f], 0xf
cmova rdx, qword [rbp + 7]
mov r8, qword [rbp + 0x17]
mov rcx, rbx
call fcn.18000e960
mov r15d, esi
add r15, r14
mov esi, 0x20
add rsi, r14
lea r13, [0x180543290]
nop word [rax + rax]
dec r12
mov rdx, qword [r15 + 8]
mov r14, qword [r15]
mov qword [rbp + 0x6f], rsi
sub rdx, r14
cmp rdx, 0xffffffffffffffff
jne 0x18000eed4
mov rcx, rsi
call fcn.180010df0
mov edi, eax
shl rdi, 0x20
mov rcx, rsi
call fcn.180010df0
mov eax, eax
or rdi, rax
jmp 0x18000eee3
inc rdx
lea rcx, [rbp + 0x6f]
call fcn.180010c70
mov rdi, rax
lea rax, [rdi + r14]
mov rdx, r13
cmp qword [0x1805432a8], 0xf
cmova rdx, qword [0x180543290]
movzx edx, byte [rdx + rax]
mov rcx, rbx
call fcn.180011600
test r12, r12
jne 0x18000eea0
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x18000ef40
lea rax, [rcx + 2]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x18000ef33
mov rax, qword [rbx]
mov word [rax + rcx], 0x612e
mov byte [rax + rcx + 2], 0
jmp 0x18000ef5e
mov qword [rsp + 0x20], 2
lea r9, [0x18003f538]
mov edx, 2
mov rcx, rbx
call fcn.180011410
nop
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0xf
jbe 0x18000ef9c
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000ef97
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000ef97
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18001b554
mov rax, rbx
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [rbp - 0x19]
call fcn.1800121a0
nop
lea rcx, [0x180543288]
call fcn.18001b16c
cmp dword [0x180543288], 0xffffffff
jne 0x18000ec2e
mov ecx, 0x40
call fcn.18001b564
mov rdx, rax
mov qword [0x180543290], rax
mov qword [0x1805432a0], 0x3e
mov qword [0x1805432a8], 0x3f
movups xmm0, xmmword [str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x18003f508]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x18003f518]
movups xmmword [rax + 0x20], xmm0
movsd xmm0, qword [0x18003f528]
movsd qword [rax + 0x30], xmm0
mov eax, dword [0x18003f530]
mov dword [rdx + 0x38], eax
movzx eax, word [0x18003f534]
mov word [rdx + 0x3c], ax
mov byte [rdx + 0x3e], 0
lea rcx, [0x18001c8a0]
call fcn.18001b53c
nop
lea rcx, [0x180543288]
call fcn.18001b100
jmp 0x18000ec2e