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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x15a8]
mov eax, 0x1680
call fcn.1400f8930
sub rsp, rax
movaps xmmword [rsp + 0x1670], xmm6
mov rax, qword [0x140162100]
xor rax, rsp
mov qword [rbp + 0x1560], rax
mov r14, rcx
mov qword [rsp + 0x20], rcx
xor r12d, r12d
call fcn.1400d414c
mov edx, eax
or dword [rbp + 0x1554], 0xffffffff
mov dword [rbp + 0x1d4], eax
lea ecx, [r12 + 1]
mov r8d, 0x270
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0x1d4], edx
inc rcx
cmp rcx, r8
jb 0x140011b6b
mov dword [rbp + 0x1d0], r8d
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0xd0]
call fcn.1401224d0
lea rcx, [rbp + 0xd0]
call fcn.140023a70
nop
mov edi, r12d
mov r15d, 0xf
mov r13d, 0x1000
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r12
mov r8d, 0x36
lea rdx, str.QUpzkZEVZORWhX7b2pZHTTl6oMnF71QVdxFbHNfqb1YL4Oy5dWH1Q
lea rcx, [rsp + 0x28]
call fcn.140007ba4
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x48]
call fcn.1400cb254
nop
cmp qword [rax + 0x18], r15
jbe 0x140011c02
mov rax, qword [rax]
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], r12
mov qword [rbp + 0xc8], r12
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r12b
jne 0x140011c1e
mov rdx, rax
lea rcx, [rbp + 0xb0]
call fcn.140007ba4
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, r15
jbe 0x140011c6f
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, r13
jb 0x140011c6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122d3
call fcn.1400f7be0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r15
mov byte [rsp + 0x48], r12b
lea rax, [rbp + 0x1d0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
call fcn.140036154
shr eax, 0x1c
lea rdx, [rbp + 0xb0]
mov rbx, qword [rbp + 0xb0]
mov rsi, qword [rbp + 0xc8]
cmp rsi, r15
cmova rdx, rbx
mov dl, byte [rax + rdx]
lea rcx, [rbp + 0xe0]
call fcn.1400281ac
nop
cmp rsi, r15
jbe 0x140011cf5
lea rdx, [rsi + 1]
mov rax, rbx
cmp rdx, r13
jb 0x140011ced
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122d9
mov rcx, rbx
call fcn.1400f7be0
inc edi
cmp edi, 0x20
jl 0x140011bc0
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0xe8]
call fcn.14000662c
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
mov rax, qword [rbp + 0xa0]
cmp rax, 0x14
jb 0x1400122cd
add rax, 0xffffffffffffffec
mov r8d, 0xc
cmp rax, r8
cmovb r8, rax
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], r15
cmova rdx, qword [rbp + 0x90]
add rdx, 0x14
lea rcx, [rbp - 0x70]
call fcn.140007ba4
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov rax, qword [rbp + 0xa0]
cmp rax, 0x10
jb 0x1400122df
add rax, 0xfffffffffffffff0
mov ebx, 4
mov r8d, ebx
cmp rax, rbx
cmovb r8, rax
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], r15
cmova rdx, qword [rbp + 0x90]
add rdx, 0x10
lea rcx, [rsp + 0x70]
call fcn.140007ba4
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xc0], xmm1
mov rax, qword [rbp + 0xa0]
cmp rax, 0xc
jb 0x1400122e5
add rax, 0xfffffffffffffff4
mov r8d, ebx
cmp rax, rbx
cmovb r8, rax
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], r15
cmova rdx, qword [rbp + 0x90]
add rdx, 0xc
lea rcx, [rbp + 0xb0]
call fcn.140007ba4
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov rax, qword [rbp + 0xa0]
lea edi, [rbx + 4]
cmp rax, rdi
jb 0x1400122eb
add rax, 0xfffffffffffffff8
cmp rax, rbx
cmovb rbx, rax
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], r15
cmova rdx, qword [rbp + 0x90]
add rdx, rdi
mov r8, rbx
lea rcx, [rsp + 0x28]
call fcn.140007ba4
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
cmp qword [rbp + 0xa0], rdi
cmovb rdi, qword [rbp + 0xa0]
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], r15
cmova rdx, qword [rbp + 0x90]
mov r8, rdi
lea rcx, [rsp + 0x48]
call fcn.140007ba4
nop
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x70]
call fcn.140027e00
nop
lea r8, [rsp + 0x28]
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.140027ff8
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.140027e00
nop
lea r8, [rbp + 0xb0]
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.140027ff8
nop
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.140027e00
nop
lea r8, [rsp + 0x70]
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140027ff8
nop
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.140027e00
nop
lea r8, [rbp - 0x70]
mov rdx, rax
mov rcx, r14
call fcn.140027ff8
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, r15
jbe 0x140011f6b
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x140011f66
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122f1
call fcn.1400f7be0
movdqa xmm6, xmmword [0x14014e390]
movdqu xmmword [rbp - 0x40], xmm6
mov byte [rbp - 0x50], r12b
mov rdx, qword [rbp - 0x18]
cmp rdx, r15
jbe 0x140011fb2
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x140011fad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122f7
call fcn.1400f7be0
movdqu xmmword [rbp - 0x20], xmm6
mov byte [rbp - 0x30], r12b
mov rdx, qword [rbp + 8]
cmp rdx, r15
jbe 0x140011ff1
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, r13
jb 0x140011fec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122fd
call fcn.1400f7be0
movdqu xmmword [rbp], xmm6
mov byte [rbp - 0x10], r12b
mov rdx, qword [rbp + 0x28]
cmp rdx, r15
jbe 0x140012030
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, r13
jb 0x14001202b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012303
call fcn.1400f7be0
movdqu xmmword [rbp + 0x20], xmm6
mov byte [rbp + 0x10], r12b
mov rdx, qword [rbp + 0x48]
cmp rdx, r15
jbe 0x14001206f
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x14001206a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012309
call fcn.1400f7be0
movdqu xmmword [rbp + 0x40], xmm6
mov byte [rbp + 0x30], r12b
mov rdx, qword [rbp + 0x68]
cmp rdx, r15
jbe 0x1400120ae
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x1400120a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001230f
call fcn.1400f7be0
movdqu xmmword [rbp + 0x60], xmm6
mov byte [rbp + 0x50], r12b
mov rdx, qword [rbp + 0x88]
cmp rdx, r15
jbe 0x1400120f0
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x1400120eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012315
call fcn.1400f7be0
movdqu xmmword [rbp + 0x80], xmm6
mov byte [rbp + 0x70], r12b
mov rdx, qword [rsp + 0x60]
cmp rdx, r15
jbe 0x140012135
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, r13
jb 0x14001212f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001231b
call fcn.1400f7be0
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, r15
jbe 0x14001216e
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, r13
jb 0x140012168
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012321
call fcn.1400f7be0
nop
mov rdx, qword [rbp + 0xc8]
cmp rdx, r15
jbe 0x1400121ab
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, r13
jb 0x1400121a5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012327
call fcn.1400f7be0
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, r15
jbe 0x1400121e3
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x1400121dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001232d
call fcn.1400f7be0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, r15
jbe 0x14001221a
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x140012214
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012333
call fcn.1400f7be0
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, r15
jbe 0x140012252
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, r13
jb 0x14001224d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400122c7
call fcn.1400f7be0
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xa8], r15
mov byte [rbp + 0x90], r12b
lea rcx, [rbp + 0x168]
call fcn.14002398c
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x168], rax
lea rcx, [rbp + 0x168]
call fcn.1400d2b9c
nop
mov rax, r14
mov rcx, qword [rbp + 0x1560]
xor rcx, rsp
call fcn.1400f7bc0
lea r11, [rsp + 0x1680]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140100bd8
nop
call fcn.1400075d8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.1400075d8
nop
call fcn.1400075d8
nop
call fcn.1400075d8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
nop
call fcn.140100bd8
int3