Function at 0x4a7eb0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x524f63
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.00471ff0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov esi, dword [eax + 4]
cmp esi, dword [eax]
je 0x4a8259
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 0x4a8218
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 0x4a8072
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x4a8280
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.00465c40
cmp dword [ebp - 0x28], 0
jne 0x4a80de
cmp dword [ebp - 0x4c], 0x15555555
je 0x4a8276
lea eax, [ebp - 0x50]
mov dword [ebp - 0x34], eax
push 0xc
mov byte [ebp - 4], 1
mov dword [ebp - 0x30], 0
call fcn.004fa223
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 0x4a800a
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
fild dword [ebp - 0x38]
test eax, eax
jns 0x4a8020
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fdiv dword [ebp - 0x14]
fcompi st(1)
fstp st(0)
jbe 0x4a8053
lea ecx, [ebp - 0x54]
call fcn.00475f90
push dword [ebp - 0x1c]
lea eax, [ebp - 0x5c]
push dword [ebp - 0x24]
lea ecx, [ebp - 0x54]
push eax
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
jmp 0x4a8056
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.00431350
mov byte [ebp - 4], 0
jmp 0x4a80de
mov ecx, 0xf6
cmp ax, cx
jne 0x4a80dc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x4a8280
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.00476110
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x4a8280
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.00476110
jmp 0x4a80de
xor edi, edi
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x2d], 0
je 0x4a8218
movzx eax, word [ebx + 0x1e]
mov ecx, 0xfa
cmp ax, cx
jne 0x4a81a5
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 1
jbe 0x4a8280
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 0x4a8280
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.00476110
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.00476110
mov al, byte [eax + 4]
test edi, edi
je 0x4a8171
mov ecx, 0xf6
cmp word [edi + 0x1e], cx
jne 0x4a8218
cmp byte [ebp - 0xd], 0
je 0x4a8218
test al, al
je 0x4a8218
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x174]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004f5350
mov esi, eax
mov byte [ebp - 4], 3
push str.Selection_must_be_structured
jmp 0x4a823d
mov ecx, 0xfb
cmp ax, cx
jne 0x4a8218
test edi, edi
je 0x4a8220
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 0x4a8218
mov eax, 0x10
mov dword [ebp - 0x1c], eax
sub ecx, edx
sar ecx, 4
cmp ecx, edi
jbe 0x4a8280
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.00476110
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 0x4a81d1
mov eax, dword [ebp + 0xc]
jmp 0x4a7ee6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x174]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004f5350
mov esi, eax
mov byte [ebp - 4], 4
push str.OpSwitch_must_be_preceded_by_an_OpSelectionMerge_instruction
push esi
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x174]
add esp, 8
call fcn.0046b990
jmp 0x4a825b
xor esi, esi
lea ecx, [ebp - 0x54]
call fcn.004726f0
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.004f7e11
call fcn.0046b360
int3