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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x1460]
mov eax, 0x1560
call fcn.140007dc0
sub rsp, rax
mov rax, qword [0x140039040]
xor rax, rsp
mov qword [rbp + 0x1450], rax
mov r15, rcx
mov qword [rsp + 0x48], rcx
xor ebx, ebx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
lea rdx, str.Mouse
lea rcx, [rsp + 0x50]
call fcn.140003390
nop
lea rdx, str.Cherry
lea rcx, [rsp + 0x70]
call fcn.140003390
nop
lea rdx, str.Goat
lea rcx, [rbp - 0x70]
call fcn.140003390
nop
lea rdx, str.Brownie
lea rcx, [rbp - 0x50]
call fcn.140003390
nop
lea rdx, str.Windowed
lea rcx, [rbp - 0x30]
call fcn.140003390
nop
lea rdx, str.Widows
lea rcx, [rbp - 0x10]
call fcn.140003390
nop
lea rdx, str.Spider
lea rcx, [rbp + 0x10]
call fcn.140003390
nop
lea rdx, str.Whittler
lea rcx, [rbp + 0x30]
call fcn.140003390
nop
lea rdx, str.Original
lea rcx, [rbp + 0x50]
call fcn.140003390
nop
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rbx
mov ecx, 0x120
call fcn.1400076c0
mov rbx, rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rax
add rax, 0x120
mov qword [rbp + 0x80], rax
lea rax, [rbp + 0x70]
mov qword [rsp + 0x48], rax
lea rdi, [rsp + 0x50]
xorps xmm0, xmm0
movups xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x90], rbx
lea rax, [rbp + 0x70]
mov qword [rbp + 0x98], rax
mov rdx, rdi
mov rcx, rbx
call fcn.1400034d0
add rbx, 0x20
mov qword [rbp + 0x90], rbx
add rdi, 0x20
lea rax, [rbp + 0x70]
cmp rdi, rax
jne 0x1400025c1
mov rdx, rbx
mov rcx, rbx
call fcn.140003c00
mov qword [rbp + 0x78], rbx
lea r9, [fcn.140003320]
mov edx, 0x20
lea r8d, [rdx - 0x17]
lea rcx, [rsp + 0x50]
call fcn.1400076fc
call fcn.1400070c0
mov edx, eax
mov dword [rbp + 0x1444], 0xffffffff
mov dword [rbp + 0xc4], eax
mov ecx, 1
mov r9d, 0x270
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0xc4], edx
inc rcx
cmp rcx, r9
jb 0x140002630
mov dword [rbp + 0xc0], r9d
mov rdi, qword [rbp + 0x78]
mov r14, qword [rbp + 0x70]
sub rdi, r14
sar rdi, 5
dec edi
cmp edi, 0x80000000
jb 0x140002716
cmp edi, 0xffffffff
jne 0x140002716
lea r8, [rbp + 0xc8]
nop dword [rax]
nop word [rax + 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 r9, 1
jne 0x140002690
mov ecx, dword [rbp + 0xc0]
mov edx, dword [rbp + rcx*4 + 0xc4]
inc ecx
mov dword [rbp + 0xc0], ecx
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x1444]
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 eax, edx
shr eax, 0x12
xor eax, edx
movsxd rbx, eax
shl rbx, 5
add rbx, r14
jmp 0x14000276c
lea ebx, [rdi + 1]
lea rcx, [rbp + 0xc0]
call fcn.140004a30
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x140002756
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140002756
nop
lea rcx, [rbp + 0xc0]
call fcn.140004a30
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x140002740
shr rcx, 0x20
movsxd rbx, ecx
shl rbx, 5
add rbx, r14
cmp edi, 0x80000000
jb 0x140002781
cmp edi, 0xffffffff
jne 0x140002781
lea rcx, [rbp + 0xc0]
call fcn.140004a30
mov ecx, eax
jmp 0x1400027ca
inc edi
lea rcx, [rbp + 0xc0]
call fcn.140004a30
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x1400027c6
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x1400027c6
nop dword [rax]
lea rcx, [rbp + 0xc0]
call fcn.140004a30
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x1400027b0
shr rcx, 0x20
movsxd r9, ecx
shl r9, 5
add r9, r14
mov rcx, qword [r9 + 0x10]
mov rdx, qword [rbx + 0x10]
movabs rdi, 0x7ffffffffffffffe
mov rax, rdi
sub rax, rcx
cmp rax, rdx
jb 0x140002939
cmp qword [r9 + 0x18], 7
jbe 0x1400027ff
mov r9, qword [r9]
cmp qword [rbx + 0x18], 7
jbe 0x140002809
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0xa0]
call fcn.140004800
nop
mov rax, qword [rbp + 0xb0]
sub rdi, rax
cmp rdi, 4
jb 0x14000293f
lea r9, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 7
cmova r9, qword [rbp + 0xa0]
mov qword [rsp + 0x30], 4
lea rcx, str..exe
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov rcx, r15
call fcn.140004800
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 7
jbe 0x1400028ba
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400028b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002945
call fcn.1400077cc
nop
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x140002904
mov rdx, qword [rbp + 0x78]
call fcn.140003c00
mov rdx, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x70]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400028ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002933
call fcn.1400077cc
mov rax, r15
mov rcx, qword [rbp + 0x1450]
xor rcx, rsp
call fcn.1400076a0
lea r11, [rsp + 0x1560]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.140010874
nop
call fcn.140001330
nop
call fcn.140001330
nop
call fcn.140010874
int3