Function at 0x497680
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x510553
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x26c
push ebx
push esi
push edi
lea ecx, [ebp - 0x48]
call fcn.00466050
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov esi, dword [eax + 4]
cmp esi, dword [eax]
je 0x497a77
mov ecx, dword [ebp + 0xc]
mov eax, esi
mov eax, dword [eax - 4]
mov dword [ebp - 0x54], eax
mov ebx, dword [eax + 0x34]
test ebx, ebx
je 0x497a6a
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 0x497899
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x497ad7
movzx ecx, word [ecx]
mov eax, dword [edi]
mov edx, dword [eax + ecx*4]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x1c], 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 - 0x48]
push eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0045c130
cmp dword [ebp - 0x24], 0
jne 0x497905
cmp dword [ebp - 0x40], 0x15555555
je 0x497acd
lea eax, [ebp - 0x44]
mov dword [ebp - 0x68], eax
push 0xc
mov byte [ebp - 4], 1
mov dword [ebp - 0x64], 0
call fcn.004e5c9b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x10]
lea ecx, [edx + 8]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x1c], ecx
mov dword [ecx], eax
mov ecx, dword [ebp - 0x40]
fld dword [ebp - 0x48]
add ecx, 1
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
mov byte [ebp - 4], 2
jns 0x4977dc
fadd dword [0x5199b0]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
fild dword [ebp - 0x2c]
test eax, eax
jns 0x4977f2
fadd dword [0x5199b0]
fstp dword [ebp - 0x10]
fdiv dword [ebp - 0x10]
fcompi st(1)
fstp st(0)
jbe 0x497828
lea ecx, [ebp - 0x48]
call fcn.00469e40
push dword [ebp - 0x20]
lea eax, [ebp - 0x70]
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x48]
push eax
call fcn.0045c130
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x49782b
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
inc dword [ebp - 0x40]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov dword [eax], edx
mov dword [ecx + 4], edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
and eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x64], 0
mov edx, dword [ecx + eax*8]
cmp edx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x14]
jne 0x49786c
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edx
mov byte [ebp - 4], 0
jmp 0x497905
mov edx, dword [ecx + eax*8]
cmp edx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
jne 0x497883
mov dword [ecx + eax*8], edx
mov byte [ebp - 4], 0
jmp 0x497905
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
mov edx, dword [ebp - 0x14]
jne 0x497893
mov dword [ecx + eax*8 + 4], edx
mov byte [ebp - 4], 0
jmp 0x497905
mov ecx, 0xf6
cmp ax, cx
jne 0x497903
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x497ad7
movzx ecx, word [ecx]
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0046a030
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x497ad7
movzx ecx, word [ecx + 0x10]
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0046a030
jmp 0x497905
xor edi, edi
mov eax, dword [ebp - 0x54]
cmp byte [eax + 0x2d], 0
je 0x497a67
movzx eax, word [ebx + 0x1e]
mov ecx, 0xfa
cmp ax, cx
jne 0x4979ec
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 1
jbe 0x497ad7
movzx eax, word [edx + 0x10]
mov edx, dword [ebx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x58], eax
cmp ecx, 2
jbe 0x497ad7
mov ecx, dword [ebx]
movzx eax, word [edx + 0x20]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0046a030
lea ecx, [ebp - 0x48]
mov al, byte [eax + 4]
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0046a030
mov al, byte [eax + 4]
test edi, edi
je 0x49799e
mov ecx, 0xf6
cmp word [edi + 0x1e], cx
jne 0x497a67
cmp byte [ebp - 0x15], 0
je 0x497a67
test al, al
je 0x497a67
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x188]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004e0a50
mov esi, eax
push str.Selection_must_be_structured
push esi
mov byte [ebp - 4], 3
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x188]
add esp, 8
call fcn.00461eb0
jmp 0x497a79
mov ecx, 0xfb
cmp ax, cx
jne 0x497a67
test edi, edi
je 0x497a94
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 0x497a67
mov eax, 0x10
mov dword [ebp - 0x14], eax
lea esp, [esp]
sub ecx, edx
sar ecx, 4
cmp ecx, edi
jbe 0x497ad7
movzx ecx, word [eax + edx]
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.0046a030
mov ecx, dword [ebx + 0x10]
add edi, 2
mov edx, dword [ebx + 0xc]
mov eax, ecx
add dword [ebp - 0x14], 0x20
sub eax, edx
sar eax, 4
cmp edi, eax
mov eax, dword [ebp - 0x14]
jb 0x497a20
mov ecx, dword [ebp + 0xc]
sub esi, 4
mov eax, esi
cmp esi, dword [ecx]
jne 0x4976c3
xor esi, esi
lea ecx, [ebp - 0x48]
call fcn.004667c0
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
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x278]
push ebx
push 0xfffffffffffffff5
push eax
call fcn.004e0a50
mov esi, eax
push str.OpSwitch_must_be_preceded_by_an_OpSelectionMerge_instruction
push esi
mov byte [ebp - 4], 4
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x278]
add esp, 8
call fcn.00461eb0
jmp 0x497a79
push str.unordered_map_set_too_long
call fcn.004e3511
call fcn.00461820
int3