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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14c0]
mov eax, 0x15c0
call fcn.140069130
sub rsp, rax
mov rax, qword [0x1400bf0c0]
xor rax, rsp
mov qword [rbp + 0x14b0], rax
mov r12, r9
mov r15, rdx
mov r14, rcx
mov qword [rsp + 0x70], rcx
xor esi, esi
mov dword [rsp + 0x40], esi
lea rdi, [rcx + 8]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], send
mov byte [rdi], sil
movups xmmword [rcx + 0x28], xmm0
mov qword [rcx + 0x38], rsi
mov qword [rcx + 0x40], send
mov byte [rcx + 0x28], sil
cmp r8d, 1
jne 0x140011f30
inc byte [rcx]
movups xmm1, xmmword [rdx]
mov rax, qword [rdi + 0x18]
mov rbx, qword [rdx + 8]
cmp rbx, rax
ja 0x140011c8a
mov r15, rdi
cmp rax, 0xf
jbe 0x140011c6f
mov r15, qword [rdi]
mov qword [rdi + 0x10], rbx
mov r8, rbx
movq rdx, xmm1
mov rcx, r15
call fcn.140093090
mov byte [rbx + r15], 0
jmp 0x140011c9a
movq r9, xmm1
mov rdx, rbx
mov rcx, rdi
call fcn.14001a510
mov rbx, qword [rdi + 0x10]
mov rdx, rsi
cmp qword [rdi + 0x18], 0xf
jbe 0x140011cba
mov rax, qword [rdi]
movzx r12d, byte [rax]
movzx r15d, byte [rbx + rax - 1]
mov rcx, rax
jmp 0x140011cc7
movzx r12d, byte [rdi]
movzx r15d, byte [rbx + rdi - 1]
mov rcx, rdi
mov eax, 1
cmp rbx, rax
cmovb rax, rbx
add rcx, rdx
sub rbx, rax
mov r8, rbx
sub r8, rdx
inc r8
lea rdx, [rcx + rax]
call fcn.140093090
mov qword [rdi + 0x10], rbx
mov rax, rbx
mov edx, 1
cmp qword [rdi + 0x18], 0xf
jbe 0x140011d1d
mov rcx, qword [rdi]
sub rax, rcx
lea r9, [rcx - 1]
add r9, rax
mov rax, rbx
sub rax, r9
cmp rax, rdx
cmovb rdx, rax
mov rax, rcx
jmp 0x140011d36
mov r9, rdi
sub r9, rdi
dec r9
add r9, rbx
sub rax, r9
cmp rax, rdx
cmovb rdx, rax
mov rax, rdi
lea rcx, [rax + r9]
sub rbx, rdx
mov r8, rbx
sub r8, r9
inc r8
add rdx, rcx
call fcn.140093090
mov qword [rdi + 0x10], rbx
mov edx, esi
test rbx, rbx
je 0x140011d8e
mov rcx, rsi
nop dword [rax]
test dl, 1
movzx r8d, r15b
movzx eax, r12b
cmovne r8d, eax
mov rax, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x140011d7c
mov rax, qword [rdi]
xor byte [rax + rcx], r8b
inc edx
inc rcx
movsxd rax, edx
cmp rax, qword [rdi + 0x10]
jb 0x140011d60
mov qword [rbp - 0x10], rsi
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
lea rbx, [r14 + 8]
mov byte [rbp + 0xe8], 0
xor edx, edx
lea rcx, [rbp + 0xf0]
call fcn.140018510
nop
mov dword [rsp + 0x40], 1
lea rax, [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov qword [rbp - 0x50], rsi
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140011de2
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
call qword [rax]
mov qword [rbp - 0x50], rax
cmp qword [rbx + 0x18], 0xf
jbe 0x140011df5
mov r8, qword [rbx]
mov rdx, r8
add r8, qword [rbx + 0x10]
jmp 0x140011dff
mov r8, qword [rbx + 0x10]
add r8, rbx
mov rdx, rbx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], r8
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp + 0x100], xmm0
lea r8, [rsp + 0x78]
lea rdx, [rbp + 0x100]
lea rcx, [rbp]
call fcn.14001e050
nop
lea r8, [rbp + 0xe8]
mov rcx, rax
call fcn.14001a7b0
nop
lea rcx, [rbp + 0x48]
call fcn.14001a690
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x140011e62
mov rax, qword [rcx]
lea rdx, [rbp]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x38], rsi
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140011e7f
mov rax, qword [rcx]
lea rdx, [rbp - 0x48]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 0x10], rsi
lea rdx, [0x1400ad7c4]
lea rcx, [rbp + 0xe8]
call fcn.140018c90
movzx edx, byte [rax]
mov ecx, edx
sub ecx, 4
je 0x140011eda
sub ecx, 1
je 0x140011ec9
sub ecx, 1
je 0x140011ec0
cmp ecx, 1
jne 0x140012483
add rax, 8
cmp dl, 7
cmovne rax, rsi
cvttsd2si ecx, qword [rax]
jmp 0x140011ee8
add rax, 8
cmp dl, 6
jmp 0x140011ee1
sub dl, 5
cmp dl, 1
ja 0x140011ed5
lea rsi, [rax + 8]
movzx ecx, byte [rsi]
jmp 0x140011ee8
add rax, 8
cmp dl, 4
cmovne rax, rsi
movzx ecx, byte [rax]
mov byte [r14 + 1], cl
lea rdx, str.message
lea rcx, [rbp + 0xe8]
call fcn.140018c90
mov rdx, rax
lea rcx, [r14 + 8]
call fcn.140018dd0
lea rdx, str.session_id
lea rcx, [rbp + 0xe8]
call fcn.140018c90
mov rdx, rax
lea rcx, [r14 + 0x28]
call fcn.140018dd0
nop
jmp 0x140012436
mov byte [rbp + 0xe8], 0
xor edx, edx
lea rcx, [rbp + 0xf0]
call fcn.140018510
nop
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x30], 5
movsxd r13, dword [rbp + 0x1520]
mov qword [rsp + 0x38], r13
lea rdx, [0x1400ad7c4]
lea rcx, [rbp + 0xe8]
call fcn.140018c90
mov rdx, rax
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x30]
mov byte [rdx], al
mov byte [rsp + 0x30], cl
mov rax, qword [rdx + 8]
mov rcx, qword [rsp + 0x38]
mov qword [rdx + 8], rcx
mov qword [rsp + 0x38], rax
movzx edx, byte [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.140017790
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x30], 3
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
lea ecx, [rax + 0x20]
call fcn.1400689c0
mov rbx, rax
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rbx
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rsi
mov r8, qword [r12 + 8]
mov rdx, qword [r12]
mov rcx, rbx
call fcn.140002fa0
nop
mov qword [rsp + 0x38], rbx
lea rdx, str.session_id
lea rcx, [rbp + 0xe8]
call fcn.140018c90
mov r8, rax
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x30]
mov byte [r8], al
mov byte [rsp + 0x30], cl
mov rax, qword [r8 + 8]
mov rdx, qword [rsp + 0x38]
mov qword [r8 + 8], rdx
mov qword [rsp + 0x38], rax
movzx edx, byte [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.140017790
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov rbx, qword [r15]
xor eax, eax
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x30], 3
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
lea ecx, [rax + 0x20]
call fcn.1400689c0
mov r15, rax
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], r15
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], rsi
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rbx + r8], 0
jne 0x1400120b0
mov rdx, rbx
mov rcx, r15
call fcn.140002fa0
nop
mov qword [rsp + 0x38], r15
lea rdx, str.message
lea rcx, [rbp + 0xe8]
call fcn.140018c90
mov rdx, rax
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x30]
mov byte [rdx], al
mov byte [rsp + 0x30], cl
mov rax, qword [rdx + 8]
mov rcx, qword [rsp + 0x38]
mov qword [rdx + 8], rcx
mov qword [rsp + 0x38], rax
movzx edx, byte [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.140017790
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xe8]
call fcn.1400163e0
mov rbx, rax
cmp rdi, rax
je 0x140012191
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x140012165
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x140012160
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140012477
mov rcx, r8
call fcn.140068c3c
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], send
mov byte [rdi], 0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], send
mov byte [rbx], 0
mov rdx, qword [rbp + 0x118]
cmp rdx, 0xf
jbe 0x1400121d2
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400121cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012477
call fcn.140068c3c
cmp qword [r14 + 0x18], 0x200
jbe 0x1400121f6
lea rax, [r14 + 8]
mov qword [rax + 0x10], rsi
cmp qword [rax + 0x18], 0xf
jbe 0x1400121ee
mov rax, qword [rax]
mov byte [rax], 0
jmp 0x140012436
lea rcx, [r14 + 0x28]
movups xmm1, xmmword [r12]
mov rax, qword [rcx + 0x18]
mov rbx, qword [r12 + 8]
cmp rbx, rax
ja 0x140012233
mov rdi, rcx
cmp rax, 0xf
jbe 0x140012219
mov rdi, qword [rcx]
mov qword [rcx + 0x10], rbx
mov r8, rbx
movq rdx, xmm1
mov rcx, rdi
call fcn.140093090
mov byte [rbx + rdi], 0
jmp 0x140012240
movq r9, xmm1
mov rdx, rbx
call fcn.14001a510
mov byte [r14 + 1], r13b
lea rdi, [r14 + 8]
call fcn.140067dd8
mov dword [rbp + 0x14a4], 0xffffffff
mov dword [rbp + 0x124], eax
mov edx, 1
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 [rbp + rdx*4 + 0x124], eax
inc rdx
cmp rdx, 0x270
jb 0x140012270
mov dword [rbp + 0x120], 0x270
lea rcx, [rbp + 0x120]
call fcn.1400225c0
mov ebx, eax
shl rbx, 8
shr rbx, 0x20
lea rcx, [rbp + 0x120]
call fcn.1400225c0
mov r12d, eax
shl r12, 8
movzx r15d, bl
movzx eax, bl
cmp r12d, 0x100
cmovb r15d, eax
shr r12, 0x20
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x140012320
mov rcx, rsi
nop word [rax + rax]
test sil, 1
movzx edx, r12b
movzx eax, r15b
cmovne edx, eax
mov rax, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14001230c
mov rax, qword [rdi]
xor byte [rax + rcx], dl
inc esi
inc rcx
mov r8, qword [rdi + 0x10]
movsxd rax, esi
cmp rax, r8
jb 0x1400122f0
mov rcx, qword [rdi + 0x18]
cmp rcx, 0xf
jbe 0x140012332
mov r9, qword [rdi]
mov rax, r9
jmp 0x140012338
mov rax, rdi
mov r9, rdi
sub r9, rax
cmp r8, r9
jb 0x14001247d
mov rax, rcx
sub rax, r8
cmp rax, 1
jb 0x140012385
lea rax, [r8 + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rcx, 0xf
jbe 0x140012364
mov rax, qword [rdi]
lea rbx, [rax + r9]
sub r8, r9
inc r8
lea rcx, [rbx + 1]
mov rdx, rbx
call fcn.140093090
movsx eax, r15b
movzx eax, al
mov byte [rbx], al
jmp 0x1400123a8
mov byte [rsp + 0x28], r15b
mov qword [rsp + 0x20], 1
movzx r8d, byte [rbp + 0xe0]
mov edx, 1
mov rcx, rdi
call fcn.14001a1d0
mov rcx, qword [rdi + 0x18]
mov r8, qword [rdi + 0x10]
cmp rcx, 0xf
jbe 0x1400123c1
mov r9, qword [rdi]
mov rdx, r9
add r9, r8
jmp 0x1400123c8
mov rdx, rdi
lea r9, [rdi + r8]
sub r9, rdx
cmp r8, r9
jb 0x14001247d
mov rax, rcx
sub rax, r8
cmp rax, 1
jb 0x140012412
lea rax, [r8 + 1]
mov qword [rdi + 0x10], rax
cmp rcx, 0xf
jbe 0x1400123f1
mov rdi, qword [rdi]
lea rbx, [rdi + r9]
sub r8, r9
inc r8
lea rcx, [rbx + 1]
mov rdx, rbx
call fcn.140093090
movsx eax, r12b
movzx eax, al
mov byte [rbx], al
jmp 0x140012436
mov byte [rsp + 0x28], r12b
mov qword [rsp + 0x20], 1
movzx r8d, byte [rbp + 0xe0]
mov edx, 1
mov rcx, rdi
call fcn.14001a1d0
nop
movzx edx, byte [rbp + 0xe8]
lea rcx, [rbp + 0xf0]
call fcn.140017790
nop
mov rax, r14
mov rcx, qword [rbp + 0x14b0]
xor rcx, rsp
call fcn.140068880
mov rbx, qword [rsp + 0x1610]
add rsp, 0x15c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140073bd4
nop
call fcn.140018790
nop
mov rcx, rax
call fcn.140017d20
mov rdx, rax
lea rcx, [rbp + 0x100]
call fcn.140002f60
nop
mov r8, rax
lea rdx, [0x1400a53d0]
lea rcx, [rsp + 0x50]
call fcn.140018a40
nop
mov r8, rax
mov edx, 0x12e
lea rcx, [rsp + 0x78]
call fcn.140010f20
lea rdx, [0x1400bd070]
lea rcx, [rsp + 0x78]
call fcn.14006aa84
int3