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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xac
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
lea esi, [ebp - 0x2c]
mov dword [esi - 4], eax
mov edi, dword [sym.imp.mozglue.dll_moz_xmalloc]
push 0x24
call edi
add esp, 4
mov ebx, eax
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi - 8], eax
mov eax, 0x3f800000
mov dword [esi - 0xc], eax
mov eax, 0x40
push eax
call edi
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], eax
mov ecx, 0x40
add eax, ecx
mov dword [esi + 8], eax
lea edi, [ebp - 0x58]
mov dword [edi], ebx
mov ecx, esi
mov edx, 0x10
push edi
call fcn.10032740
add esp, 4
mov eax, 7
mov dword [esi + 0xc], eax
mov eax, 8
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [edi + 8], eax
push 0x2c
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [edi + 4], eax
lea ebx, [ebp - 0x4c]
mov eax, 0x3f800000
mov dword [ebx - 0xc], eax
mov edi, 0x40
push edi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
add eax, edi
mov dword [ebx + 8], eax
lea eax, [ebp - 0x8c]
mov dword [eax], esi
mov ecx, ebx
mov edx, 0x10
push eax
call fcn.10032740
add esp, 4
mov eax, 7
mov dword [ebx + 0xc], eax
mov eax, 8
mov dword [ebx + 0x10], eax
mov eax, 0x102bc7a8
movzx edi, byte [eax]
mov ecx, dword [ebp + 0xc]
mov ebx, eax
mov eax, dword [ecx]
mov esi, dword [eax]
mov ecx, esi
call dword [section..00cfg]
mov ecx, dword [ebp + 0xc]
push edi
call esi
test eax, eax
jne 0x1006ecb5
inc ebx
cmp ebx, 0x102bc7ad
mov eax, ebx
jne 0x1006ec87
jmp 0x1006f547
mov dword [ebp - 0xb8], ebx
mov ecx, eax
mov esi, eax
call fcn.10078700
mov dword [ebp - 0xac], esi
mov eax, esi
add eax, 0x84
lea ecx, [ebp - 0x8c]
push eax
call fcn.10223850
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], ecx
cmp eax, ecx
jne 0x1006ed30
mov esi, dword [ebp - 0xac]
mov ecx, esi
call fcn.10078700
mov ebx, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0xb4], eax
cmp ebx, eax
jne 0x1006ef54
lea ecx, [ebp - 0x8c]
call fcn.10223bc0
mov ebx, dword [ebp - 0xb8]
jmp 0x1006eca5
lea ecx, [eax + 8]
cmp dword [eax + 0x1c], 0xf
mov esi, ecx
jbe 0x1006ed3e
mov esi, dword [eax + 8]
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x9c], eax
mov ebx, dword [eax + 0x18]
mov eax, 0x811c9dc5
test ebx, ebx
je 0x1006ed69
xor ecx, ecx
movzx edx, byte [esi + ecx]
xor edx, eax
imul eax, edx, 0x1000193
inc ecx
cmp ebx, ecx
jne 0x1006ed58
mov dword [ebp - 0xa0], esi
and eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x94], edx
mov edx, dword [edx + eax*8]
lea eax, [eax + eax + 1]
mov dword [ebp - 0x90], eax
mov edi, edx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xb0], edx
cmp ecx, edx
je 0x1006edb0
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x90]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
jmp 0x1006edb2
mov eax, edx
cmp edi, eax
je 0x1006ee10
cmp dword [edi + 0x18], ebx
jne 0x1006ede9
cmp dword [edi + 0x1c], 0xf
jbe 0x1006edc6
mov esi, dword [edi + 8]
jmp 0x1006edc9
lea esi, [edi + 8]
push ebx
push dword [ebp - 0xa0]
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xb0]
je 0x1006eded
mov edi, dword [edi]
jmp 0x1006ed99
push ebx
push esi
push dword [ebp - 0xa0]
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [ebp - 0xa8]
add esp, 0xc
test eax, eax
cmovne edi, ecx
cmp edi, ecx
jne 0x1006eeb7
mov ebx, dword [ecx]
mov esi, dword [ebx + 4]
push 0x24
call dword [sym.imp.mozglue.dll_moz_xmalloc]
mov ecx, esi
add esp, 4
mov esi, eax
test ebx, ebx
mov eax, ebx
cmove eax, esi
mov dword [esi], eax
mov dword [ebp - 0x94], ecx
mov eax, ecx
cmove eax, esi
mov dword [esi + 4], eax
xor eax, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x1c], 0xf
mov ecx, dword [ebp - 0x98]
jbe 0x1006ee58
mov ecx, dword [eax + 8]
lea edi, [esi + 8]
mov eax, dword [eax + 0x18]
mov edx, eax
cmp eax, 0xf
ja 0x1006eed6
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
mov eax, 0xf
mov edi, edx
mov ecx, dword [ebp - 0x94]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], 0
mov eax, dword [ebp - 0x30]
cmp eax, 0x71c71c6
je 0x1006fa68
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebx + 4], esi
mov dword [ecx], esi
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x6c]
push eax
add eax, 8
push eax
call fcn.10072630
add esp, 8
mov edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x9c]
mov dword [edi + 0x20], eax
add eax, 0xb4
cmp eax, dword [ebp - 0xa4]
jne 0x1006ed30
jmp 0x1006ecf3
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x98], ecx
mov edi, edx
mov ecx, edx
or ecx, 0xf
mov eax, 0x7fffffff
cmp ecx, eax
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [ebp - 0x90], ecx
jae 0x1006ef3a
lea eax, [ecx + 1]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, dword [ebp - 0xa0]
mov dword [ecx], eax
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x98]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x90]
jmp 0x1006ee78
lea eax, [ecx + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1006ef0e
cmp dword [ebx + 0x40], 0
je 0x1006ef6a
add ebx, 0x6c
cmp ebx, dword [ebp - 0xb4]
jne 0x1006ef54
jmp 0x1006ed1a
mov edi, dword [ebx + 0x60]
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0xac], eax
cmp edi, eax
je 0x1006ef5a
mov dword [ebp - 0x98], ebx
lea eax, [edi + 8]
cmp dword [edi + 0x1c], 0xf
mov dword [ebp - 0xa4], eax
mov esi, eax
jbe 0x1006ef94
mov esi, dword [edi + 8]
mov dword [ebp - 0x9c], edi
mov edi, dword [edi + 0x18]
mov eax, 0x811c9dc5
test edi, edi
je 0x1006efb9
xor ecx, ecx
movzx edx, byte [esi + ecx]
xor edx, eax
imul eax, edx, 0x1000193
inc ecx
cmp edi, ecx
jne 0x1006efa8
mov dword [ebp - 0xa8], esi
and eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x90], ecx
mov esi, dword [ecx + eax*8]
add eax, eax
inc eax
mov dword [ebp - 0xa0], eax
mov ebx, esi
cmp dword [ebp - 0x94], esi
je 0x1006effd
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
jmp 0x1006efff
mov eax, esi
cmp ebx, eax
je 0x1006f0e7
cmp dword [ebx + 0x18], edi
jne 0x1006f02e
cmp dword [ebx + 0x1c], 0xf
jbe 0x1006f017
mov eax, dword [ebx + 8]
jmp 0x1006f01a
lea eax, [ebx + 8]
push edi
push dword [ebp - 0xa8]
push eax
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006f032
mov ebx, dword [ebx]
jmp 0x1006efe2
mov edx, ebx
cmp dword [ebp - 0x94], esi
je 0x1006f04f
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
jmp 0x1006f051
mov eax, esi
cmp edx, eax
je 0x1006f08c
cmp edi, dword [edx + 0x18]
jne 0x1006f08c
cmp dword [edx + 0x1c], 0xf
mov dword [ebp - 0xb0], edx
jbe 0x1006f06b
mov eax, dword [edx + 8]
jmp 0x1006f06e
lea eax, [edx + 8]
push edi
push eax
push dword [ebp - 0xa8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
mov edx, dword [ebp - 0xb0]
jne 0x1006f08c
mov edx, dword [edx]
jmp 0x1006f034
cmp ebx, edx
je 0x1006f0e7
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x6c]
push dword [ebp - 0xa4]
call fcn.10072a60
add esp, 4
mov esi, dword [ebp - 0x6c]
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x20]
mov edi, eax
sar edi, 3
test eax, eax
je 0x1006f33f
js 0x1006fa5d
cmp edi, 0x200
jb 0x1006f350
add eax, 0x23
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x1006f35c
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x60], ebx
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x5c], edi
xor eax, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
lea esi, [ebp - 0x6c]
mov ecx, esi
xor edx, edx
lea eax, [ebp - 0x60]
push eax
call fcn.100728d0
add esp, 4
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x18]
push dword [ebp - 0xa4]
call fcn.10072a60
add esp, 4
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + 0x20]
cmp esi, eax
je 0x1006f305
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x94], esi
sub esi, edi
mov edx, esi
sar edx, 3
mov ebx, ecx
mov ecx, dword [ecx + 0x20]
mov eax, dword [ebx + 0x28]
sub eax, ecx
sar eax, 3
cmp edx, eax
mov dword [ebp - 0x90], ebx
jbe 0x1006f217
test esi, esi
js 0x1006fa5d
mov esi, eax
shr esi, 1
mov ebx, 0x1fffffff
sub ebx, esi
add esi, eax
cmp esi, edx
cmovb esi, edx
cmp eax, ebx
cmova esi, edx
test ecx, ecx
mov ebx, dword [ebp - 0x98]
je 0x1006f1b4
test eax, 0x1ffffe00
je 0x1006f1aa
mov eax, dword [ecx - 4]
sub ecx, eax
add ecx, 0xfffffffc
cmp ecx, 0x20
jae 0x1006fa62
mov ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x28], eax
test esi, esi
je 0x1006f2e0
cmp esi, 0x20000000
jae 0x1006fa5d
lea eax, [esi*8]
cmp esi, 0x200
jb 0x1006f2c2
add eax, 0x23
cmp esi, 0x1ffffffc
mov ecx, 0xffffffff
cmovae eax, ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1006f2cc
mov eax, dword [ebx + 0x24]
mov ebx, eax
sub ebx, ecx
mov esi, ebx
sar esi, 3
cmp edx, esi
jbe 0x1006f283
lea edx, [edi + esi*8]
test ebx, ebx
mov ebx, dword [ebp - 0x98]
je 0x1006f25f
xor eax, eax
lea esi, [edi + eax]
add esi, 8
mov ebx, dword [esi - 8]
mov dword [ecx + eax], ebx
mov ebx, dword [esi - 4]
mov dword [ecx + eax + 4], ebx
add eax, 8
cmp esi, edx
jne 0x1006f236
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x24]
mov ebx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x94]
cmp edx, esi
je 0x1006f2ba
mov ecx, dword [ebp - 0x90]
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
add eax, 8
add edx, 8
cmp esi, edx
jne 0x1006f26f
jmp 0x1006f2fc
lea eax, [ecx + edx*8]
cmp edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x98]
je 0x1006f2ba
xor edx, edx
lea esi, [edi + edx]
add esi, 8
mov ebx, dword [esi - 8]
mov dword [ecx + edx], ebx
mov ebx, dword [esi - 4]
mov dword [ecx + edx + 4], ebx
add edx, 8
cmp esi, dword [ebp - 0x94]
jne 0x1006f296
mov ebx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x90]
jmp 0x1006f2fc
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edx, dword [ebp - 0x90]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], eax
lea ecx, [eax + esi*8]
mov dword [edx + 0x28], ecx
mov ecx, edx
mov edx, dword [ebp - 0x94]
cmp edi, edx
je 0x1006f2fc
movsd xmm0, qword [edi]
movsd qword [eax], xmm0
add eax, 8
add edi, 8
cmp edx, edi
jne 0x1006f2ea
mov dword [ecx + 0x24], eax
mov edi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x1006f4ce
mov ecx, dword [ebp - 0x64]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1006f330
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x1006f4ce
mov dword [ebp - 0x94], 0
xor esi, esi
jmp 0x1006f43d
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
lea eax, [ecx + edi*8]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
cmp eax, ecx
je 0x1006f435
sub ecx, eax
xor edx, edx
mov esi, dword [ebp - 0x90]
movsd xmm0, qword [eax + edx]
movsd qword [esi + edx], xmm0
add edx, 8
cmp ecx, edx
jne 0x1006f389
test edx, edx
je 0x1006f43d
lea edi, [esi + edx]
add edi, 0xfffffff8
mov ebx, esi
mov esi, dword [ebx + 4]
mov ecx, dword [ebp - 0x98]
push dword [ebx]
call fcn.10276ce0
test al, al
jne 0x1006f422
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x9c]
cmp dword [ecx + 0x18], eax
jne 0x1006f422
mov ecx, dword [ebp - 0x9c]
cmp dword [ecx + 0x1c], 0xf
mov ecx, dword [ebp - 0xa4]
jbe 0x1006f3e7
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx + 8]
cmp dword [esi + 0x1c], 0xf
jbe 0x1006f3f2
mov edx, dword [esi + 8]
jmp 0x1006f3f5
lea edx, [esi + 8]
push eax
push edx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x1006f422
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x1006f422
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 4]
je 0x1006f4e5
lea eax, [ebx + 8]
cmp edi, ebx
mov ebx, eax
jne 0x1006f3aa
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x90]
jmp 0x1006f443
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x18], edx
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x14], edi
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x6c]
push dword [ebp - 0xa4]
call fcn.10072a60
add esp, 4
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x28]
cmp edx, eax
je 0x1006f47f
movsd xmm0, qword [ebp - 0x18]
movsd qword [eax], xmm0
add dword [ecx + 0x24], 8
jmp 0x1006f48e
add ecx, 0x20
lea eax, [ebp - 0x18]
push eax
call fcn.100728d0
add esp, 4
mov bl, 1
test esi, esi
je 0x1006f4c0
mov eax, dword [ebp - 0x94]
sub eax, esi
cmp eax, 0x1000
jb 0x1006f4b6
mov eax, dword [esi - 4]
sub esi, eax
add esi, 0xfffffffc
cmp esi, 0x20
jae 0x1006fa62
mov esi, eax
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
test bl, bl
mov ebx, dword [ebp - 0x98]
je 0x1006f70e
add edi, 0xb4
cmp edi, dword [ebp - 0xac]
jne 0x1006ef80
jmp 0x1006ef5a
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.10057bc0
mov eax, dword [esi]
mov dword [ebp - 0x6c], eax
add eax, 0x10
push str.Name_conflicts_between_uniform_block_field_names:
push eax
call fcn.10003890
add esp, 8
mov eax, dword [ebp - 0x6c]
add eax, 0x10
mov edi, dword [ebp - 0x9c]
cmp dword [edi + 0x1c], 0xf
jbe 0x1006f520
mov ecx, dword [edi + 8]
mov dword [ebp - 0xa4], ecx
push dword [edi + 0x18]
push dword [ebp - 0xa4]
push eax
call fcn.10004880
add esp, 0xc
lea ecx, [ebp - 0x6c]
call fcn.1001b330
xor ebx, ebx
mov esi, dword [ebp - 0x90]
jmp 0x1006f490
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [section..00cfg]
mov ecx, edi
push 0
call esi
test eax, eax
jne 0x1006f8dc
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xac], eax
and eax, 0x811c9dc5
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebx]
cmp ebx, dword [ebp - 0x98]
je 0x1006f725
lea eax, [ebx + 8]
cmp dword [ebx + 0x1c], 0xf
mov dword [ebp - 0xa4], eax
mov esi, eax
jbe 0x1006f5b5
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
test edi, edi
mov dword [ebp - 0x9c], ebx
je 0x1006f5e2
mov eax, 0x811c9dc5
xor ecx, ecx
movzx edx, byte [esi + ecx]
xor edx, eax
imul eax, edx, 0x1000193
inc ecx
cmp edi, ecx
jne 0x1006f5c9
and eax, dword [ebp - 0xac]
jmp 0x1006f5e8
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xa0]
mov ebx, dword [ecx + eax*8]
add eax, eax
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], ebx
mov ecx, dword [ebp - 0x90]
mov eax, ecx
cmp ecx, dword [ebp - 0x94]
je 0x1006f621
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp ebx, eax
je 0x1006f6ab
cmp dword [ebx + 0x18], edi
jne 0x1006f64b
cmp dword [ebx + 0x1c], 0xf
jbe 0x1006f639
mov eax, dword [ebx + 8]
jmp 0x1006f63c
lea eax, [ebx + 8]
push edi
push esi
push eax
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006f64f
mov ebx, dword [ebx]
jmp 0x1006f600
mov dword [ebp - 0xb0], esi
mov esi, ebx
mov ecx, dword [ebp - 0x90]
mov eax, ecx
cmp ecx, dword [ebp - 0x94]
je 0x1006f678
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp esi, eax
je 0x1006f6a7
cmp edi, dword [esi + 0x18]
jne 0x1006f6a7
cmp dword [esi + 0x1c], 0xf
jbe 0x1006f68c
mov eax, dword [esi + 8]
jmp 0x1006f68f
lea eax, [esi + 8]
push edi
push eax
push dword [ebp - 0xb0]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x1006f6a7
mov esi, dword [esi]
jmp 0x1006f657
cmp ebx, esi
jne 0x1006f6b3
mov ebx, dword [ebp - 0x90]
mov esi, ebx
cmp ebx, esi
mov ebx, dword [ebp - 0x9c]
je 0x1006f593
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [ebp - 0x8c], esi
add esi, 0x10
push str.Name_conflicts_between_a_uniform_and_a_uniform_block_field:
push esi
call fcn.10003890
add esp, 8
mov eax, dword [ebx + 0x18]
cmp dword [ebx + 0x1c], 0xf
mov ecx, dword [ebp - 0xa4]
jbe 0x1006f6f6
mov ecx, dword [ebx + 8]
push eax
push ecx
push esi
call fcn.10004880
add esp, 0xc
lea ecx, [ebp - 0x8c]
call fcn.1001b330
jmp 0x1006f719
lea ecx, [ebp - 0x8c]
call fcn.10223bc0
mov dword [ebp - 0x94], 0
jmp 0x1006f72d
mov al, 1
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x1006f769
mov ecx, dword [ebp - 0x44]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1006f754
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
mov esi, dword [eax]
mov dword [eax], eax
mov eax, dword [ebp - 0x54]
mov dword [eax + 4], eax
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x54]
cmp esi, eax
je 0x1006f80e
xor edi, edi
mov ebx, dword [esi]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x1006f7c6
mov ecx, dword [esi + 0x28]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1006f7b3
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov ecx, dword [esi + 0x1c]
cmp ecx, 0x10
jb 0x1006f7e4
mov eax, dword [esi + 8]
inc ecx
cmp ecx, 0x1000
jae 0x1006f7f9
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [ebp - 0x54]
mov esi, ebx
cmp ebx, eax
jne 0x1006f78a
jmp 0x1006f80e
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
jmp 0x1006f7da
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x1006f854
mov ecx, dword [ebp - 0x24]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1006f83f
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
mov esi, dword [eax]
mov dword [eax], eax
mov eax, dword [ebp - 0x34]
mov dword [eax + 4], eax
mov dword [ebp - 0x30], 0
cmp esi, dword [ebp - 0x34]
je 0x1006f8b5
mov edi, dword [esi]
mov ecx, dword [esi + 0x1c]
cmp ecx, 0x10
jb 0x1006f88d
mov eax, dword [esi + 8]
inc ecx
cmp ecx, 0x1000
jae 0x1006f8a0
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov esi, edi
cmp edi, dword [ebp - 0x34]
jne 0x1006f86d
jmp 0x1006f8b7
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
jmp 0x1006f883
mov edi, esi
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
mov eax, dword [ebp - 0x94]
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, eax
xor edi, edi
lea ebx, [ebp - 0x88]
mov dword [ebx - 4], edi
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov ecx, ebx
push 1
call fcn.10224c50
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebx], eax
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], edi
mov dword [ebx - 4], 0x3f800000
lea ecx, [ebp - 0x8c]
push 8
call fcn.10224750
mov ecx, esi
call fcn.10078700
mov edi, dword [esi + 0x84]
mov ebx, dword [esi + 0x88]
cmp edi, ebx
je 0x1006f951
lea eax, [edi + 8]
lea ecx, [ebp - 0x8c]
lea edx, [ebp - 0x6c]
push eax
call fcn.102249b0
add esp, 4
add edi, 0xb4
cmp ebx, edi
jne 0x1006f932
mov ecx, esi
call fcn.10078700
mov edi, dword [esi + 0xb4]
mov esi, dword [esi + 0xb8]
mov bl, 1
cmp edi, esi
je 0x1006f9da
lea ebx, [edi + 8]
lea ecx, [ebp - 0x8c]
push ebx
lea eax, [ebp - 0x6c]
push eax
call fcn.102a7660
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x68]
jne 0x1006f993
add edi, 0xb4
cmp esi, edi
jne 0x1006f96a
mov bl, 1
jmp 0x1006f9da
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.10057bc0
mov eax, dword [esi]
mov dword [ebp - 0x6c], eax
add eax, 0x10
push str.Name_conflicts_between_a_uniform_and_an_attribute:
push eax
call fcn.10003890
add esp, 8
mov eax, dword [ebp - 0x6c]
add eax, 0x10
mov ecx, dword [edi + 0x18]
cmp dword [edi + 0x1c], 0xf
jbe 0x1006f9c5
mov ebx, dword [edi + 8]
push ecx
push ebx
push eax
call fcn.10004880
add esp, 0xc
lea ecx, [ebp - 0x6c]
call fcn.1001b330
xor ebx, ebx
lea esi, [ebp - 0x80]
mov ecx, esi
call fcn.1022ab00
mov eax, dword [esi - 8]
mov edi, dword [eax]
mov dword [eax], eax
mov eax, dword [esi - 8]
mov dword [eax + 4], eax
mov dword [esi - 4], 0
cmp edi, dword [esi - 8]
je 0x1006fa44
mov esi, dword [edi]
mov ecx, dword [edi + 0x1c]
cmp ecx, 0x10
jb 0x1006fa1d
mov eax, dword [edi + 8]
inc ecx
cmp ecx, 0x1000
jae 0x1006fa33
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov edi, esi
cmp esi, dword [ebp - 0x88]
jne 0x1006f9fd
jmp 0x1006fa46
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1006fa62
mov eax, ecx
jmp 0x1006fa13
mov esi, edi
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
test bl, bl
jne 0x1006f564
jmp 0x1006f719
call fcn.10005d40
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push str.list_T__too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
int3