Function at 0x101ad330
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x103390d4]
sub esp, 0xd4
push ebx
push esi
push edi
mov edi, dword [eax + 0x10]
mov ebx, ecx
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
call dword [eax + 0x30]
push eax
mov ecx, edi
call esi
mov esi, eax
test esi, esi
je 0x101ad898
mov ecx, esi
call fcn.10003d10
mov ecx, esi
call fcn.10062750
mov ecx, esi
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
call fcn.10023900
mov esi, dword [0x103390cc]
mov dword [ebp - 0x2c], esi
mov eax, dword [eax]
mov edx, dword [esi + 0x10]
and eax, 0xfff
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x14]
add eax, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x28], eax
cmp edx, eax
je 0x101ad898
mov eax, dword [esi + 0xc]
mov ecx, edx
dec eax
shr ecx, 1
and ecx, eax
and edx, 1
mov eax, dword [esi + 8]
mov dword [ebp - 8], edx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + edx*8]
mov al, byte [eax + 0xc]
movsx ecx, al
movzx eax, al
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], ecx
imul eax, eax, 0x1000193
shr ecx, 0x18
xor eax, ecx
imul eax, eax, 0x1000193
xor eax, ecx
imul eax, eax, 0x1000193
xor eax, ecx
mov ecx, ebx
imul esi, eax, 0x1000193
lea eax, [ebp - 0x10]
push esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005ffa0
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x101ad4b7
cmp dword [ebx + 8], 0xccccccc
je 0x101ad89f
push 0x14
call fcn.100c366d
mov ecx, dword [ebp - 0x10]
xorps xmm0, xmm0
mov dword [eax + 8], ecx
add esp, 4
movq qword [eax + 0xc], xmm0
lea edi, [eax + 8]
mov dword [ebp - 4], eax
mov dword [edi + 8], 0
mov eax, dword [ebx + 8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x102ddf50]
mov eax, dword [ebx + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x102ddf50]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebx]
seta al
test al, al
je 0x101ad4a6
mov ecx, ebx
call fcn.1005e4f0
push esi
push edi
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.1005ffa0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
jmp 0x101ad4a9
mov ecx, dword [ebp - 0x1c]
push dword [ebp - 4]
push ecx
push esi
mov ecx, ebx
call fcn.1005e5e0
mov edi, eax
mov ecx, dword [0x103390d4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ecx]
mov esi, dword [edx + 0xc]
mov edx, dword [ebp - 8]
mov edx, dword [eax + edx*8]
movsx eax, byte [edx + 0xc]
push eax
call esi
mov ecx, dword [edi + 0xc]
mov dword [ecx + 4], eax
mov edx, dword [edi + 0xc]
cmp dword [edx + 4], 0
je 0x101ad885
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + eax*8]
cmp byte [ecx + 1], 0
je 0x101ad885
cmp dword [ebp - 0x20], 3
jne 0x101ad50e
movsx eax, byte [ecx + 0xc]
cmp dword [ebp - 0x24], eax
je 0x101ad885
mov al, byte [ecx + 2]
mov byte [edx + 0xb0], al
mov ecx, dword [edi + 0xc]
mov ecx, dword [ecx + 4]
call fcn.10003d10
mov ecx, dword [eax]
mov eax, dword [edi + 0xc]
mov dword [eax + 0xac], ecx
mov eax, dword [0x103390dc]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0x14d8]
call fcn.1016d4a0
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad55d
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
call fcn.101ac4e0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad578
lock inc dword [eax + 4]
mov esi, dword [edi + 0x10]
sub esp, 8
mov edx, dword [edi + 0xc]
mov ecx, esp
lea eax, [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ebp - 4], eax
test esi, esi
je 0x101ad59f
lock inc dword [eax]
jmp 0x101ad5a2
mov dword [ebp - 4], eax
lea eax, [ebp - 0x30]
mov dword [ecx], edx
push eax
lea eax, [ebp - 0x34]
mov dword [ecx + 4], esi
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.101aa610
test esi, esi
je 0x101ad5e3
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
lock xadd dword [ecx], eax
jne 0x101ad5e3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x101ad5e3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [edi + 0xc]
mov eax, dword [0x103390c8]
cmp byte [ecx + 0xb1], 0
je 0x101ad642
mov eax, dword [eax + 0xc]
cmp byte [eax + 2], 0
je 0x101ad879
cmp byte [ecx + 0xb0], 0
jne 0x101ad879
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad62b
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101a90a0
jmp 0x101ad879
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x58], 0
je 0x101ad687
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad670
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101abbe0
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x5a], 0
je 0x101ad6cf
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad6b8
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101ab450
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x64], 0
je 0x101ad717
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad700
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101ab290
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x62], 0
je 0x101ad7a6
mov eax, dword [0x103390d4]
mov esi, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1c]
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [ecx]
mov eax, dword [esi + eax*8]
movsx eax, byte [eax + 0xc]
push eax
call dword [edx + 0x20]
lea ecx, [ebp - 0xd0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101ad756
sub ecx, edx
lea eax, [ebp - 0xd0]
push ecx
mov ecx, dword [edi + 0xc]
push eax
add ecx, 0xc
call fcn.100389e0
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad78f
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101ab040
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x5c], 0
je 0x101ad7ee
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad7d7
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101aacf0
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
movzx edx, byte [ecx + 0xb0]
mov ecx, dword [eax + 0xc]
cmp byte [edx + ecx + 0x5e], 0
je 0x101ad836
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad81f
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101aaac0
mov eax, dword [0x103390c8]
mov ecx, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
movzx ecx, byte [ecx + 0xb0]
cmp byte [ecx + eax + 0x60], 0
je 0x101ad879
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x101ad867
lock inc dword [eax + 4]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.101aa8c0
mov ecx, ebx
call fcn.101acaa0
call fcn.1016d610
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x2c]
inc edx
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0x28]
jne 0x101ad3a5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.unordered_map_set_too_long
call fcn.1009f8bd
int3