Function at 0x545e20
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x54c800
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
mov esi, dword [ecx + 0x18]
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [edi + 2]
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [edi + 3]
xor edx, eax
imul eax, edx, 0x1000193
mov edx, dword [ecx + 0xc]
and esi, eax
mov ebx, dword [edx + esi*8 + 4]
cmp ebx, dword [ecx + 4]
je 0x545ec7
mov ecx, eax
mov eax, dword [edi]
cmp eax, dword [ebx + 8]
je 0x545ec0
add esi, esi
mov esi, dword [edx + esi*4]
nop word cs:[eax + eax]
nop
cmp ebx, esi
je 0x545ed0
mov ebx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jne 0x545eb0
test ebx, ebx
je 0x545ece
xor ecx, ecx
jmp 0x546064
mov dword [ebp - 0x20], eax
mov esi, ebx
jmp 0x545ed3
mov esi, dword [ebx]
mov dword [ebp - 0x20], ecx
mov edi, dword [ebp - 0x28]
cmp dword [edi + 8], 0xaaaaaaa
mov dword [ebp - 0x10], 0xffffffff
je 0x546080
push 0x18
call fcn.005d0220
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 0xc]
movsd xmm2, qword [0x6592b0]
mov eax, dword [eax]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov eax, dword [edi + 8]
movss xmm3, dword [edi + 0x1c]
movss xmm0, dword [edi]
inc eax
orpd xmm3, xmm2
movd xmm1, eax
subsd xmm3, xmm2
por xmm1, xmm2
subsd xmm1, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
cvtsd2ss xmm1, xmm1
movaps xmm3, xmm1
divss xmm3, xmm2
ucomiss xmm3, xmm0
jbe 0x546017
divss xmm1, xmm0
mov esi, dword [edi + 0x1c]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call fcn.006280b0
add esp, 8
fstp dword [ebp - 0x30]
movss xmm1, dword [0x6592b8]
movss xmm0, dword [ebp - 0x30]
mov dword [ebp - 0x24], ebx
movaps xmm2, xmm0
cvttss2si ecx, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
xor eax, 0x80000000
ucomiss xmm0, xmm1
cmovae ecx, eax
mov eax, 8
cmp ecx, 8
cmova eax, ecx
cmp esi, eax
jae 0x545fc2
cmp esi, 0x1ff
ja 0x545fc0
shl esi, 3
cmp esi, eax
jae 0x545fc2
mov esi, eax
mov dword [ebp - 0x10], 0
mov ecx, edi
push esi
call 0x5460e0
mov edi, dword [ebp - 0x28]
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0xc]
and ecx, dword [ebp - 0x20]
mov esi, dword [edx + ecx*8 + 4]
cmp esi, dword [edi + 4]
je 0x546010
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 8]
je 0x54600c
add ecx, ecx
mov ecx, dword [edx + ecx*4]
nop word cs:[eax + eax]
cmp esi, ecx
je 0x546015
mov esi, dword [esi + 4]
cmp eax, dword [esi + 8]
jne 0x546000
mov esi, dword [esi]
jmp 0x546017
mov ebx, dword [ebp - 0x24]
jmp 0x546017
mov esi, ecx
mov eax, dword [esi + 4]
inc dword [edi + 8]
mov dword [ebx], esi
mov edx, edi
mov dword [ebx + 4], eax
mov dword [eax], ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], ebx
mov edi, dword [edi + 0xc]
and eax, dword [edx + 0x18]
lea ecx, [edi + eax*8 + 4]
mov dword [ebp - 0x20], ecx
lea ecx, [edi + eax*8]
mov edi, dword [edi + eax*8]
cmp edi, dword [edx + 4]
je 0x546057
cmp edi, esi
je 0x54605e
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
cmp dword [eax], ecx
jne 0x546062
jmp 0x546060
mov eax, dword [ebp - 0x20]
mov dword [ecx], ebx
jmp 0x546060
mov eax, ecx
mov dword [eax], ebx
mov cl, 1
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [eax], ebx
mov byte [eax + 4], cl
mov dword fs:[0], edx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.006068d7
nop word [eax + eax]
push ebp
sub esp, 8
add ebp, 0xc
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x5460cc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x14]
sub eax, ecx
cmp eax, 0x1000
jb 0x5460c2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x5460db
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.005d319e
add esp, 8
push 0x18
push dword [ebp - 0x24]
call fcn.005d319e
add esp, 0x10
pop ebp
ret
call fcn.006207e0
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [ebp + 8]
cmp eax, 0x10000001
jae 0x546266
dec eax
mov edi, ecx
lea edx, [ecx + 0xc]
mov esi, 1
or eax, 1
mov ebx, dword [edi + 4]
mov dword [ebp - 0x28], edx
bsr ecx, eax
xor ecx, 0x1f
neg cl
shl esi, cl
mov ecx, edx
lea eax, [esi + esi]
push ebx
push eax
call fcn.004a8490
lea edx, [esi - 1]
mov dword [ebp - 0x20], ebx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
mov eax, dword [edi + 4]
mov eax, dword [eax]
cmp ebx, eax
je 0x54625c
mov dword [ebp - 0x14], edi
nop dword [eax]
mov ecx, dword [eax]
movzx esi, byte [eax + 9]
mov dword [ebp - 0x10], ecx
movzx ecx, byte [eax + 8]
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + 0xa]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + 0xb]
xor esi, ecx
imul ecx, esi, 0x1000193
and ecx, edx
mov edx, dword [ebp - 0x28]
lea edi, [ecx + ecx]
lea ebx, [ecx + ecx + 1]
mov edx, dword [edx]
mov esi, dword [edx + ecx*8]
cmp esi, dword [ebp - 0x20]
je 0x5461d0
mov dword [ebp - 0x1c], edi
mov edi, dword [edx + ebx*4]
mov ecx, dword [eax + 8]
cmp ecx, dword [edi + 8]
je 0x5461e0
nop dword [eax]
cmp esi, edi
je 0x546223
mov edi, dword [edi + 4]
cmp ecx, dword [edi + 8]
jne 0x5461a0
mov edx, dword [eax + 4]
mov ebx, dword [ebp - 0x10]
mov ecx, dword [edi]
mov dword [edx], ebx
mov esi, dword [ebx + 4]
mov dword [esi], ecx
mov edi, dword [ecx + 4]
mov dword [edi], eax
mov dword [ecx + 4], esi
mov ecx, ebx
mov dword [ebx + 4], edx
mov dword [eax + 4], edi
jmp 0x54624a
mov ecx, dword [ebp - 0x10]
mov dword [edx + edi*4], eax
mov dword [edx + ebx*4], eax
jmp 0x54624a
mov ecx, dword [edi]
cmp ecx, eax
je 0x546213
mov esi, dword [eax + 4]
mov edi, dword [ebp - 0x10]
mov dword [esi], edi
mov dword [ebp - 0x1c], esi
mov esi, dword [edi + 4]
mov dword [esi], ecx
mov dword [ebp - 0x18], esi
mov esi, dword [ecx + 4]
mov dword [ebp - 0x24], esi
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
mov dword [ecx + 4], esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
mov dword [edi + 4], ecx
mov dword [eax + 4], esi
mov dword [edx + ebx*4], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x20], ecx
jne 0x546252
jmp 0x54625c
mov edi, dword [eax + 4]
mov ecx, dword [ebp - 0x10]
mov dword [edi], ecx
mov dword [ebp - 0x18], edi
mov edi, dword [ecx + 4]
mov dword [edi], esi
mov ebx, dword [esi + 4]
mov dword [ebx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp - 0x18]
mov dword [ecx + 4], esi
mov esi, dword [ebp - 0x1c]
mov dword [eax + 4], ebx
mov dword [edx + esi*4], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x20], ecx
je 0x54625c
mov edx, dword [eax + 0x18]
mov eax, ecx
jmp 0x546140
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 4
push str.invalid_hash_bucket_count
call fcn.006068d7