Function at 0x1400012b0
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 r14
push r15
sub rsp, 0x40
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x30], rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov ebx, 4
mov rax, qword gs:[0x58]
add rbx, qword [rax]
mov eax, dword [rbx]
cmp dword [0x14000dd18], eax
jle 0x1400013b0
lea rcx, [0x14000dd18]
call fcn.1400063b8
cmp dword [0x14000dd18], 0xffffffff
jne 0x1400013b0
xorps xmm0, xmm0
movups xmmword [0x14000c948], xmm0
mov qword [0x14000c958], r14
mov qword [0x14000c960], r14
lea ecx, [r14 + 0x40]
call fcn.140006430
mov rdx, rax
mov qword [0x14000c948], rax
mov qword [0x14000c958], 0x3e
mov qword [0x14000c960], 0x3f
movups xmm0, xmmword [str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400085f8]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140008608]
movups xmmword [rax + 0x20], xmm0
movsd xmm0, qword [0x140008618]
movsd qword [rax + 0x30], xmm0
mov eax, dword [0x140008620]
mov dword [rdx + 0x38], eax
movzx eax, word [0x140008624]
mov word [rdx + 0x3c], ax
mov byte [rdx + 0x3e], r14b
lea rcx, [0x140007600]
call fcn.140006840
nop
lea rcx, [0x14000dd18]
call fcn.14000634c
lea rbp, [0x14000c970]
mov eax, dword [rbx]
cmp dword [0x14000dcf8], eax
jle 0x140001437
lea rcx, [0x14000dcf8]
call fcn.1400063b8
cmp dword [0x14000dcf8], 0xffffffff
jne 0x140001437
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rdx, rax
mov dword [0x14000dcf4], 0xffffffff
mov dword [0x14000c974], eax
mov r8d, 1
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
mov dword [rbp + r8*4 + 4], edx
inc r8
cmp r8, 0x270
jb 0x140001400
mov dword [0x14000c970], 0x270
lea rcx, [0x14000dcf8]
call fcn.14000634c
mov eax, dword [rbx]
cmp dword [0x14000dd1c], eax
jle 0x14000147a
lea rcx, [0x14000dd1c]
call fcn.1400063b8
cmp dword [0x14000dd1c], 0xffffffff
jne 0x14000147a
mov rax, qword [0x14000c958]
dec rax
mov qword [0x14000dd00], r14
mov qword [0x14000dd08], rax
lea rcx, [0x14000dd1c]
call fcn.14000634c
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov dword [rsp + 0x20], 1
test rsi, rsi
je 0x14000184d
lea r15, [0x14000c978]
lea r12, [0x14000c948]
nop
mov qword [rsp + 0x28], rbp
mov rbx, qword [0x14000dd00]
mov rdx, qword [0x14000dd08]
sub rdx, rbx
cmp rdx, 0xffffffffffffffff
jne 0x1400017e3
mov edx, dword [0x14000c970]
cmp edx, 0x270
jne 0x140001537
mov rax, r15
mov r9d, edx
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
btr r8d, 0x1f
xor r8d, dword [rax - 4]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
and edx, 0x9908b0df
xor edx, dword [rax + 0x630]
shr r8d, 1
xor edx, r8d
mov dword [rax + 0x9bc], edx
lea rax, [rax + 4]
sub r9, 1
jne 0x1400014f0
mov edx, dword [0x14000c970]
jmp 0x14000161e
cmp edx, 0x4e0
jb 0x14000161e
mov r8d, 0x9c4
nop dword [rax]
mov edx, dword [r8 + rbp]
xor edx, dword [r8 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r8 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + rbp + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r8 + rbp - 0x9c0], ecx
add r8, 4
cmp r8, 0xd50
jb 0x140001550
mov r8d, 0xd50
nop word [rax + rax]
mov edx, dword [r8 + rbp]
xor edx, dword [r8 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r8 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + rbp - 0xd4c]
shr edx, 1
xor ecx, edx
mov dword [r8 + rbp - 0x9c0], ecx
add r8, 4
cmp r8, 0x1380
jb 0x1400015a0
mov edx, dword [0x14000dcf0]
xor edx, dword [0x14000c974]
btr edx, 0x1f
xor edx, dword [0x14000dcf0]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [0x14000cfa4]
mov dword [0x14000d330], ecx
mov dword [0x14000c970], r14d
mov edx, r14d
mov eax, edx
mov ecx, dword [rbp + rax*4 + 4]
inc edx
mov dword [0x14000c970], edx
mov eax, ecx
shr eax, 0xb
and eax, dword [0x14000dcf4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor rcx, rax
mov r10, rcx
shr r10, 0x12
xor r10, rcx
shl r10, 0x20
cmp edx, 0x270
jne 0x1400016b4
mov r8, r15
mov r9d, edx
nop
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 0x140001670
mov edx, dword [0x14000c970]
jmp 0x14000179e
cmp edx, 0x4e0
jb 0x14000179e
mov r8d, 0x9c4
nop word [rax + rax]
mov edx, dword [r8 + rbp]
xor edx, dword [r8 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r8 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + rbp + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r8 + rbp - 0x9c0], ecx
add r8, 4
cmp r8, 0xd50
jb 0x1400016d0
mov r8d, 0xd50
nop word [rax + rax]
mov edx, dword [r8 + rbp]
xor edx, dword [r8 + rbp + 4]
btr edx, 0x1f
xor edx, dword [r8 + rbp]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + rbp - 0xd4c]
shr edx, 1
xor ecx, edx
mov dword [r8 + rbp - 0x9c0], ecx
add r8, 4
cmp r8, 0x1380
jb 0x140001720
mov edx, dword [0x14000dcf0]
xor edx, dword [0x14000c974]
btr edx, 0x1f
xor edx, dword [0x14000dcf0]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [0x14000cfa4]
mov dword [0x14000d330], ecx
mov dword [0x14000c970], r14d
mov edx, r14d
mov eax, edx
mov ecx, dword [rbp + rax*4 + 4]
lea eax, [rdx + 1]
mov dword [0x14000c970], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x14000dcf4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
or r10, rax
jmp 0x1400017f3
inc rdx
lea rcx, [rsp + 0x28]
call fcn.140005f50
mov r10, rax
mov rcx, r12
cmp qword [0x14000c960], 0xf
cmova rcx, qword [0x14000c948]
lea rax, [r10 + rbx]
movzx r9d, byte [rax + rcx]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
jae 0x14000183b
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rdx, 0xf
jbe 0x140001830
mov rax, qword [rdi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140001843
mov rcx, rdi
call fcn.1400053c0
sub rsi, 1
jne 0x1400014b0
mov rax, rdi
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret