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

Disassembly:
push rbx
mov eax, 0x1410
call fcn.140230e30
sub rsp, rax
mov rax, qword [0x140700d00]
xor rax, rsp
mov qword [rsp + 0x13e0], rax
mov ebx, ecx
test ecx, ecx
jne 0x140035c1e
xor eax, eax
jmp 0x140035ebf
mov qword [rsp + 0x1428], rbp
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x1408], r12
mov qword [rsp + 0x13f0], r15
call fcn.140036410
mov r12d, 1
mov edx, r12d
mov rcx, qword [rax]
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x13d4], 0xffffffff
nop dword [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rsp + rdx*4 + 0x54], ecx
inc rdx
cmp rdx, 0x270
jb 0x140035c60
mov rcx, rbx
mov dword [rsp + 0x50], 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 0x140035ef4
mov ebx, dword [rsp + 0x40]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x1430], rsi
mov qword [rsp + 0x1438], rdi
mov qword [rsp + 0x1400], r13
mov qword [rsp + 0x13f8], r14
xor r14d, r14d
mov qword [rsp + 0x20], rax
lea r13d, [r14 + 0xa]
mov rdi, rbp
lea rcx, [rsp + 0x20]
sub rdi, r14
movabs rsi, 0x100000001b3
call fcn.140031ce0
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 5
ja 0x140035d18
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.140031ce0
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x140035d00
shr rcx, 0x20
cmp rdi, 7
jb 0x140035d3a
cmp cx, 7
jb 0x140035d2c
xor ebx, ebx
jmp 0x140035d99
mov ebx, 3
cmp cx, bx
cmovae ebx, r12d
jmp 0x140035d99
cmp rdi, 3
jb 0x140035e47
cmp cx, 6
jb 0x140035d51
mov ebx, 2
jmp 0x140035d99
cmp cx, 5
jne 0x140035d5e
mov ebx, 5
jmp 0x140035d99
cmp cx, 4
jne 0x140035d6b
mov ebx, 6
jmp 0x140035d99
cmp cx, 3
jne 0x140035d78
mov ebx, 7
jmp 0x140035d99
cmp cx, 2
jne 0x140035d85
mov ebx, 8
jmp 0x140035d99
cmp cx, r12w
jne 0x140035d92
mov ebx, 9
jmp 0x140035d99
test cx, cx
cmove ebx, r13d
mov dword [rsp + 0x40], ebx
movabs rax, 0xcbf29ce484222325
movzx ecx, bl
xor rcx, rax
movzx eax, byte [rsp + 0x41]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x42]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x43]
imul rcx, rsi
xor rcx, rax
mov rax, qword [0x140709a18]
imul rcx, rsi
and rcx, qword [0x140709a30]
add rcx, rcx
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, qword [0x140709a08]
je 0x140035f10
mov rax, qword [rax + rcx*8]
cmp ebx, dword [rdi + 0x10]
je 0x140035e13
cmp rdi, rax
je 0x140035f10
mov rdi, qword [rdi + 8]
cmp ebx, dword [rdi + 0x10]
jne 0x140035e01
movsx rdi, byte [rdi + 0x14]
mov ecx, ebx
call fcn.140035f20
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 0x140035e84
jmp 0x140035cd4
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x140035ed8
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 + 0x13f8]
mov rax, r15
mov r15, qword [rsp + 0x13f0]
mov r13, qword [rsp + 0x1400]
mov rdi, qword [rsp + 0x1438]
mov rsi, qword [rsp + 0x1430]
mov r12, qword [rsp + 0x1408]
mov rbp, qword [rsp + 0x1428]
mov rcx, qword [rsp + 0x13e0]
xor rcx, rsp
call fcn.140230920
add rsp, 0x1410
pop rbx
ret
lea rcx, [rsp + 0x28]
call fcn.14001dab0
lea rdx, [0x140521848]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x28]
call fcn.14001dab0
lea rdx, [0x140521848]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_
int3