Function at 0x4ab210
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5154c3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x24]
push esi
push edi
mov edi, dword [ebp + 0xc]
push edi
push ebx
push eax
call fcn.004a9880
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
mov dword [ebp - 4], 0
cmp eax, 4
jbe 0x4ab763
movzx ecx, word [ecx + 0x40]
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
push eax
mov dword [ebp + 0xc], eax
call fcn.004de540
cmp word [eax + 0x1e], 0x36
je 0x4ab2ae
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push dword [ebp - 0x14]
cmova ecx, dword [ebp - 0x24]
push ecx
push esi
mov byte [ebp - 4], 1
call fcn.00434480
push str._does_not_reference_a_function
jmp 0x4ab301
mov eax, dword [ebx + 0x11c]
mov ecx, dword [ebx + 0x120]
cmp eax, ecx
je 0x4ab2d0
mov edx, dword [ebp + 0xc]
cmp dword [eax], edx
je 0x4ab352
add eax, 4
cmp eax, ecx
jne 0x4ab2c1
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push dword [ebp - 0x14]
cmova ecx, dword [ebp - 0x24]
push ecx
push esi
call fcn.00434480
push str._does_not_reference_an_entry_point
push esi
call fcn.00433f60
add esp, 0x14
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x140]
call fcn.00463850
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xf
jbe 0x4ab750
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ab746
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ab768
jmp 0x4ab746
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x30], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
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, [ebx + 0x274]
push eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.0045db70
mov eax, dword [eax + 4]
test eax, eax
jne 0x4ab3b4
mov eax, dword [ebx + 0x278]
xor edx, edx
lea ecx, [eax + 0xc]
cmp eax, dword [ebx + 0x278]
cmovne edx, ecx
test edx, edx
je 0x4ab72a
cmp dword [edx + 4], 0
je 0x4ab72a
mov eax, dword [edx]
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
jne 0x4ab432
mov edi, edi
cmp dword [eax + 0x10], 5
jne 0x4ab569
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x4ab414
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x4ab410
lea esp, [esp]
cmp eax, dword [ecx + 8]
jne 0x4ab410
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x4ab400
mov eax, ecx
jmp 0x4ab42c
mov eax, ecx
mov edx, dword [eax]
cmp byte [edx + 0xd], 0
jne 0x4ab42c
mov edi, edi
mov ecx, dword [edx]
mov eax, edx
mov edx, ecx
cmp byte [ecx + 0xd], 0
je 0x4ab420
cmp byte [eax + 0xd], 0
je 0x4ab3e0
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 5
jbe 0x4ab763
movzx ecx, word [ecx + 0x50]
mov eax, dword [edi]
push dword [eax + ecx*4]
mov ecx, ebx
call fcn.004de540
test eax, eax
je 0x4ab700
cmp word [eax + 0x1e], 7
jne 0x4ab700
push 1
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
call fcn.0046bd80
mov eax, dword [ebp + 0xc]
lea ecx, [ebx + 0x128]
push dword [ebp - 0x28]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 6
push eax
call fcn.0045db70
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4ab76d
mov esi, dword [eax + 0xc]
cmp esi, dword [eax + 0x10]
je 0x4ab4e8
lea esp, [esp]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x4ab4ba
mov ecx, dword [esi]
push dword [esi + 0x10]
cmp dword [ebp - 0x34], 0xf
lea eax, [ebp - 0x48]
push ecx
cmova eax, dword [ebp - 0x48]
push dword [ebp - 0x38]
push eax
call fcn.00404a60
add esp, 0x10
test al, al
jne 0x4ab59f
mov eax, dword [ebp - 0x28]
add esi, 0x24
cmp esi, dword [eax + 0x10]
jne 0x4ab4b0
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 7
push str.Name_must_match_an_entry_point_for_Kernel
push esi
call fcn.00433f60
add esp, 8
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x140]
call fcn.00463850
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xf
jbe 0x4ab552
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ab548
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ab768
push ecx
push edx
call fcn.004e9693
add esp, 8
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
jmp 0x4ab31b
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push dword [ebp - 0x14]
cmova ecx, dword [ebp - 0x24]
push ecx
push esi
mov byte [ebp - 4], 4
call fcn.00434480
push str._must_refer_only_to_GLCompute_entry_points
jmp 0x4ab301
mov esi, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
sub esi, eax
sar esi, 4
cmp dword [ebp + 0x10], 5
jae 0x4ab61b
cmp esi, 6
jbe 0x4ab657
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
push 0x5709e0
push esi
mov byte [ebp - 4], 8
call fcn.00433f60
add esp, 8
mov ecx, esi
push dword [ebp + 0x10]
call fcn.0045f530
push str._of_the
push esi
call fcn.00433f60
cmp dword [ebp - 0x10], 0xf
lea eax, [ebp - 0x24]
push dword [ebp - 0x14]
cmova eax, dword [ebp - 0x24]
push eax
push esi
call fcn.00434480
push str._instruction_can_only_have_2_additional_operands
push esi
call fcn.00433f60
add esp, 0x1c
jmp 0x4ab50d
cmp esi, 6
jbe 0x4ab657
movzx ecx, word [eax + 0x60]
mov eax, dword [edi]
push dword [eax + ecx*4]
push ebx
call fcn.004a9810
add esp, 8
test al, al
jne 0x4ab657
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 9
push str.NumArguments_must_be_a_32_bit_unsigned_integer_OpConstant
jmp 0x4ab504
cmp esi, 7
jbe 0x4ab6a7
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 7
jbe 0x4ab763
movzx ecx, word [ecx + 0x70]
mov eax, dword [edi]
push dword [eax + ecx*4]
push ebx
call fcn.004a9810
add esp, 8
test al, al
jne 0x4ab6a7
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 0xa
push str.Flags_must_be_a_32_bit_unsigned_integer_OpConstant
jmp 0x4ab504
cmp esi, 8
jbe 0x4ab6f9
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 8
jbe 0x4ab763
movzx ecx, word [ecx + 0x80]
mov eax, dword [edi]
push dword [eax + ecx*4]
mov ecx, ebx
call fcn.004de840
cmp eax, 7
je 0x4ab6f9
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 0xb
push str.Attributes_must_be_an_OpString
jmp 0x4ab504
xor esi, esi
jmp 0x4ab51e
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
push str.Name_must_be_an_OpString
push esi
mov byte [ebp - 4], 5
call fcn.00433f60
add esp, 8
jmp 0x4ab30a
push edi
push 0xfffffffffffffff6
lea eax, [ebp - 0x140]
mov ecx, ebx
push eax
call fcn.004e4840
mov esi, eax
mov byte [ebp - 4], 3
jmp 0x4ab2e7
push ecx
push edx
call fcn.004e9693
add esp, 8
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
call fcn.00463220
call fcn.004ee89f
push str.invalid_unordered_map_K__T__key
call fcn.004e72f1
int3