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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1310]
mov eax, 0x1410
call fcn.14007f1c0
sub rsp, rax
mov rax, qword [0x1400d9080]
xor rax, rsp
mov qword [rbp + 0x1300], rax
xor edi, edi
mov qword [rsp + 0x20], rcx
mov ebx, edx
mov qword [rsp + 0x40], rdi
xorps xmm0, xmm0
mov qword [rsp + 0x48], rdi
lea rdx, str.abcdefghijklmnopqrstuvwxyz0123456789
lea r8d, [rdi + 0x24]
lea rcx, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
call fcn.1400361b0
xorps xmm0, xmm0
mov qword [rsp + 0x60], rdi
movups xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x50], di
lea ecx, [rdi + 1]
mov qword [rsp + 0x68], 7
mov dword [rbp + 0x12f4], 0xffffffff
mov dword [rsp + 0x74], ebx
nop dword [rax]
nop dword [rax + rax]
mov eax, ebx
shr eax, 0x1e
xor eax, ebx
imul ebx, eax, 0x6c078965
add ebx, ecx
mov dword [rsp + rcx*4 + 0x74], ebx
inc rcx
cmp rcx, 0x270
jb 0x140041720
mov esi, dword [rsp + 0x40]
mov ebx, 0x270
mov r14, qword [rsp + 0x30]
dec esi
mov r15, qword [rsp + 0x48]
mov r12d, 5
mov dword [rsp + 0x70], ebx
nop
cmp esi, 0xffffffff
jne 0x1400418d7
cmp ebx, 0x270
jne 0x1400417c2
lea r8, [rsp + 0x78]
mov r9d, ebx
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140041780
mov ebx, dword [rsp + 0x70]
jmp 0x14004189d
cmp ebx, 0x4e0
jb 0x14004189d
mov r8, rdi
mov eax, dword [rbp + r8*4 + 0x934]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x938]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf68]
xor ecx, edx
mov dword [rsp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0xe3
jb 0x1400417d1
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x934]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x938]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 - 0x418]
xor ecx, edx
mov dword [rsp + r8*4 + 0x74], ecx
inc r8
cmp r8, 0x26f
jb 0x140041820
mov edx, dword [rbp + 0x12f0]
mov ebx, edi
mov eax, dword [rsp + 0x74]
and edx, 0x80000000
btr eax, 0x1f
mov dword [rsp + 0x70], ebx
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [rbp + 0x5a4]
mov dword [rbp + 0x930], ecx
mov eax, ebx
inc ebx
mov edx, dword [rsp + rax*4 + 0x74]
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x12f4]
xor edx, eax
mov dword [rsp + 0x70], ebx
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 0x14004191e
lea rcx, [rsp + 0x70]
lea ebx, [rsi + 1]
call fcn.140041e40
mov ecx, eax
mov edi, ebx
imul rcx, rdi
cmp ecx, ebx
jae 0x140041914
mov eax, ebx
xor edx, edx
neg eax
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140041914
nop
lea rcx, [rsp + 0x70]
call fcn.140041e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140041900
mov ebx, dword [rsp + 0x70]
shr rcx, 0x20
xor edi, edi
movsxd rdx, ecx
lea rax, [rsp + 0x30]
cmp r15, 7
lea rcx, [rsp + 0x50]
cmova rax, r14
movzx edx, word [rax + rdx*2]
call fcn.14003f9b0
sub r12, 1
jne 0x140041760
mov r14, qword [rsp + 0x60]
movabs rbx, 0x7ffffffffffffffe
mov rax, rbx
sub rax, r14
cmp rax, 1
jb 0x140041abf
mov rcx, qword [rsp + 0x20]
lea r15, [r14 + 1]
mov r12, qword [rsp + 0x68]
xorps xmm0, xmm0
mov rdi, qword [rsp + 0x50]
cmp r12, 7
mov qword [rsp + 0x1448], r13
mov rsi, rcx
movups xmmword [rcx], xmm0
lea r13, [rsp + 0x50]
cmova r13, rdi
xor eax, eax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
cmp r15, 7
jbe 0x1400419e3
mov rax, r15
or rax, 7
cmp rax, rbx
ja 0x1400419c1
mov edx, 0xa
mov rbx, rax
cmp rax, rdx
cmovb rbx, rdx
inc rbx
lea rdx, [rsp + 0x28]
mov qword [rsp + 0x28], rbx
call fcn.1400363d0
mov rcx, qword [rsp + 0x20]
mov rsi, rax
dec rbx
mov qword [rcx], rax
jmp 0x1400419e8
mov ebx, 7
mov qword [rcx + 0x10], r15
lea r8, [r14 + r14]
mov qword [rcx + 0x18], rbx
mov rdx, r13
lea rcx, [rsi + 2]
mov word [rsi], 0x2e
call fcn.1400abca0
mov r13, qword [rsp + 0x1448]
xor eax, eax
mov word [rsi + r15*2], ax
cmp r12, 7
jbe 0x140041a4b
lea rdx, [r12*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140041a43
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140041ab9
mov rcx, rdi
call fcn.14007ee04
mov rax, qword [rsp + 0x48]
cmp rax, 7
jbe 0x140041a89
mov rcx, qword [rsp + 0x30]
lea rdx, [rax*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140041a84
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140041ab9
call fcn.14007ee04
mov rax, qword [rsp + 0x20]
mov rcx, qword [rbp + 0x1300]
xor rcx, rsp
call fcn.14007e7e0
lea r11, [rsp + 0x1410]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.140085614
int3
call fcn.14000bd50
int3