Function at 0x140040b80
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov r9, r8
mov r12, rdx
mov r15, rcx
mov r10, qword [r8 + 0x10]
mov rdx, r8
mov rdi, qword [r8 + 0x18]
cmp rdi, 7
jbe 0x140040bac
mov rdx, qword [r8]
movabs r14, 0xcbf29ce484222325
lea r8, [r10 + r10]
xor ecx, ecx
test r8, r8
je 0x140040be3
movabs r11, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r14, rax
imul r14, r11
inc rcx
cmp rcx, r8
jb 0x140040bd0
mov rax, qword [r15 + 0x30]
and rax, r14
add rax, rax
mov rcx, qword [r15 + 0x18]
mov rbx, qword [rcx + rax*8 + 8]
mov rsi, qword [r15 + 8]
cmp rbx, rsi
jne 0x140040c07
mov rbx, rsi
mov rdi, rsi
jmp 0x140040c74
mov r11, qword [rcx + rax*8]
nop dword [rax + rax]
lea rcx, [rbx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 7
jbe 0x140040c22
mov rcx, qword [rcx]
mov r8, r9
cmp rdi, 7
jbe 0x140040c2e
mov r8, qword [r9]
cmp r10, rax
jne 0x140040c63
mov rdx, r10
test r10, r10
je 0x140040c54
sub r8, rcx
nop
movzx eax, word [rcx + r8]
cmp ax, word [rcx]
jne 0x140040c63
add rcx, 2
sub rdx, 1
jne 0x140040c40
mov qword [r12], rbx
mov byte [r12 + 8], 0
jmp 0x140040e54
cmp rbx, r11
je 0x140040c6e
mov rbx, qword [rbx + 8]
jmp 0x140040c10
mov rsi, rbx
mov rdi, rbx
movabs rax, 0x38e38e38e38e38e
cmp qword [r15 + 0x10], rax
je 0x140040e66
mov qword [rsp + 0x30], r9
lea rdx, [r15 + 8]
lea r9, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.140041600
nop
mov rcx, qword [r15 + 0x10]
add rcx, 1
xorps xmm0, xmm0
js 0x140040cb5
cvtsi2ss xmm0, rcx
jmp 0x140040cca
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [r15 + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x140040cdd
cvtsi2ss xmm1, rcx
jmp 0x140040cf2
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [r15]
seta al
test al, al
je 0x140040dca
mov rcx, r15
call fcn.140032e30
mov r11, qword [rsp + 0x48]
mov rax, qword [r15 + 0x30]
and rax, r14
add rax, rax
mov rcx, qword [r15 + 0x18]
mov r9, qword [rcx + rax*8 + 8]
mov rbx, qword [r15 + 8]
cmp r9, rbx
jne 0x140040d38
mov qword [rsp + 0x30], rbx
jmp 0x140040db7
mov rsi, qword [rcx + rax*8]
mov rbp, qword [r11 + 0x28]
mov r10, qword [r11 + 0x20]
nop dword [rax]
nop dword [rax + rax]
mov rbx, r9
lea rcx, [r9 + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 7
jbe 0x140040d65
mov rcx, qword [rcx]
lea r8, [r11 + 0x10]
cmp rbp, 7
jbe 0x140040d73
mov r8, qword [r11 + 0x10]
cmp r10, rax
jne 0x140040da7
mov rdx, r10
test r10, r10
je 0x140040d97
sub r8, rcx
movzx eax, word [rcx + r8]
cmp ax, word [rcx]
jne 0x140040da7
add rcx, 2
sub rdx, 1
jne 0x140040d83
mov rbx, qword [r9]
mov qword [rsp + 0x30], rbx
mov rdi, rbx
mov rsi, rbx
jmp 0x140040dcf
cmp r9, rsi
je 0x140040db2
mov r9, qword [r9 + 8]
jmp 0x140040d50
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], 0
mov rdi, rbx
mov rsi, qword [rsp + 0x30]
jmp 0x140040dcf
mov r11, qword [rsp + 0x48]
mov qword [rsp + 0x48], 0
mov rdx, qword [rbx + 8]
inc qword [r15 + 0x10]
mov qword [r11], rsi
mov qword [r11 + 8], rdx
mov qword [rdx], r11
mov qword [rbx + 8], r11
mov rcx, qword [r15 + 0x18]
mov rax, qword [r15 + 0x30]
and rax, r14
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [r15 + 8]
jne 0x140040e0c
mov qword [rcx + rax*8], r11
jmp 0x140040e1e
cmp r8, rdi
jne 0x140040e17
mov qword [rcx + rax*8], r11
jmp 0x140040e23
cmp qword [rcx + rax*8 + 8], rdx
jne 0x140040e23
mov qword [rcx + rax*8 + 8], r11
mov qword [r12], r11
mov byte [r12 + 8], 1
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140040e54
add rcx, 0x10
call fcn.1400332f0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140040e54
mov edx, 0x48
call fcn.14006c690
mov rax, r12
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rcx, str.unordered_map_set_too_long
call fcn.14006aaac
int3