Function at 0x7ff7a61538e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Hash data using fnv

Disassembly:
push rdi
mov eax, 0x1400
call fcn.7ff7a6331500
sub rsp, rax
mov rax, qword [0x7ff7a673fab8]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
mov edi, ecx
test ecx, ecx
jne 0x7ff7a615390e
xor eax, eax
jmp 0x7ff7a6153be4
mov qword [rsp + 0x1418], rbx
mov qword [rsp + 0x1420], rbp
mov qword [rsp + 0x13f8], r12
mov qword [rsp + 0x13e0], r15
call qword [sym.imp.msvcp140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.msvcp140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x7ff7a615394c
imul rax, rax, 0x64
jmp 0x7ff7a615396a
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov r12d, 1
mov dword [rsp + 0x13c4], 0xffffffff
mov edx, r12d
mov dword [rsp + 0x44], eax
mov rcx, rax
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rsp + rdx*4 + 0x44], ecx
inc rdx
cmp rdx, 0x270
jb 0x7ff7a6153990
mov rcx, rdi
mov dword [rsp + 0x40], 0x270
mov rbp, rdi
call qword [sym.imp.ucrtbase.dll_malloc]
mov r15, rax
test rax, rax
je 0x7ff7a6153c19
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x1428], rsi
mov qword [rsp + 0x13f0], r13
mov qword [rsp + 0x13e8], r14
xor r14d, r14d
lea r13d, [r14 + 0xa]
mov rdi, rbp
lea rcx, [rsp + 0x40]
sub rdi, r14
movabs rsi, 0x100000001b3
call fcn.7ff7a61639e0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 5
ja 0x7ff7a6153a38
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.7ff7a61639e0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x7ff7a6153a20
shr rax, 0x20
cmp rdi, 7
jb 0x7ff7a6153a5a
cmp ax, 7
jb 0x7ff7a6153a4c
xor ebx, ebx
jmp 0x7ff7a6153ab9
mov ebx, 3
cmp ax, bx
cmovae ebx, r12d
jmp 0x7ff7a6153ab9
cmp rdi, 3
jb 0x7ff7a6153b70
cmp ax, 6
jb 0x7ff7a6153a71
mov ebx, 2
jmp 0x7ff7a6153ab9
cmp ax, 5
jne 0x7ff7a6153a7e
mov ebx, 5
jmp 0x7ff7a6153ab9
cmp ax, 4
jne 0x7ff7a6153a8b
mov ebx, 6
jmp 0x7ff7a6153ab9
cmp ax, 3
jne 0x7ff7a6153a98
mov ebx, 7
jmp 0x7ff7a6153ab9
cmp ax, 2
jne 0x7ff7a6153aa5
mov ebx, 8
jmp 0x7ff7a6153ab9
cmp ax, r12w
jne 0x7ff7a6153ab2
mov ebx, 9
jmp 0x7ff7a6153ab9
test ax, ax
cmove ebx, r13d
mov dword [rsp + 0x38], ebx
movabs rax, 0xcbf29ce484222325
movzx ecx, bl
xor rcx, rax
movzx eax, byte [rsp + 0x39]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x3a]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x3b]
imul rcx, rsi
xor rcx, rax
mov rax, qword [0x7ff7a67440d8]
imul rcx, rsi
and rcx, qword [0x7ff7a67440f0]
add rcx, rcx
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, qword [0x7ff7a67440c8]
je 0x7ff7a6153b62
mov rax, qword [rax + rcx*8]
cmp ebx, dword [rdi + 0x10]
je 0x7ff7a6153b2e
nop dword [rax]
cmp rdi, rax
je 0x7ff7a6153b62
mov rdi, qword [rdi + 8]
cmp ebx, dword [rdi + 0x10]
jne 0x7ff7a6153b20
movsx rdi, byte [rdi + 0x14]
mov ecx, ebx
call fcn.7ff7a6153170
lea rcx, [r14 + r15]
mov r8, rdi
mov rdx, rax
mov rsi, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rsi
call qword [sym.imp.ucrtbase.dll_free]
add r14, rdi
cmp r14, rbp
jae 0x7ff7a6153ba9
jmp 0x7ff7a61539f2
lea rcx, [0x7ff7a658fc48]
call qword [sym.imp.msvcp140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_malloc]
mov rbx, rax
test rax, rax
je 0x7ff7a6153bfd
mov r8, rdi
mov edx, 0x90
mov rcx, rax
call fcn.7ff7a6331946
lea rcx, [r14 + r15]
mov r8, rdi
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
call qword [sym.imp.ucrtbase.dll_free]
mov r14, qword [rsp + 0x13e8]
mov rax, r15
mov r15, qword [rsp + 0x13e0]
mov r13, qword [rsp + 0x13f0]
mov rsi, qword [rsp + 0x1428]
mov r12, qword [rsp + 0x13f8]
mov rbp, qword [rsp + 0x1420]
mov rbx, qword [rsp + 0x1418]
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.7ff7a6330880
add rsp, 0x1400
pop rdi
ret
lea rcx, [rsp + 0x20]
call fcn.7ff7a6151570
lea rdx, [0x7ff7a65afc08]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x20]
call fcn.7ff7a6151570
lea rdx, [0x7ff7a65afc08]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3