Function at 0x49af10
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x513ee3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x168
push ebx
push esi
push edi
lea ecx, [ebp - 0x54]
call fcn.004678b0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov esi, dword [eax + 4]
cmp esi, dword [eax]
je 0x49b2b9
mov eax, esi
add esi, 0xfffffffc
mov eax, dword [eax - 4]
mov dword [ebp - 0x20], eax
mov ebx, dword [eax + 0x34]
test ebx, ebx
je 0x49b278
mov eax, dword [ebp + 8]
mov ecx, ebx
mov edi, dword [eax + 0xf0]
sub ecx, edi
mov eax, 0x6bca1af3
add edi, 0xffffffb4
imul ecx
mov ecx, 0xf7
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x4c
add edi, eax
movzx eax, word [edi + 0x1e]
cmp ax, cx
jne 0x49b0d2
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x49b2e0
movzx ecx, word [ecx]
mov eax, dword [edi]
mov edx, dword [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x14], edx
imul eax, eax, 0x1000193
mov dword [ebp - 0x24], edx
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x54]
push eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0045db70
cmp dword [ebp - 0x28], 0
jne 0x49b13e
cmp dword [ebp - 0x4c], 0x15555555
je 0x49b2d6
lea eax, [ebp - 0x50]
mov dword [ebp - 0x34], eax
push 0xc
mov byte [ebp - 4], 1
mov dword [ebp - 0x30], 0
call fcn.004e9663
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], eax
add eax, 8
mov dword [ebp - 0x24], eax
mov dword [eax], ecx
mov ecx, dword [ebp - 0x4c]
fld dword [ebp - 0x54]
add ecx, 1
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
mov byte [ebp - 4], 2
jns 0x49b06a
fadd dword [0x51d990]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
fild dword [ebp - 0x38]
test eax, eax
jns 0x49b080
fadd dword [0x51d990]
fstp dword [ebp - 0x14]
fdiv dword [ebp - 0x14]
fcompi st(1)
fstp st(0)
jbe 0x49b0b3
lea ecx, [ebp - 0x54]
call fcn.0046b9c0
push dword [ebp - 0x1c]
lea eax, [ebp - 0x5c]
push dword [ebp - 0x24]
lea ecx, [ebp - 0x54]
push eax
call fcn.0045db70
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
jmp 0x49b0b6
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x18]
mov dword [ebp - 0x30], 0
push ecx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x54]
call fcn.0042c830
mov byte [ebp - 4], 0
jmp 0x49b13e
mov ecx, 0xf6
cmp ax, cx
jne 0x49b13c
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x49b2e0
movzx ecx, word [ecx]
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0046bbb0
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x49b2e0
movzx ecx, word [ecx + 0x10]
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.0046bbb0
jmp 0x49b13e
xor edi, edi
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x2d], 0
je 0x49b278
movzx eax, word [ebx + 0x1e]
mov ecx, 0xfa
cmp ax, cx
jne 0x49b205
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 1
jbe 0x49b2e0
movzx eax, word [edx + 0x10]
mov edx, dword [ebx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x20], eax
cmp ecx, 2
jbe 0x49b2e0
mov ecx, dword [ebx]
movzx eax, word [edx + 0x20]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0046bbb0
lea ecx, [ebp - 0x54]
mov al, byte [eax + 4]
mov byte [ebp - 0xd], al
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0046bbb0
mov al, byte [eax + 4]
test edi, edi
je 0x49b1d1
mov ecx, 0xf6
cmp word [edi + 0x1e], cx
jne 0x49b278
cmp byte [ebp - 0xd], 0
je 0x49b278
test al, al
je 0x49b278
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x174]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 3
push str.Selection_must_be_structured
jmp 0x49b29d
mov ecx, 0xfb
cmp ax, cx
jne 0x49b278
test edi, edi
je 0x49b280
mov ecx, dword [ebx + 0x10]
mov edi, 1
mov edx, dword [ebx + 0xc]
mov eax, ecx
sub eax, edx
sar eax, 4
cmp eax, edi
jbe 0x49b278
mov eax, 0x10
mov dword [ebp - 0x1c], eax
sub ecx, edx
sar ecx, 4
cmp ecx, edi
jbe 0x49b2e0
movzx ecx, word [eax + edx]
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0046bbb0
mov ecx, dword [ebx + 0x10]
add edi, 2
mov edx, dword [ebx + 0xc]
mov eax, ecx
add dword [ebp - 0x1c], 0x20
sub eax, edx
sar eax, 4
cmp edi, eax
mov eax, dword [ebp - 0x1c]
jb 0x49b231
mov eax, dword [ebp + 0xc]
jmp 0x49af46
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x174]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 4
push str.OpSwitch_must_be_preceded_by_an_OpSelectionMerge_instruction
push esi
call fcn.00433f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x174]
add esp, 8
call fcn.00463850
jmp 0x49b2bb
xor esi, esi
lea ecx, [ebp - 0x54]
call fcn.00467fb0
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
push str.unordered_map_set_too_long
call fcn.004e72d1
call fcn.00463220
int3