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

Disassembly:
push rbx
mov eax, 0x1400
call fcn.1402aa5b0
sub rsp, rax
mov rax, qword [0x140554040]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
mov ebx, ecx
test ecx, ecx
jne 0x140004e4e
xor eax, eax
jmp 0x1400050e4
mov qword [rsp + 0x1418], rbp
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x13f8], r12
mov qword [rsp + 0x13e0], r15
call fcn.1400020f0
mov r12d, 1
mov dword [rsp + 0x13c4], 0xffffffff
mov ecx, r12d
mov edx, dword [rax]
mov dword [rsp + 0x44], edx
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x44], edx
inc rcx
cmp rcx, 0x270
jb 0x140004e90
mov rcx, rbx
mov dword [rsp + 0x40], 0x270
mov rbp, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x140005119
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x1420], rsi
mov qword [rsp + 0x1428], rdi
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.1400280f0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 5
ja 0x140004f3a
lea rcx, [rsp + 0x40]
call fcn.1400280f0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x140004f22
shr rax, 0x20
cmp rdi, 7
jb 0x140004f5c
cmp ax, 7
jb 0x140004f4e
xor ebx, ebx
jmp 0x140004fbb
mov ebx, 3
cmp ax, bx
cmovae ebx, r12d
jmp 0x140004fbb
cmp rdi, 3
jb 0x140005070
cmp ax, 6
jb 0x140004f73
mov ebx, 2
jmp 0x140004fbb
cmp ax, 5
jne 0x140004f80
mov ebx, 5
jmp 0x140004fbb
cmp ax, 4
jne 0x140004f8d
mov ebx, 6
jmp 0x140004fbb
cmp ax, 3
jne 0x140004f9a
mov ebx, 7
jmp 0x140004fbb
cmp ax, 2
jne 0x140004fa7
mov ebx, 8
jmp 0x140004fbb
cmp ax, r12w
jne 0x140004fb4
mov ebx, 9
jmp 0x140004fbb
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 [0x140707078]
imul rcx, rsi
and rcx, qword [0x140707090]
add rcx, rcx
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, qword [0x140707068]
je 0x140005062
mov rax, qword [rax + rcx*8]
cmp ebx, dword [rdi + 0x10]
je 0x14000502e
nop
cmp rdi, rax
je 0x140005062
mov rdi, qword [rdi + 8]
cmp ebx, dword [rdi + 0x10]
jne 0x140005020
movsx rdi, byte [rdi + 0x14]
mov ecx, ebx
call fcn.140004a50
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.api_ms_win_crt_heap_l1_1_0.dll_free]
add r14, rdi
cmp r14, rbp
jae 0x1400050a9
jmp 0x140004efa
lea rcx, str.invalid_unordered_map_K__T__key
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x1400050fd
mov r8, rdi
mov edx, 0x90
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rcx, [r14 + r15]
mov r8, rdi
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r14, qword [rsp + 0x13e8]
mov rax, r15
mov r15, qword [rsp + 0x13e0]
mov r13, qword [rsp + 0x13f0]
mov rdi, qword [rsp + 0x1428]
mov rsi, qword [rsp + 0x1420]
mov r12, qword [rsp + 0x13f8]
mov rbp, qword [rsp + 0x1418]
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.1400e9c90
add rsp, 0x1400
pop rbx
ret
lea rcx, [rsp + 0x20]
call fcn.1400021d0
lea rdx, [0x14054ff78]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x20]
call fcn.1400021d0
lea rdx, [0x14054ff78]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3