Function at 0x497690
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x511183
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.00465fb0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov esi, dword [eax + 4]
cmp esi, dword [eax]
je 0x497a87
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 0x497a7a
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 0x4978a9
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x497ae7
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.0045c060
cmp dword [ebp - 0x24], 0
jne 0x497915
cmp dword [ebp - 0x40], 0x15555555
je 0x497add
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 0x4977ec
fadd dword [0x51a9b0]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
fild dword [ebp - 0x2c]
test eax, eax
jns 0x497802
fadd dword [0x51a9b0]
fstp dword [ebp - 0x10]
fdiv dword [ebp - 0x10]
fcompi st(1)
fstp st(0)
jbe 0x497838
lea ecx, [ebp - 0x48]
call fcn.00469d90
push dword [ebp - 0x20]
lea eax, [ebp - 0x70]
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x48]
push eax
call fcn.0045c060
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 0x49783b
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 0x49787c
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edx
mov byte [ebp - 4], 0
jmp 0x497915
mov edx, dword [ecx + eax*8]
cmp edx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
jne 0x497893
mov dword [ecx + eax*8], edx
mov byte [ebp - 4], 0
jmp 0x497915
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
mov edx, dword [ebp - 0x14]
jne 0x4978a3
mov dword [ecx + eax*8 + 4], edx
mov byte [ebp - 4], 0
jmp 0x497915
mov ecx, 0xf6
cmp ax, cx
jne 0x497913
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x497ae7
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.00469f80
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x497ae7
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.00469f80
jmp 0x497915
xor edi, edi
mov eax, dword [ebp - 0x54]
cmp byte [eax + 0x2d], 0
je 0x497a77
movzx eax, word [ebx + 0x1e]
mov ecx, 0xfa
cmp ax, cx
jne 0x4979fc
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 1
jbe 0x497ae7
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 0x497ae7
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.00469f80
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.00469f80
mov al, byte [eax + 4]
test edi, edi
je 0x4979ae
mov ecx, 0xf6
cmp word [edi + 0x1e], cx
jne 0x497a77
cmp byte [ebp - 0x15], 0
je 0x497a77
test al, al
je 0x497a77
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.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x188]
add esp, 8
call fcn.00461de0
jmp 0x497a89
mov ecx, 0xfb
cmp ax, cx
jne 0x497a77
test edi, edi
je 0x497aa4
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 0x497a77
mov eax, 0x10
mov dword [ebp - 0x14], eax
lea esp, [esp]
sub ecx, edx
sar ecx, 4
cmp ecx, edi
jbe 0x497ae7
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.00469f80
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 0x497a30
mov ecx, dword [ebp + 0xc]
sub esi, 4
mov eax, esi
cmp esi, dword [ecx]
jne 0x4976d3
xor esi, esi
lea ecx, [ebp - 0x48]
call fcn.00466720
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.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x278]
add esp, 8
call fcn.00461de0
jmp 0x497a89
push str.unordered_map_set_too_long
call fcn.004e3511
call fcn.00461750
int3