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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x140026010]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r12, rdx
mov qword [rsp + 0x28], rdx
xor r13d, r13d
mov dword [rsp + 0x20], r13d
mov ebx, 4
mov rax, qword gs:[0x58]
add rbx, qword [rax]
mov eax, dword [rbx]
cmp dword [0x140028aac], eax
jle 0x140013b9e
lea rcx, [0x140028aac]
call fcn.140018a8c
cmp dword [0x140028aac], 0xffffffff
jne 0x140013b9e
lea rcx, [0x140028aac]
call fcn.140018a2c
lea r15, [0x140027720]
mov eax, dword [rbx]
cmp dword [0x140028aa8], eax
jle 0x140013c2a
lea rcx, [0x140028aa8]
call fcn.140018a8c
cmp dword [0x140028aa8], 0xffffffff
jne 0x140013c2a
call qword [0x14001e2b8]
mov r8d, eax
mov dword [0x140028aa4], 0xffffffff
mov dword [0x140027724], eax
mov edx, 1
nop dword [rax]
nop word [rax + rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, edx
mov dword [r15 + rdx*4 + 4], r8d
inc rdx
cmp rdx, 0x270
jb 0x140013bf0
mov dword [0x140027720], 0x270
lea rcx, [0x140028aa8]
call fcn.140018a2c
mov eax, dword [rbx]
cmp dword [0x140027708], eax
jle 0x140013c66
lea rcx, [0x140027708]
call fcn.140018a8c
cmp dword [0x140027708], 0xffffffff
jne 0x140013c66
mov dword [0x140027700], r13d
mov dword [0x140027704], 0xf
lea rcx, [0x140027708]
call fcn.140018a2c
mov r14d, 8
mov eax, dword [rbx]
cmp dword [0x1400276f8], eax
jle 0x140013ca8
lea rcx, [0x1400276f8]
call fcn.140018a8c
cmp dword [0x1400276f8], 0xffffffff
jne 0x140013ca8
mov dword [0x1400276f0], r14d
mov dword [0x1400276f4], 0xb
lea rcx, [0x1400276f8]
call fcn.140018a2c
xor edx, edx
mov r8d, 0xf8
lea rcx, [rsp + 0x30]
call fcn.140019654
lea rax, [0x14001f9d8]
mov qword [rsp + 0x30], rax
lea rax, [0x14001f868]
mov qword [rsp + 0x40], rax
lea rcx, [rbp - 0x38]
call qword [0x14001e188]
nop
mov dword [rsp + 0x20], 2
xor r8d, r8d
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call qword [0x14001e1a0]
nop
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [0x14001f968]
mov qword [rsp + rcx + 0x30], rax
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0x2c], edx
lea rcx, [rsp + 0x48]
call qword [0x14001e240]
lea rax, [0x14001f8b8]
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x50], r13
mov dword [rbp - 0x48], r13d
lea rdx, [0x140010260]
lea rcx, [rsp + 0x40]
call qword [0x14001e208]
mov edi, 0x80000000
nop word [rax + rax]
mov ecx, dword [0x140027700]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x140027704]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x140013d9b
mov rcx, r15
call fcn.140016f50
mov edx, eax
jmp 0x140013ddf
lea edi, [rbx + 1]
nop
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x140013dba
mov rcx, r15
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x140013dd3
cmp r9d, ebx
jne 0x140013da0
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rsi + rdx]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
sub r14, 1
jne 0x140013d60
lea rdx, [0x14001f774]
lea rcx, [rsp + 0x40]
call fcn.140001d40
mov r14d, 4
nop dword [rax]
mov ecx, dword [0x140027700]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x140027704]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x140013e5b
mov rcx, r15
call fcn.140016f50
mov edx, eax
jmp 0x140013e9f
lea edi, [rbx + 1]
nop
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x140013e7a
mov rcx, r15
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x140013e93
cmp r9d, ebx
jne 0x140013e60
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rdx + rsi]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
sub r14, 1
jne 0x140013e20
lea rdx, [0x14001f778]
lea rcx, [rsp + 0x40]
call fcn.140001d40
mov r15d, 3
mov r14d, r15d
nop
mov ecx, dword [0x140027700]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x140027704]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x140013f1f
lea rcx, [0x140027720]
call fcn.140016f50
mov edx, eax
jmp 0x140013f65
lea edi, [rbx + 1]
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x140013f40
lea rcx, [0x140027720]
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x140013f59
cmp r9d, ebx
jne 0x140013f22
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rdx + rsi]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
sub r14, 1
jne 0x140013ee0
lea rdx, [0x14001f774]
lea rcx, [rsp + 0x40]
call fcn.140001d40
mov ecx, dword [0x1400276f0]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x1400276f4]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x140013fdb
lea rcx, [0x140027720]
call fcn.140016f50
mov edx, eax
jmp 0x140014023
lea edi, [rbx + 1]
nop
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x140013ffe
lea rcx, [0x140027720]
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x140014017
cmp r9d, ebx
jne 0x140013fe0
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rdx + rsi]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
nop
mov ecx, dword [0x140027700]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x140027704]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x14001407f
lea rcx, [0x140027720]
call fcn.140016f50
mov edx, eax
jmp 0x1400140c5
lea edi, [rbx + 1]
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x1400140a0
lea rcx, [0x140027720]
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x1400140b9
cmp r9d, ebx
jne 0x140014082
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rdx + rsi]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
sub r15, 1
jne 0x140014040
lea rdx, [0x14001f774]
lea rcx, [rsp + 0x40]
call fcn.140001d40
lea r14d, [r15 + 0xc]
mov ecx, dword [0x140027700]
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
cmp ecx, edi
cmovae esi, eax
mov ecx, dword [0x140027704]
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rdi]
cmp ecx, edi
cmovae ebx, eax
sub ebx, esi
cmp ebx, 0xffffffff
jne 0x14001413f
lea rcx, [0x140027720]
call fcn.140016f50
mov edx, eax
jmp 0x140014185
lea edi, [rbx + 1]
mov r8d, r13d
mov eax, r13d
test ebx, ebx
je 0x140014160
lea rcx, [0x140027720]
call fcn.140016f50
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div edi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div edi
cmp eax, ecx
jb 0x140014179
cmp r9d, ebx
jne 0x140014142
xor edx, edx
mov eax, r8d
div edi
mov edi, 0x80000000
lea ecx, [rdx + rsi]
lea eax, [rcx + rdi]
lea edx, [rcx - 0x80000000]
cmp ecx, edi
cmovae edx, eax
lea rcx, [rsp + 0x40]
call qword [0x14001e210]
sub r14, 1
jne 0x140014100
mov qword [r12 + 0x10], r13
mov qword [r12 + 0x18], 0xf
mov byte [r12], r14b
mov dword [rsp + 0x20], 0xa
mov ecx, dword [rbp - 0x48]
test cl, 2
jne 0x1400141ef
mov rax, qword [rbp - 0x78]
mov r8, qword [rax]
test r8, r8
je 0x1400141ef
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax]
cmp r8, qword [rbp - 0x50]
cmovb r8, qword [rbp - 0x50]
sub r8, rdx
jmp 0x140014215
test cl, 4
jne 0x14001421e
mov rax, qword [rbp - 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x14001421e
mov rax, qword [rsp + 0x60]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x68]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
mov rcx, r12
call fcn.140001ba0
nop
mov rcx, qword [rsp + 0x30]
movsxd rdx, dword [rcx + 4]
lea rax, [0x14001f968]
mov qword [rsp + rdx + 0x30], rax
mov rcx, qword [rsp + 0x30]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x98]
mov dword [rsp + rdx + 0x2c], r8d
lea rcx, [rsp + 0x48]
call fcn.140014810
lea rcx, [rsp + 0x50]
call qword [0x14001e228]
lea rcx, [rbp - 0x38]
call qword [0x14001e1f8]
mov rax, r12
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.140018620
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret