Function at 0x1013b1a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov ebx, ecx
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x44]
push edi
mov dword [esp + 0x2c], ebx
call fcn.10153690
lea esi, [ebx + 0xd4]
mov dword [esp + 0x10], esi
cmp esi, eax
je 0x1013b1dc
push dword [esp + 0x40]
mov ecx, esi
push dword [eax + 4]
push dword [eax]
call fcn.1012e210
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 4]
sub ecx, dword [esi]
mov eax, dword [eax + 0x10]
mov ebp, dword [eax + 0x130]
mov eax, 0x4ec4ec4f
imul ecx
mov dword [esp + 0x14], ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ebp
jbe 0x1013b239
mov esi, dword [esp + 0x40]
push str.Too_many_vertex_attributes.
lea edi, [esi + 0x10]
push edi
call fcn.10025310
add esp, 8
test esi, esi
je 0x1013b22d
push 0x10029bb0
mov ecx, edi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x28
ret 0x10
xor eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], eax
test ebp, ebp
je 0x1013b2e9
cmp ebp, 0x3fffffff
ja 0x1013b5d7
lea esi, [ebp*4]
cmp esi, 0x1000
jb 0x1013b29a
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x1013b5dc
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
test eax, eax
je 0x1013b5d1
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov dword [edx - 4], eax
jmp 0x1013b2ae
test esi, esi
je 0x1013b2ac
push esi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edx, eax
jmp 0x1013b2ae
xor edx, edx
lea eax, [esi + edx]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x20]
lea eax, [esp + 0x48]
mov dword [esp + 0x3c], edx
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x1013b2dd
push esi
push 0
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x1013b2e5
mov ecx, ebp
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov ebx, dword [esi]
mov dword [esp + 0x28], eax
cmp ebx, eax
je 0x1013b4a8
mov eax, dword [esp + 0x44]
lea esi, [ebx + 8]
lea edi, [eax + 4]
mov dword [esp + 0x48], edi
mov dword [esp + 0x24], edi
nop dword [eax]
cmp dword [esi + 0x14], 0x10
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x20], edi
mov edi, esi
jb 0x1013b321
mov edi, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebp, ebp
je 0x1013b345
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebp
jb 0x1013b330
mov eax, dword [esp + 0x44]
push edx
push esi
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.1012ede0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1013b375
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x20]
mov edi, edx
mov dword [esp + 0x48], edx
cmp ecx, dword [eax]
je 0x1013b37d
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x48], edi
jmp 0x1013b380
mov edi, dword [esp + 0x24]
mov dword [esp + 0x48], edi
or eax, 0xffffffff
cmp dword [esi + 0x5c], 0xffffffff
jne 0x1013b38e
cmp eax, 0xffffffff
je 0x1013b3d8
mov dword [esi + 0x5c], eax
push dword [ebx]
call fcn.1002ed60
mov ecx, dword [esi + 0x5c]
mov edx, eax
mov ebp, dword [esp + 0x18]
add ecx, edx
add esp, 4
cmp ecx, ebp
ja 0x1013b445
xor ecx, ecx
test edx, edx
jle 0x1013b3dc
mov edi, dword [esi + 0x5c]
mov eax, dword [esp + 0x3c]
add edi, ecx
mov ebp, dword [eax + edi*4]
test ebp, ebp
jne 0x1013b3f5
mov dword [eax + edi*4], ebx
inc ecx
mov eax, dword [esp + 0x18]
bts eax, edi
mov dword [esp + 0x18], eax
cmp ecx, edx
jl 0x1013b3b1
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x14]
add ebx, 0x68
add esi, 0x68
cmp ebx, dword [esp + 0x28]
je 0x1013b4a4
mov eax, dword [esp + 0x44]
jmp 0x1013b310
mov esi, dword [esp + 0x40]
push str.Attribute_
lea eax, [esi + 0x10]
push eax
call fcn.10025310
lea eax, [ebx + 8]
push eax
lea ebx, [esi + 0x10]
push ebx
call fcn.100251e0
push str._aliases_attribute_
push ebx
call fcn.10025310
lea eax, [ebp + 8]
push eax
push ebx
call fcn.100251e0
push str._at_location
push ebx
call fcn.10025310
add esp, 0x28
mov ecx, ebx
push edi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
jmp 0x1013b5bc
mov esi, dword [esp + 0x40]
push str.Active_attribute__
lea edi, [esi + 0x10]
push edi
call fcn.10025310
lea eax, [ebx + 8]
push eax
push edi
call fcn.100251e0
push str.__at_location
push edi
call fcn.10025310
add esp, 0x18
mov ecx, edi
push dword [ebx + 0x64]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push str._is_too_big_to_fit
push edi
call fcn.10025310
add esp, 8
test esi, esi
je 0x1013b5cd
mov ecx, edi
push 0x10029bb0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
xor bl, bl
jmp 0x1013b551
mov esi, dword [esp + 0x10]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
cmp edi, ebx
je 0x1013b4f1
cmp dword [edi + 0x64], 0xffffffff
jne 0x1013b4e6
push dword [edi]
call fcn.1002ed60
mov esi, eax
lea eax, [esp + 0x1c]
push ebp
push esi
push eax
call fcn.1002dcc0
add esp, 0x10
cmp eax, 0xffffffff
je 0x1013b592
lea ecx, [eax + esi]
cmp ecx, ebp
ja 0x1013b592
mov dword [edi + 0x64], eax
add edi, 0x68
cmp edi, ebx
jne 0x1013b4b1
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov dword [esp + 0x40], eax
cmp edi, eax
je 0x1013b54f
nop
push dword [edi]
call fcn.1002ed60
mov ebx, eax
add esp, 4
xor esi, esi
test ebx, ebx
jle 0x1013b546
mov ebp, dword [esp + 0x2c]
mov ecx, dword [edi + 0x64]
add ecx, esi
cmp ecx, 0x10
jae 0x1013b5e1
mov eax, ecx
inc esi
shr eax, 5
and ecx, 0x1f
lea edx, [eax*4]
mov eax, 1
shl eax, cl
or dword [edx + ebp + 0xe0], eax
cmp esi, ebx
jl 0x1013b516
add edi, 0x68
cmp edi, dword [esp + 0x40]
jne 0x1013b500
mov bl, 1
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1013b586
mov edx, dword [esp + 0x1c]
sub edx, eax
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x1013b57c
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1013b5d1
mov eax, ecx
push edx
push eax
call fcn.10174919
add esp, 8
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x28
ret 0x10
mov esi, dword [esp + 0x40]
push str.Too_many_active_attributes__
lea ebx, [esi + 0x10]
push ebx
call fcn.10025310
lea eax, [edi + 8]
push eax
push ebx
call fcn.100251e0
push 0x10181080
push ebx
call fcn.10025310
add esp, 0x18
test esi, esi
je 0x1013b5cd
mov ecx, ebx
push 0x10029bb0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
xor bl, bl
jmp 0x1013b551
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.1001b2f0
call fcn.1001b2b0
lea ecx, [ebp + 0xe0]
call fcn.1004c9e0
int3