Function at 0x4a3260
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5248d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b0
push ebx
push esi
push edi
lea ecx, [ebp - 0x88]
call fcn.00471ff0
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 0
call fcn.00471ff0
mov ebx, dword [ebp + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x120]
mov edi, dword [ebx + 0x11c]
mov dword [ebp - 0x10], eax
cmp edi, eax
je 0x4a3594
lea esp, [esp]
mov ebx, dword [edi]
mov eax, ebx
shr eax, 0x10
mov ecx, ebx
mov dword [ebp - 0x20], eax
mov edx, ebx
shr ecx, 8
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x1c], ecx
imul esi, eax, 0x1000193
movzx eax, cl
shr edx, 0x18
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], edx
xor eax, esi
mov dword [ebp - 0x18], ebx
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x20]
movzx eax, al
xor ecx, eax
movzx eax, dl
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ecx + 0x294]
call fcn.00465c40
mov edx, dword [eax + 4]
test edx, edx
jne 0x4a333c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x298]
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp edx, dword [eax + 0x298]
lea eax, [edx + 0xc]
cmovne ecx, eax
test ecx, ecx
je 0x4a3585
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x1787
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00446830
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x4a3585
cmp dword [eax + 0x10], 0x1787
ja 0x4a3585
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor eax, esi
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x20]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x14]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
lea eax, [ebp - 0x28]
imul esi, ecx, 0x1000193
lea ecx, [ebp - 0xb0]
push esi
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00465c40
cmp dword [ebp - 0x34], 0
jne 0x4a34a2
cmp dword [ebp - 0xa8], 0x15555555
je 0x4a3d4a
lea eax, [ebp - 0xac]
mov dword [ebp - 0x30], eax
push 0xc
mov byte [ebp - 4], 2
mov dword [ebp - 0x2c], 0
call fcn.004fa223
mov dword [ebp - 0x18], eax
add esp, 4
mov dword [ebp - 0x2c], eax
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [eax], ebx
mov ecx, dword [ebp - 0xa8]
fld dword [ebp - 0xb0]
add ecx, 1
mov dword [ebp - 0x24], ecx
fild dword [ebp - 0x24]
mov byte [ebp - 4], 3
jns 0x4a342b
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
mov eax, dword [ebp - 0x94]
fild dword [ebp - 0x94]
test eax, eax
jns 0x4a3447
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fdiv dword [ebp - 0x14]
fcompi st(1)
fstp st(0)
jbe 0x4a3481
lea ecx, [ebp - 0xb0]
call fcn.00475f90
push esi
push dword [ebp - 0x1c]
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
jmp 0x4a3484
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x18]
mov dword [ebp - 0x2c], 0
push ecx
push esi
lea ecx, [ebp - 0xb0]
call fcn.00431350
mov ebx, dword [ebp - 0x28]
mov byte [ebp - 4], 1
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x88]
call fcn.00465c40
cmp dword [ebp - 0x64], 0
jne 0x4a3585
cmp dword [ebp - 0x80], 0x15555555
je 0x4a3d4a
lea eax, [ebp - 0x84]
mov dword [ebp - 0x40], eax
push 0xc
mov byte [ebp - 4], 4
mov dword [ebp - 0x3c], 0
call fcn.004fa223
mov dword [ebp - 0x18], eax
add esp, 4
mov dword [ebp - 0x3c], eax
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [eax], ebx
mov ecx, dword [ebp - 0x80]
fld dword [ebp - 0x88]
add ecx, 1
mov dword [ebp - 0x24], ecx
fild dword [ebp - 0x24]
mov byte [ebp - 4], 5
jns 0x4a3517
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
fild dword [ebp - 0x6c]
test eax, eax
jns 0x4a352d
fadd dword [0x530074]
fstp dword [ebp - 0x14]
fdiv dword [ebp - 0x14]
fcompi st(1)
fstp st(0)
jbe 0x4a3567
lea ecx, [ebp - 0x88]
call fcn.00475f90
push esi
push dword [ebp - 0x1c]
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x88]
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], eax
jmp 0x4a356a
mov ecx, dword [ebp - 0x68]
push dword [ebp - 0x18]
mov dword [ebp - 0x3c], 0
push ecx
push esi
lea ecx, [ebp - 0x88]
call fcn.00431350
mov byte [ebp - 4], 1
add edi, 4
cmp edi, dword [ebp - 0x10]
jne 0x4a32c0
mov ebx, dword [ebp + 8]
cmp dword [ebp - 0xa8], 0
je 0x4a3cde
mov ecx, ebx
call fcn.004f5680
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
cmp edi, eax
je 0x4a37cb
push dword [edi]
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
call fcn.004ee670
mov esi, dword [ebp - 0x30]
mov byte [ebp - 4], 6
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4a37ad
jmp 0x4a35e0
mov edx, dword [esi + 0x10]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0xb0]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00465c40
cmp dword [eax + 4], 0
jne 0x4a368b
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4a3664
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4a3660
mov edi, edi
cmp esi, dword [eax + 8]
jne 0x4a3660
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4a3650
mov esi, eax
jmp 0x4a367c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4a367c
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4a3670
cmp byte [esi + 0xd], 0
je 0x4a35e0
jmp 0x4a37ad
mov ebx, dword [edi]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], ebx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
lea eax, [ebp - 0x10]
imul esi, ecx, 0x1000193
lea ecx, [ebp - 0x88]
push esi
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00465c40
cmp dword [ebp - 0x34], 0
jne 0x4a37aa
cmp dword [ebp - 0x80], 0x15555555
je 0x4a3d4a
lea eax, [ebp - 0x84]
mov dword [ebp - 0x40], eax
push 0xc
mov byte [ebp - 4], 7
mov dword [ebp - 0x3c], 0
call fcn.004fa223
mov dword [ebp - 0x1c], eax
add esp, 4
mov dword [ebp - 0x3c], eax
add eax, 8
mov dword [ebp - 0x14], eax
mov dword [eax], ebx
mov ecx, dword [ebp - 0x80]
fld dword [ebp - 0x88]
add ecx, 1
mov dword [ebp - 0x24], ecx
fild dword [ebp - 0x24]
mov byte [ebp - 4], 8
jns 0x4a3740
fadd dword [0x530074]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
mov eax, dword [ebp - 0x6c]
fild dword [ebp - 0x6c]
test eax, eax
jns 0x4a3756
fadd dword [0x530074]
fstp dword [ebp - 0x10]
fdiv dword [ebp - 0x10]
fcompi st(1)
fstp st(0)
jbe 0x4a3790
lea ecx, [ebp - 0x88]
call fcn.00475f90
push esi
push dword [ebp - 0x14]
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x88]
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
jmp 0x4a3793
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x1c]
mov dword [ebp - 0x3c], 0
push ecx
push esi
lea ecx, [ebp - 0x88]
call fcn.00431350
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 1
push eax
mov ecx, eax
call fcn.0047d900
add edi, 0x220
cmp edi, dword [ebp - 0x18]
jne 0x4a35b8
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xf4]
mov esi, dword [edi + 0xf0]
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x4a38a1
mov ecx, 0xfa
lea ebx, [ebx]
cmp word [esi + 0x1e], cx
jne 0x4a3893
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 1
jbe 0x4a3d54
mov edi, dword [esi]
movzx eax, word [edx + 0x10]
mov ebx, dword [edi + eax*4]
cmp ecx, 2
jbe 0x4a3d54
movzx eax, word [edx + 0x20]
cmp ebx, dword [edi + eax*4]
jne 0x4a388b
mov eax, dword [esi + 0x38]
mov edx, dword [eax]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x88]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00465c40
cmp dword [eax + 4], 0
jne 0x4a3a3b
mov eax, dword [ebp - 0x20]
mov ecx, 0xfa
add esi, 0x4c
cmp esi, eax
jne 0x4a37f0
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.004f5680
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], eax
cmp ebx, eax
je 0x4a3cde
jmp 0x4a38c0
mov edx, dword [ebx]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x88]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00465c40
cmp dword [eax + 4], 0
je 0x4a3ccc
mov ecx, ebx
call fcn.004762c0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], eax
cmp ecx, eax
je 0x4a3ccc
lea esp, [esp]
mov ebx, dword [ecx]
push 0xc
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
call fcn.004fa223
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
push eax
push 0x10
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x60], 0x3f800000
call fcn.004018e0
lea eax, [ebx + 0x10]
mov byte [ebp - 4], 0xc
test eax, eax
jne 0x4a3a77
mov edx, dword [ebp - 0x54]
mov byte [ebp - 4], 1
test edx, edx
je 0x4a3a04
mov ecx, dword [ebp - 0x4c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4a39e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a3d59
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 4]
mov dword [eax], 0
mov eax, dword [ecx]
test eax, eax
je 0x4a3a29
mov esi, dword [eax]
push 0xc
push eax
call fcn.004fa253
add esp, 8
mov eax, esi
test esi, esi
jne 0x4a3a16
push 0xc
push dword [ebp - 0x5c]
call fcn.004fa253
add esp, 8
jmp 0x4a3cb7
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1bc]
push esi
push 0xfffffffffffffff6
push eax
call fcn.004f5350
mov esi, eax
push str.In_entry_points_using_the_MaximallyReconvergesKHR_execution_mode__True_Label_and_False_Label_must_be_different_labels
push esi
mov byte [ebp - 4], 9
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x1bc]
add esp, 8
call fcn.0046b990
jmp 0x4a3ce0
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
cmp esi, eax
je 0x4a3bac
mov eax, dword [esi]
mov ebx, dword [eax]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
lea eax, [ebp - 0x10]
imul edi, ecx, 0x1000193
lea ecx, [ebp - 0x60]
push edi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00465c40
cmp dword [ebp - 0x2c], 0
jne 0x4a3b9a
cmp dword [ebp - 0x58], 0x15555555
je 0x4a3d4a
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x40], eax
push 0xc
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x3c], 0
call fcn.004fa223
mov dword [ebp - 0x1c], eax
add esp, 4
mov dword [ebp - 0x3c], eax
add eax, 8
mov dword [ebp - 0x14], eax
mov dword [eax], ebx
mov ecx, dword [ebp - 0x58]
fld dword [ebp - 0x60]
add ecx, 1
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
mov byte [ebp - 4], 0xe
jns 0x4a3b35
fadd dword [0x530074]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
mov eax, dword [ebp - 0x44]
fild dword [ebp - 0x44]
test eax, eax
jns 0x4a3b4b
fadd dword [0x530074]
fstp dword [ebp - 0x10]
fdiv dword [ebp - 0x10]
fcompi st(1)
fstp st(0)
jbe 0x4a3b7f
lea ecx, [ebp - 0x60]
call fcn.00475f90
push edi
push dword [ebp - 0x14]
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x60]
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
jmp 0x4a3b82
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x1c]
mov dword [ebp - 0x3c], 0
push ecx
push edi
lea ecx, [ebp - 0x60]
call fcn.00431350
mov byte [ebp - 4], 0xc
add esi, 4
cmp esi, dword [ebp - 0x18]
jne 0x4a3a87
mov ebx, dword [ebp - 0x64]
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x58], 2
jb 0x4a3ca8
mov ecx, dword [ebx + 0x34]
mov eax, 0x6bca1af3
mov esi, dword [edi + 0xf0]
sub ecx, esi
imul ecx
mov ecx, 0xf6
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x4c
cmp word [eax + esi - 0x2e], cx
jne 0x4a3c69
mov edx, dword [ebp - 0x54]
mov byte [ebp - 4], 1
test edx, edx
je 0x4a3c35
mov ecx, dword [ebp - 0x4c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4a3c16
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a3d59
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 4]
mov dword [eax], 0
mov eax, dword [ecx]
test eax, eax
je 0x4a3c5a
mov esi, dword [eax]
push 0xc
push eax
call fcn.004fa253
add esp, 8
mov eax, esi
test esi, esi
jne 0x4a3c47
push 0xc
push dword [ebp - 0x5c]
call fcn.004fa253
add esp, 8
jmp 0x4a3cb7
push dword [ebx]
mov ecx, edi
call fcn.004eebd0
mov edi, eax
xor dl, dl
mov ecx, dword [edi + 0x40]
mov esi, dword [edi + 0x44]
cmp ecx, esi
je 0x4a3d09
mov eax, dword [ecx]
movzx eax, word [eax + 0x1e]
sub eax, 0xf6
je 0x4a3c9b
sub eax, 1
je 0x4a3c9b
sub eax, 4
jne 0x4a3c9d
mov dl, 1
add ecx, 8
cmp ecx, esi
jne 0x4a3c84
test dl, dl
je 0x4a3d09
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call fcn.004726f0
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
add ecx, 4
mov dword [ebp - 0x20], ecx
cmp ecx, dword [ebp - 0x34]
jne 0x4a3940
mov ebx, dword [ebp - 0x28]
add ebx, 0x220
mov dword [ebp - 0x28], ebx
cmp ebx, dword [ebp - 0x24]
jne 0x4a38c0
xor esi, esi
lea ecx, [ebp - 0xb0]
call fcn.004726f0
lea ecx, [ebp - 0x88]
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
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1bc]
push edi
push 0xfffffffffffffff5
push eax
call fcn.004f5350
mov esi, eax
push str.In_entry_points_using_the_MaximallyReconvergesKHR_execution_mode__this_basic_block_must_not_have_multiple_unique_predecessors
push esi
mov byte [ebp - 4], 0xf
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x1bc]
add esp, 8
call fcn.0046b990
lea ecx, [ebp - 0x60]
call fcn.004726f0
jmp 0x4a3ce0
push str.unordered_map_set_too_long
call fcn.004f7e11
call fcn.0046b360
call fcn.004ff45f
int3