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

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rdi
push r12
push r13
mov eax, 0x13e0
call fcn.1400106d0
sub rsp, rax
xor r12d, r12d
lea rcx, [rsp + 0x20]
mov ebx, r8d
mov qword [rsp + 0x30], r12
mov rdi, rdx
mov qword [rsp + 0x38], r12
xorps xmm0, xmm0
lea rdx, str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
lea r8d, [r12 + 0x3e]
movups xmmword [rsp + 0x20], xmm0
call fcn.140007450
call fcn.1400100c0
mov dword [rsp + 0x44], eax
lea edx, [r12 + 1]
mov dword [rsp + 0x13c4], 0xffffffff
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x1400085d0
mov eax, dword [rsp + 0x30]
xorps xmm0, xmm0
mov rbp, qword [rsp + 0x20]
dec eax
mov qword [rsp + 0x1410], rsi
mov r13d, r12d
mov qword [rsp + 0x13d8], r14
mov qword [rsp + 0x13d0], r15
mov dword [rsp + 0x40], 0x270
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], 7
mov word [rdi], r12w
test ebx, ebx
jle 0x140008808
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x1418], eax
mov qword [rsp + 0x1428], rcx
movabs r14, 0x7ffffffffffffffe
nop dword [rax]
lea rcx, [rsp + 0x1428]
cmp eax, 0xffffffff
jne 0x140008676
call fcn.140009140
mov ecx, eax
jmp 0x1400086c2
lea esi, [rax + 1]
mov ebx, esi
call fcn.140009140
mov ecx, eax
imul rcx, rbx
cmp ecx, esi
jae 0x1400086b7
mov eax, esi
xor edx, edx
neg eax
div esi
mov esi, edx
cmp ecx, edx
jae 0x1400086b7
nop dword [rax + rax]
lea rcx, [rsp + 0x1428]
call fcn.140009140
mov ecx, eax
imul rcx, rbx
cmp ecx, esi
jb 0x1400086a0
mov ebx, dword [rsp + 0x1420]
shr rcx, 0x20
cmp qword [rsp + 0x38], 8
lea rdx, [rsp + 0x20]
mov rsi, qword [rdi + 0x10]
cmovae rdx, rbp
movsxd rax, ecx
mov rbp, qword [rdi + 0x18]
movzx r15d, word [rdx + rax*2]
cmp rsi, rbp
jae 0x14000870a
lea rax, [rsi + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rbp, 8
jb 0x1400086fa
mov rax, qword [rdi]
mov word [rax + rsi*2], r15w
mov word [rax + rsi*2 + 2], r12w
jmp 0x1400087f0
mov rax, r14
sub rax, rsi
cmp rax, 1
jb 0x14000886e
lea r12, [rsi + 1]
mov rbx, r12
or rbx, 7
cmp rbx, r14
jbe 0x14000872f
mov rbx, r14
jmp 0x140008750
mov rcx, rbp
mov rax, r14
shr rcx, 1
sub rax, rcx
cmp rbp, rax
jbe 0x140008745
mov rbx, r14
jmp 0x140008750
lea rax, [rcx + rbp]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
mov rcx, rdi
call fcn.140009cc0
add rsi, rsi
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rbx
mov r14, rax
mov r8, rsi
mov rcx, rax
cmp rbp, 8
jb 0x1400087c6
mov rbx, qword [rdi]
mov rdx, rbx
call fcn.140012390
xor r12d, r12d
mov word [rsi + r14], r15w
lea rdx, [rbp*2 + 2]
mov word [rsi + r14 + 2], r12w
cmp rdx, 0x1000
jb 0x1400087bc
mov rcx, qword [rbx - 8]
add rdx, 0x27
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x140008874
mov rbx, rcx
mov rcx, rbx
call fcn.140010678
jmp 0x1400087dc
mov rdx, rdi
call fcn.140012390
xor r12d, r12d
mov word [rsi + r14], r15w
mov word [rsi + r14 + 2], r12w
mov ebx, dword [rsp + 0x1420]
mov qword [rdi], r14
movabs r14, 0x7ffffffffffffffe
mov eax, dword [rsp + 0x1418]
inc r13d
mov rbp, qword [rsp + 0x20]
cmp r13d, ebx
jl 0x140008660
mov rax, qword [rsp + 0x38]
cmp rax, 8
jb 0x140008844
lea rdx, [rax*2 + 2]
mov rax, rbp
cmp rdx, 0x1000
jb 0x14000883c
mov rbp, qword [rbp - 8]
add rdx, 0x27
sub rax, rbp
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140008874
mov rcx, rbp
call fcn.140010678
mov r15, qword [rsp + 0x13d0]
mov rax, rdi
mov r14, qword [rsp + 0x13d8]
mov rsi, qword [rsp + 0x1410]
add rsp, 0x13e0
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
call fcn.140004e20
int3
call fcn.140016ea4
int3