Function at 0x1400477b0
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x120]
sub rsp, 0x220
mov rax, qword [0x1400d61c0]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov r13, qword [rbp + 0x180]
mov r15, r9
mov dword [rsp + 0x20], 0
movzx r12d, r8b
mov eax, dword [0x1400dc784]
mov r14, rcx
mov qword [rsp + 0x38], rdx
test eax, eax
je 0x140047816
mov eax, dword [0x1400dc784]
test eax, eax
je 0x140047816
call fcn.140044c10
inc dword [rax + 0x38]
call fcn.14001e9c0
mov rdx, rax
lea r8, [r14 + 0x10]
lea rcx, [rbp - 0x60]
call fcn.14003e220
lea rcx, [r14 + 0x10]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
lea rcx, [rbp - 0x60]
call fcn.14003de10
xor ebx, ebx
test r13, r13
je 0x14004784b
mov eax, dword [r13 + 0x78]
jmp 0x140047851
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x278], rsi
cmp r12b, 0x45
jne 0x14004790c
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [r14 + 0x158]
call fcn.14004abb0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x38]
add rcx, qword [rax + 0x30]
mov rdx, qword [rax + 0x18]
xor eax, eax
test rdx, rdx
je 0x1400478a0
mov rdx, qword [rdx]
test rdx, rdx
je 0x1400478a0
mov rax, qword [rdx]
dec rcx
test rax, rax
je 0x1400478bd
mov rdx, qword [rax]
test rdx, rdx
je 0x1400478bd
mov r8, qword [rdx]
test r8, r8
je 0x1400478bd
mov r8, qword [r8]
jmp 0x1400478c0
xor r8d, r8d
mov rdx, qword [r8 + 0x10]
mov rax, rcx
mov rbx, qword [r15]
dec rdx
shr rax, 1
and ecx, 1
and rdx, rax
mov rax, qword [r8 + 8]
lea r8, [rsp + 0x20]
mov rax, qword [rax + rdx*8]
lea rdx, [rsp + 0x50]
sub rbx, qword [rax + rcx*8]
lea rcx, [r14 + 0x158]
call fcn.14004abb0
mov rax, qword [rsp + 0x50]
sub qword [rax + 0x38], 1
jne 0x14004790c
mov qword [rax + 0x30], 0
lea rcx, [r14 + 0x118]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x60]
call fcn.14004ace0
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0xb0]
add rdx, 0x18
mov qword [rbp + 0xc8], 0xf
or r9, 0xffffffffffffffff
mov qword [rbp + 0xc0], 0
xor r8d, r8d
mov byte [rbp + 0xb0], 0
call fcn.140003580
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x28]
lea rcx, [r14 + 0x198]
call fcn.140049460
mov rax, qword [r14 + 0x1a0]
cmp qword [rsp + 0x28], rax
jne 0x1400479c2
mov rsi, qword [r14 + 0x1a8]
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x70]
lea rcx, [r14 + 0x198]
call fcn.14004aa80
movabs rax, 0xaaaaaaaaaaaaaaab
mul rsi
shr rdx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub esi, eax
mov rax, qword [rsp + 0x70]
inc esi
mov dword [rax + 0x30], esi
lea rax, [0x1400c2fd8]
mov dword [rbp + 0x44], 0x78
mov qword [rbp - 0x40], rax
lea rdx, [rbp - 0x38]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
xor r8d, r8d
lea rcx, [rbp + 0x48]
mov qword [rbp + 0x48], rax
call fcn.140027480
mov rax, qword [rbp - 0x40]
lea rcx, [rbp - 0x38]
movsxd rdx, dword [rax + 4]
lea rax, [0x1400c8900]
mov qword [rbp + rdx - 0x40], rax
mov rax, qword [rbp - 0x40]
movsxd rdx, dword [rax + 4]
lea r8d, [rdx - 0x88]
mov dword [rbp + rdx - 0x44], r8d
mov edx, 2
call fcn.1400272e0
lea r8, [rbp + 0xb0]
lea rdx, [rbp - 0x80]
lea rcx, [r14 + 0x198]
call fcn.14004aa80
mov rax, qword [rbp - 0x80]
lea r8, [rbp + 0xb0]
cmp qword [rbp + 0xc8], 0x10
lea rdx, str._s:_e_0_3_dm
lea rcx, [rbp + 0xd0]
cmovae r8, qword [rbp + 0xb0]
mov r9d, dword [rax + 0x30]
call fcn.14002c100
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.140011ba0
mov rax, qword [rbp + 0xe8]
cmp rax, 0x10
jb 0x140047ace
mov rcx, qword [rbp + 0xd0]
inc rax
cmp rax, 0x1000
jb 0x140047ac9
test cl, 0x1f
jne 0x140047d88
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140047d8e
sub rcx, rax
cmp rcx, 8
jb 0x140047d94
cmp rcx, 0x27
ja 0x140047d9a
mov rcx, rax
call fcn.140080c40
mov r8d, dword [rsp + 0x20]
movabs rcx, 0x100000001b3
mov r9, qword [r14 + 0x170]
movabs rax, 0xcbf29ce484222325
movzx edx, r8b
xor esi, esi
xor rdx, rax
movzx eax, byte [rsp + 0x21]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [rsp + 0x22]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [rsp + 0x23]
imul rdx, rcx
xor rdx, rax
imul rdx, rcx
mov rcx, qword [r14 + 0x188]
and rcx, rdx
mov rdx, qword [r14 + 0x160]
mov rax, rcx
add rax, rax
lea r11, [rcx + rcx]
mov r10, qword [r9 + r11*8]
mov rax, qword [r9 + rax*8]
cmp r10, rdx
jne 0x140047b4c
mov rcx, rdx
jmp 0x140047b54
mov rcx, qword [r9 + r11*8 + 8]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x140047b6a
cmp r8d, dword [rax + 0x10]
je 0x140047b64
mov rax, qword [rax]
jmp 0x140047b42
cmovne rax, rdx
jmp 0x140047b6d
mov rax, rdx
cmp rax, rdx
je 0x140047b76
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x140047b96
nop dword [rax + rax]
lea rdx, [0x1400c3a64]
lea rcx, [rbp - 0x40]
call fcn.14000f5a0
sub rsi, 1
jne 0x140047b80
test r13, r13
je 0x140047ba7
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.1400609b0
cmp r12b, 0x45
jne 0x140047c52
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
jne 0x140047bca
movsd xmm2, qword [0x1400c7188]
jmp 0x140047bda
xorps xmm2, xmm2
cvtsi2sd xmm2, rbx
divsd xmm2, qword [0x1400c7150]
movq r8, xmm2
lea rdx, str.___.3f_ms_
lea rcx, [rbp + 0xf0]
call fcn.14002c100
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.140011ba0
mov rax, qword [rbp + 0x108]
cmp rax, 0x10
jb 0x140047c52
mov rcx, qword [rbp + 0xf0]
inc rax
cmp rax, 0x1000
jb 0x140047c4d
test cl, 0x1f
jne 0x140047da0
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140047da6
sub rcx, rax
cmp rcx, 8
jb 0x140047dac
cmp rcx, 0x27
ja 0x140047db2
mov rcx, rax
call fcn.140080c40
lea rdx, str.e_0_m
lea rcx, [rbp - 0x40]
call fcn.14000f5a0
cmp r12b, 0x42
jne 0x140047c8d
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x70]
lea rcx, [r14 + 0x158]
call fcn.14004abb0
mov rcx, qword [rbp - 0x70]
mov rdx, r15
add rcx, 0x18
call fcn.1400495d0
mov rbx, qword [rsp + 0x38]
lea rcx, [rbp - 0x38]
mov rdx, rbx
call fcn.140027150
lea rcx, [rbp + 0x48]
call fcn.1400261d0
lea rax, vtable.std::ios_base.0
lea rcx, [rbp + 0x48]
mov qword [rbp + 0x48], rax
call fcn.14008009c
mov rax, qword [rbp + 0xc8]
cmp rax, 0x10
jb 0x140047d0f
mov rcx, qword [rbp + 0xb0]
inc rax
cmp rax, 0x1000
jb 0x140047d0a
test cl, 0x1f
jne 0x140047db8
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140047dbe
sub rcx, rax
cmp rcx, 8
jb 0x140047dc4
cmp rcx, 0x27
ja 0x140047dca
mov rcx, rax
call fcn.140080c40
lea rcx, [r14 + 0x10]
mov qword [rbp + 0xc8], 0xf
mov qword [rbp + 0xc0], 0
mov byte [rbp + 0xb0], 0
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [0x1400dc784]
test eax, eax
je 0x140047d5b
mov ecx, dword [0x1400dc784]
test ecx, ecx
je 0x140047d5b
call fcn.140044c10
mov ecx, dword [rax + 0x38]
test ecx, ecx
je 0x140047d5b
dec ecx
mov dword [rax + 0x38], ecx
mov rax, rbx
mov rsi, qword [rsp + 0x278]
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.1400812a0
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3