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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
mov rax, qword [0x14012de80]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
mov ecx, dword [0x1401311d0]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
lea rbp, [0x14012f4a0]
mov eax, dword [rdx + rax]
cmp dword [0x140130830], eax
jg 0x1400080ac
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
mov r8d, 0x10
lea rdx, str.0123456789ACBDEF
lea rcx, [rsp + 0x30]
call fcn.140001830
nop
mov r8b, 0x20
mov edx, 0xf
mov rcx, rbx
call fcn.140003540
xor r10d, r10d
lea r12, [0x14012f4b0]
movabs r14, 0xb5026f5aa96619e9
movabs r13, 0x38eb3ffff6d3
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
nop word [rax + rax]
mov ecx, dword [0x14012f4a0]
cmp ecx, 0x138
jne 0x140007ed9
mov rax, r12
mov r9d, ecx
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rax]
xor r8, qword [rax - 8]
and r8, 0xffffffff80000000
xor r8, qword [rax]
movzx ecx, r8b
and cl, 1
neg cl
sbb rdx, rdx
and rdx, r14
xor rdx, qword [rax + 0x4d8]
shr r8, 1
xor rdx, r8
mov qword [rax + 0x9b8], rdx
lea rax, [rax + 8]
sub r9, 1
jne 0x140007e90
mov ecx, dword [0x14012f4a0]
jmp 0x140007fcf
cmp ecx, 0x270
jb 0x140007fcf
xor r8d, r8d
nop dword [rax + rax]
mov rax, qword [r8 + rbp + 0x9d0]
mov rdx, rax
xor rdx, qword [r8 + rbp + 0x9c8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r14
xor rcx, qword [r8 + rbp + 0xea8]
shr rdx, 1
xor rcx, rdx
mov qword [r8 + rbp + 8], rcx
add r8, 8
cmp r8, 0x4e0
jb 0x140007ef0
mov r8d, 0x4e0
mov rax, qword [r8 + rbp + 0x9d0]
mov rdx, rax
xor rdx, qword [r8 + rbp + 0x9c8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r14
xor rcx, qword [r8 + rbp - 0x4d8]
shr rdx, 1
xor rcx, rdx
mov qword [r8 + rbp + 8], rcx
add r8, 8
cmp r8, 0x9b8
jb 0x140007f40
mov rdx, qword [0x140130820]
and rdx, 0xffffffff80000000
mov rax, qword [0x14012f4a8]
btr eax, 0x1f
or rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r14
shr rdx, 1
xor rcx, rdx
xor rcx, qword [0x14012f980]
mov qword [0x14012fe60], rcx
xor ecx, ecx
mov dword [0x14012f4a0], ecx
mov eax, ecx
mov r8, qword [rbp + rax*8 + 8]
inc ecx
mov dword [0x14012f4a0], ecx
mov rax, r8
shr rax, 0x1d
and rax, qword [0x140130828]
xor r8, rax
mov rax, r8
and rax, r13
shl rax, 0x11
xor r8, rax
mov rax, r8
and rax, 0xffffffffffffbf77
shl rax, 0x25
xor r8, rax
mov rax, r8
shr rax, 0x2b
xor rax, r8
lea rcx, [rsp + 0x30]
cmp rdi, 0xf
cmova rcx, r11
xor edx, edx
div rsi
movzx ecx, byte [rdx + rcx]
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140008039
mov rax, qword [rbx]
mov byte [rax + r10], cl
inc r10
cmp r10, 0xf
jl 0x140007e70
cmp rdi, 0xf
jbe 0x14000807d
lea rdx, [rdi + 1]
mov rax, r11
cmp rdx, 0x1000
jb 0x140008075
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400080a6
mov rcx, r11
call fcn.140010148
mov rax, rbx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140010500
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
call fcn.140016dfc
int3
lea rcx, [0x140130830]
call fcn.140010068
cmp dword [0x140130830], 0xffffffff
jne 0x140007dfb
call fcn.14000e1d8
mov ecx, eax
movabs rax, 0x5555555555555555
mov qword [0x140130828], rax
mov qword [0x14012f4a8], rcx
mov edx, 1
movabs r8, 0x5851f42d4c957f2d
nop dword [rax]
nop word [rax + rax]
mov rax, rcx
shr rax, 0x3e
xor rcx, rax
imul rcx, r8
add rcx, rdx
mov qword [rbp + rdx*8 + 8], rcx
inc rdx
cmp rdx, 0x138
jb 0x140008100
mov dword [0x14012f4a0], 0x138
lea rcx, [0x140130830]
call fcn.14000fffc
jmp 0x140007dfb