Function at 0x100949a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb4
mov dword [ebp - 0xa8], ecx
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ebx, dword [edx]
xor ecx, ecx
mov edi, 0
test ebx, ebx
mov eax, dword [edx + 4]
mov esi, ebx
cmove esi, eax
je 0x100949db
imul edi, dword [ebp + 0xc], 0xb4
add edi, dword [ebx + 0x48]
mov dword [ebp - 0xb4], ebx
test eax, eax
mov ebx, dword [ebp + 0xc]
je 0x100949f1
imul ecx, ebx, 0xb4
add ecx, dword [eax + 0x48]
mov dword [ebp - 0xb0], eax
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xffffffff
je 0x10094a2a
mov eax, 0
test edi, edi
je 0x10094a11
imul eax, ebx, 0xb4
add eax, dword [edi + 0x48]
mov edi, eax
test ecx, ecx
mov dword [ebp - 0xa4], eax
je 0x10094a34
mov eax, ecx
imul ecx, ebx, 0xb4
add ecx, dword [eax + 0x48]
jmp 0x10094a30
mov dword [ebp - 0xa4], edi
mov eax, ecx
jmp 0x10094a36
xor eax, eax
mov ecx, dword [esi + 0xa8]
mov dword [ebp - 0xb8], ecx
xor ecx, ecx
mov bl, byte [edx + 8]
lea edi, [ebp - 0x40]
mov esi, dword [ebp - 0xa4]
mov dword [edi - 8], esi
mov byte [edi - 4], bl
mov dword [edi], ecx
mov dword [edi + 0x10], ecx
mov esi, 0xf
mov dword [edi + 0x14], esi
mov byte [edi], cl
lea ebx, [ebp - 0x28]
mov dword [ebx], ecx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], esi
mov byte [ebx], cl
mov dword [ebp - 0xbc], edx
mov bl, byte [edx + 9]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x80], eax
mov byte [ebp - 0x7c], bl
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], esi
mov byte [ebp - 0x78], cl
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
mov byte [ebp - 0x60], cl
mov edi, dword [ebp - 0xb4]
test edi, edi
je 0x10094d36
mov eax, dword [ebp - 0xa4]
cmp byte [eax + 0xad], 0
je 0x10094b24
lea ebx, [edi + 0x54]
lea eax, [ebp - 0x40]
cmp eax, ebx
je 0x10094be8
mov esi, dword [edi + 0x64]
cmp dword [edi + 0x68], 0x10
jb 0x10094ad6
mov ebx, dword [edi + 0x54]
cmp esi, 0xf
jbe 0x10094b88
test esi, esi
js 0x100959fe
mov eax, esi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [ebp - 0xa4], ecx
jb 0x10094bb5
lea eax, [ecx + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10094bc4
lea ebx, [edi + 8]
lea eax, [ebp - 0x40]
cmp eax, ebx
je 0x10094c3a
mov esi, dword [edi + 0x18]
cmp dword [edi + 0x1c], 0x10
jb 0x10094b3e
mov ebx, dword [edi + 8]
cmp esi, 0xf
jbe 0x10094b9d
test esi, esi
js 0x100959fe
mov eax, esi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [ebp - 0xa4], ecx
jb 0x10094c07
lea eax, [ecx + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10094c16
mov dword [ebp - 0x30], esi
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebp + esi - 0x40], 0
jmp 0x10094be8
mov dword [ebp - 0x30], esi
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebp + esi - 0x40], 0
jmp 0x10094c3a
lea eax, [ecx + 1]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x2c], eax
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0xb4]
lea edx, [edi + 0x6c]
lea eax, [ebp - 0x28]
cmp eax, edx
je 0x10094d36
mov esi, dword [edi + 0x7c]
cmp dword [edi + 0x80], 0x10
jb 0x10094c54
mov edx, dword [edi + 0x6c]
jmp 0x10094c54
lea eax, [ecx + 1]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x2c], eax
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0xb4]
lea edx, [edi + 0x20]
lea eax, [ebp - 0x28]
cmp eax, edx
je 0x10094d36
mov esi, dword [edi + 0x30]
cmp dword [edi + 0x34], 0x10
jb 0x10094c54
mov edx, dword [edi + 0x20]
mov edi, dword [ebp - 0x14]
cmp edi, esi
jae 0x10094cb9
test esi, esi
js 0x100959fe
mov eax, edi
shr eax, 1
mov ecx, eax
xor ecx, 0x7fffffff
mov ebx, 0x7fffffff
cmp ecx, edi
mov dword [ebp - 0xa4], edx
jb 0x10094c9f
mov ecx, esi
or ecx, 0xf
add eax, edi
cmp ecx, eax
mov ebx, eax
cmova ebx, ecx
lea eax, [ebx + 1]
cmp eax, 0x1000
jb 0x10094cd8
cmp eax, 0xffffffdd
jae 0x10095a03
lea eax, [ebx + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, ebx
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10094ce6
lea ebx, [ebp - 0x28]
cmp edi, 0x10
jb 0x10094cc4
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x18], esi
push esi
push edx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10094d36
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, ebx
mov ebx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ecx
push esi
push dword [ebp - 0xa4]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + esi], 0
cmp edi, 0x10
jb 0x10094d33
mov eax, dword [ebp - 0x28]
add edi, 0xfffff001
cmp edi, 0xffffefff
ja 0x10094d29
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x28], ebx
lea edi, [ebp - 0x60]
mov eax, dword [ebp - 0xb0]
test eax, eax
mov edx, dword [ebp - 0xa8]
je 0x10095102
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0xad], 0
je 0x10094df5
lea ebx, [eax + 0x54]
lea ecx, [ebp - 0x78]
cmp ecx, ebx
je 0x10094f62
mov esi, dword [eax + 0x64]
cmp dword [eax + 0x68], 0x10
jb 0x10094d7a
mov ebx, dword [eax + 0x54]
mov edi, dword [ebp - 0x64]
cmp edi, esi
jae 0x10094e8a
test esi, esi
js 0x100959fe
mov eax, edi
shr eax, 1
mov ecx, eax
xor ecx, 0x7fffffff
mov dword [ebp - 0xa4], 0x7fffffff
cmp ecx, edi
mov dword [ebp - 0xac], edi
jb 0x10094dd4
mov ecx, esi
or ecx, 0xf
add eax, edi
cmp ecx, eax
cmova eax, ecx
mov dword [ebp - 0xa4], eax
inc eax
cmp eax, 0x1000
jb 0x10094ef0
cmp eax, 0xffffffdd
jae 0x10095a03
mov eax, dword [ebp - 0xa4]
add eax, 0x24
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10094efc
lea ebx, [eax + 8]
lea ecx, [ebp - 0x78]
cmp ecx, ebx
je 0x10094ff7
mov esi, dword [eax + 0x18]
cmp dword [eax + 0x1c], 0x10
jb 0x10094e0f
mov ebx, dword [eax + 8]
mov edi, dword [ebp - 0x64]
cmp edi, esi
jae 0x10094ebd
test esi, esi
js 0x100959fe
mov eax, edi
shr eax, 1
mov ecx, eax
xor ecx, 0x7fffffff
mov dword [ebp - 0xa4], 0x7fffffff
cmp ecx, edi
mov dword [ebp - 0xac], edi
jb 0x10094e69
mov ecx, esi
or ecx, 0xf
add eax, edi
cmp ecx, eax
cmova eax, ecx
mov dword [ebp - 0xa4], eax
inc eax
cmp eax, 0x1000
jb 0x10094f85
cmp eax, 0xffffffdd
jae 0x10095a03
mov eax, dword [ebp - 0xa4]
add eax, 0x24
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10094f91
mov eax, ebx
lea ebx, [ebp - 0x78]
cmp edi, 0x10
jb 0x10094e97
mov ebx, dword [ebp - 0x78]
mov dword [ebp - 0x68], esi
push esi
push eax
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xb0]
lea edi, [ebp - 0x60]
jmp 0x10094f62
mov eax, ebx
lea ebx, [ebp - 0x78]
cmp edi, 0x10
jb 0x10094eca
mov ebx, dword [ebp - 0x78]
mov dword [ebp - 0x68], esi
push esi
push eax
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xb0]
lea edi, [ebp - 0x60]
jmp 0x10094ff7
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov dword [ebp - 0x68], esi
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x64], eax
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov ecx, dword [ebp - 0xac]
cmp ecx, 0x10
jb 0x10094f50
mov eax, dword [ebp - 0x78]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x10094f46
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0xb0]
lea edi, [ebp - 0x60]
mov edx, dword [ebp - 0xa8]
lea ecx, [eax + 0x6c]
cmp edi, ecx
je 0x10095102
mov esi, dword [eax + 0x7c]
cmp dword [eax + 0x80], 0x10
jb 0x1009500e
mov ecx, dword [eax + 0x6c]
jmp 0x1009500e
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov dword [ebp - 0x68], esi
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x64], eax
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov ecx, dword [ebp - 0xac]
cmp ecx, 0x10
jb 0x10094fe5
mov eax, dword [ebp - 0x78]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x10094fdb
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0xb0]
lea edi, [ebp - 0x60]
mov edx, dword [ebp - 0xa8]
lea ecx, [eax + 0x20]
cmp edi, ecx
je 0x10095102
mov esi, dword [eax + 0x30]
cmp dword [eax + 0x34], 0x10
jb 0x1009500e
mov ecx, dword [eax + 0x20]
mov edi, dword [ebp - 0x4c]
cmp edi, esi
jae 0x10095073
mov dword [ebp - 0xa4], ecx
test esi, esi
js 0x100959fe
mov eax, edi
shr eax, 1
mov ecx, eax
xor ecx, 0x7fffffff
mov ebx, 0x7fffffff
cmp ecx, edi
jb 0x10095059
mov ecx, esi
or ecx, 0xf
add eax, edi
cmp ecx, eax
mov ebx, eax
cmova ebx, ecx
lea eax, [ebx + 1]
cmp eax, 0x1000
jb 0x1009509b
cmp eax, 0xffffffdd
jae 0x10095a03
lea eax, [ebx + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, ebx
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x100950a9
lea ebx, [ebp - 0x60]
cmp edi, 0x10
jb 0x1009507e
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x50], esi
push esi
push ecx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
mov edx, dword [ebp - 0xa8]
lea edi, [ebp - 0x60]
jmp 0x10095102
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, ebx
mov ebx, eax
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], ecx
push esi
push dword [ebp - 0xa4]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + esi], 0
cmp edi, 0x10
jb 0x100950f6
mov eax, dword [ebp - 0x60]
add edi, 0xfffff001
cmp edi, 0xffffefff
ja 0x100950ec
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x60], ebx
lea edi, [ebp - 0x60]
mov edx, dword [ebp - 0xa8]
xor eax, eax
mov esi, dword [ebp + 0x10]
cmp esi, 0xffffffff
cmove esi, eax
mov ebx, dword [edx + 0x1c]
cmp ebx, dword [edx + 0x20]
je 0x100951f4
mov ecx, dword [ebp - 0x48]
mov dword [ebx], ecx
mov cl, byte [ebp - 0x44]
mov byte [ebx + 4], cl
mov dword [ebx + 8], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
lea ecx, [ebp - 0x40]
movups xmm0, xmmword [ecx]
movups xmmword [ebx + 8], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [ebx + 0x18], xmm0
mov dword [ebp - 0x30], eax
mov ecx, 0xf
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x40], al
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], eax
mov ecx, edx
lea edx, [ebp - 0x28]
movsd xmm0, qword [edx + 0x10]
movsd qword [ebx + 0x30], xmm0
movups xmm0, xmmword [edx]
movups xmmword [ebx + 0x20], xmm0
mov dword [ebp - 0x18], eax
mov edx, 0xf
mov dword [ebp - 0x14], edx
mov byte [ebp - 0x28], al
mov edx, dword [ebp - 0x80]
mov dword [ebx + 0x38], edx
mov dl, byte [ebp - 0x7c]
mov byte [ebx + 0x3c], dl
lea edx, [ebp - 0x78]
movups xmm0, xmmword [edx]
movups xmmword [ebx + 0x40], xmm0
movsd xmm0, qword [edx + 0x10]
mov edx, ecx
movsd qword [ebx + 0x50], xmm0
mov dword [ebp - 0x68], eax
mov ecx, 0xf
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x78], al
movsd xmm0, qword [edi + 0x10]
movsd qword [ebx + 0x68], xmm0
movups xmm0, xmmword [edi]
movups xmmword [ebx + 0x58], xmm0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 0x60], al
mov ecx, dword [ebp - 0xb8]
mov dword [ebx + 0x70], ecx
mov ecx, dword [ebp + 8]
mov dword [ebx + 0x74], ecx
mov byte [ebx + 0x78], al
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x7c], eax
mov dword [ebx + 0x80], esi
mov ecx, 0x84
add ecx, dword [edx + 0x1c]
mov dword [edx + 0x1c], ecx
jmp 0x100957e0
mov dword [ebp - 0xa4], esi
mov eax, ebx
sub eax, dword [edx + 0x18]
sar eax, 2
imul esi, eax, 0x3e0f83e1
lea edi, [esi + 1]
mov eax, esi
shr eax, 1
mov ecx, 0x1f07c1f
sub ecx, eax
add eax, esi
cmp eax, edi
cmovbe eax, edi
cmp esi, ecx
mov ecx, 0x1f07c1f
cmova eax, ecx
cmp eax, 0x1f07c20
jae 0x10095a03
mov ecx, eax
shl ecx, 7
lea ecx, [ecx + eax*4]
cmp eax, 0x20
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xc0], ecx
jb 0x1009526e
cmp eax, 0x1f07c1f
jae 0x10095a03
lea eax, [ecx + 0x23]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x1009527a
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov eax, esi
shl eax, 7
lea esi, [eax + esi*4]
mov eax, dword [ebp - 0x48]
mov dword [edi + esi], eax
mov al, byte [ebp - 0x44]
mov byte [edi + esi + 4], al
xor eax, eax
mov dword [edi + esi + 8], eax
mov dword [edi + esi + 0x18], eax
mov dword [edi + esi + 0x1c], eax
lea ecx, [ebp - 0x40]
movups xmm0, xmmword [ecx]
movups xmmword [edi + esi + 8], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + esi + 0x18], xmm0
mov dword [ebp - 0x30], eax
mov ecx, 0xf
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x40], al
mov dword [edi + esi + 0x20], eax
mov dword [edi + esi + 0x30], eax
mov dword [edi + esi + 0x34], eax
lea edx, [ebp - 0x28]
movsd xmm0, qword [edx + 0x10]
movsd qword [edi + esi + 0x30], xmm0
movups xmm0, xmmword [edx]
movups xmmword [edi + esi + 0x20], xmm0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0x28], al
mov edx, dword [ebp - 0x80]
mov dword [edi + esi + 0x38], edx
mov dl, byte [ebp - 0x7c]
mov byte [edi + esi + 0x3c], dl
mov dword [edi + esi + 0x40], eax
mov dword [edi + esi + 0x50], eax
mov dword [edi + esi + 0x54], eax
lea edx, [ebp - 0x78]
movups xmm0, xmmword [edx]
movups xmmword [edi + esi + 0x40], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [edi + esi + 0x50], xmm0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x78], al
mov dword [edi + esi + 0x58], eax
mov dword [edi + esi + 0x68], eax
mov dword [edi + esi + 0x6c], eax
lea edx, [ebp - 0x60]
movsd xmm0, qword [edx + 0x10]
movsd qword [edi + esi + 0x68], xmm0
movups xmm0, xmmword [edx]
movups xmmword [edi + esi + 0x58], xmm0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 0x60], al
mov ecx, dword [ebp - 0xb8]
mov dword [edi + esi + 0x70], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + esi + 0x74], ecx
mov byte [edi + esi + 0x78], al
mov eax, dword [ebp + 0xc]
mov dword [edi + esi + 0x7c], eax
mov eax, dword [ebp - 0xa4]
mov dword [edi + esi + 0x80], eax
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
cmp ecx, ebx
je 0x10095625
mov dword [ebp - 0xb8], esi
cmp eax, ebx
je 0x100954da
mov dword [ebp - 0xa4], ebx
xor edx, edx
xor ecx, ecx
mov esi, dword [eax + ecx]
mov dword [edi + ecx], esi
mov bl, byte [eax + ecx + 4]
mov byte [edi + ecx + 4], bl
mov dword [edi + ecx + 8], edx
mov dword [edi + ecx + 0x18], edx
mov dword [edi + ecx + 0x1c], edx
movsd xmm0, qword [eax + ecx + 0x18]
movsd qword [edi + ecx + 0x18], xmm0
movups xmm0, xmmword [eax + ecx + 8]
movups xmmword [edi + ecx + 8], xmm0
mov dword [eax + ecx + 0x18], edx
mov esi, 0xf
mov dword [eax + ecx + 0x1c], esi
mov byte [eax + ecx + 8], dl
mov dword [edi + ecx + 0x20], edx
mov dword [edi + ecx + 0x30], edx
mov dword [edi + ecx + 0x34], edx
movsd xmm0, qword [eax + ecx + 0x30]
movsd qword [edi + ecx + 0x30], xmm0
movups xmm0, xmmword [eax + ecx + 0x20]
movups xmmword [edi + ecx + 0x20], xmm0
mov dword [eax + ecx + 0x30], edx
mov dword [eax + ecx + 0x34], esi
mov byte [eax + ecx + 0x20], dl
mov esi, dword [eax + ecx + 0x38]
mov dword [edi + ecx + 0x38], esi
mov bl, byte [eax + ecx + 0x3c]
mov byte [edi + ecx + 0x3c], bl
mov dword [edi + ecx + 0x40], edx
mov dword [edi + ecx + 0x50], edx
mov dword [edi + ecx + 0x54], edx
movsd xmm0, qword [eax + ecx + 0x50]
movsd qword [edi + ecx + 0x50], xmm0
movups xmm0, xmmword [eax + ecx + 0x40]
movups xmmword [edi + ecx + 0x40], xmm0
mov dword [eax + ecx + 0x50], edx
mov esi, 0xf
mov dword [eax + ecx + 0x54], esi
mov byte [eax + ecx + 0x40], dl
mov dword [edi + ecx + 0x58], edx
mov dword [edi + ecx + 0x68], edx
mov dword [edi + ecx + 0x6c], edx
movsd xmm0, qword [eax + ecx + 0x68]
movsd qword [edi + ecx + 0x68], xmm0
movups xmm0, xmmword [eax + ecx + 0x58]
movups xmmword [edi + ecx + 0x58], xmm0
mov dword [eax + ecx + 0x68], edx
mov dword [eax + ecx + 0x6c], esi
mov byte [eax + ecx + 0x58], dl
mov esi, dword [eax + ecx + 0x70]
mov dword [edi + ecx + 0x70], esi
mov esi, dword [eax + ecx + 0x74]
mov dword [edi + ecx + 0x74], esi
mov bl, byte [eax + ecx + 0x78]
mov byte [edi + ecx + 0x78], bl
mov esi, dword [eax + ecx + 0x7c]
mov dword [edi + ecx + 0x7c], esi
mov esi, dword [eax + ecx + 0x80]
mov dword [edi + ecx + 0x80], esi
lea esi, [eax + ecx]
mov ebx, 0x84
add ecx, ebx
add esi, ebx
cmp esi, dword [ebp - 0xa4]
jne 0x100953a5
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x1c]
mov ebx, dword [ebp - 0xa4]
cmp ecx, ebx
je 0x10095758
mov esi, ebx
mov ebx, ecx
mov eax, dword [ebp - 0xb8]
add eax, edi
add eax, 0x104
xor edx, edx
mov dword [ebp - 0xa4], ecx
mov ebx, dword [esi + edx]
mov dword [eax + edx - 0x80], ebx
mov bl, byte [esi + edx + 4]
mov byte [eax + edx - 0x7c], bl
xor ecx, ecx
mov dword [eax + edx - 0x78], ecx
mov dword [eax + edx - 0x68], ecx
mov dword [eax + edx - 0x64], ecx
movsd xmm0, qword [esi + edx + 0x18]
movsd qword [eax + edx - 0x68], xmm0
movups xmm0, xmmword [esi + edx + 8]
movups xmmword [eax + edx - 0x78], xmm0
mov dword [esi + edx + 0x18], ecx
mov ebx, 0xf
mov dword [esi + edx + 0x1c], ebx
mov byte [esi + edx + 8], cl
mov dword [eax + edx - 0x60], ecx
mov dword [eax + edx - 0x50], ecx
mov dword [eax + edx - 0x4c], ecx
movsd xmm0, qword [esi + edx + 0x30]
movsd qword [eax + edx - 0x50], xmm0
movups xmm0, xmmword [esi + edx + 0x20]
movups xmmword [eax + edx - 0x60], xmm0
mov dword [esi + edx + 0x30], ecx
mov dword [esi + edx + 0x34], ebx
mov byte [esi + edx + 0x20], cl
mov ebx, dword [esi + edx + 0x38]
mov dword [eax + edx - 0x48], ebx
mov bl, byte [esi + edx + 0x3c]
mov byte [eax + edx - 0x44], bl
mov dword [eax + edx - 0x40], ecx
mov dword [eax + edx - 0x30], ecx
mov dword [eax + edx - 0x2c], ecx
movsd xmm0, qword [esi + edx + 0x50]
movsd qword [eax + edx - 0x30], xmm0
movups xmm0, xmmword [esi + edx + 0x40]
movups xmmword [eax + edx - 0x40], xmm0
mov dword [esi + edx + 0x50], ecx
mov ebx, 0xf
mov dword [esi + edx + 0x54], ebx
mov byte [esi + edx + 0x40], cl
mov dword [eax + edx - 0x28], ecx
mov dword [eax + edx - 0x18], ecx
mov dword [eax + edx - 0x14], ecx
movsd xmm0, qword [esi + edx + 0x68]
movsd qword [eax + edx - 0x18], xmm0
movups xmm0, xmmword [esi + edx + 0x58]
movups xmmword [eax + edx - 0x28], xmm0
mov dword [esi + edx + 0x68], ecx
mov dword [esi + edx + 0x6c], ebx
mov byte [esi + edx + 0x58], cl
mov ebx, dword [esi + edx + 0x70]
mov dword [eax + edx - 0x10], ebx
mov ebx, dword [esi + edx + 0x74]
mov dword [eax + edx - 0xc], ebx
mov bl, byte [esi + edx + 0x78]
mov byte [eax + edx - 8], bl
mov ebx, dword [esi + edx + 0x7c]
mov dword [eax + edx - 4], ebx
mov ebx, dword [esi + edx + 0x80]
mov dword [eax + edx], ebx
lea ebx, [esi + edx]
mov ecx, 0x84
add edx, ecx
add ebx, ecx
cmp ebx, dword [ebp - 0xa4]
jne 0x100954fb
jmp 0x10095758
cmp eax, ebx
je 0x10095761
mov dword [ebp - 0xa4], ebx
xor edx, edx
xor ebx, ebx
mov esi, dword [eax + edx]
mov dword [edi + edx], esi
mov cl, byte [eax + edx + 4]
mov byte [edi + edx + 4], cl
mov dword [edi + edx + 8], ebx
mov dword [edi + edx + 0x18], ebx
mov dword [edi + edx + 0x1c], ebx
movsd xmm0, qword [eax + edx + 0x18]
movsd qword [edi + edx + 0x18], xmm0
movups xmm0, xmmword [eax + edx + 8]
movups xmmword [edi + edx + 8], xmm0
mov dword [eax + edx + 0x18], ebx
mov esi, 0xf
mov dword [eax + edx + 0x1c], esi
mov byte [eax + edx + 8], bl
mov dword [edi + edx + 0x20], ebx
mov dword [edi + edx + 0x30], ebx
mov dword [edi + edx + 0x34], ebx
movsd xmm0, qword [eax + edx + 0x30]
movsd qword [edi + edx + 0x30], xmm0
movups xmm0, xmmword [eax + edx + 0x20]
movups xmmword [edi + edx + 0x20], xmm0
mov dword [eax + edx + 0x30], ebx
mov dword [eax + edx + 0x34], esi
mov byte [eax + edx + 0x20], bl
mov ecx, dword [eax + edx + 0x38]
mov dword [edi + edx + 0x38], ecx
mov cl, byte [eax + edx + 0x3c]
mov byte [edi + edx + 0x3c], cl
mov dword [edi + edx + 0x40], ebx
mov dword [edi + edx + 0x50], ebx
mov dword [edi + edx + 0x54], ebx
movsd xmm0, qword [eax + edx + 0x50]
movsd qword [edi + edx + 0x50], xmm0
movups xmm0, xmmword [eax + edx + 0x40]
movups xmmword [edi + edx + 0x40], xmm0
mov dword [eax + edx + 0x50], ebx
mov dword [eax + edx + 0x54], esi
mov byte [eax + edx + 0x40], bl
mov dword [edi + edx + 0x58], ebx
mov dword [edi + edx + 0x68], ebx
mov dword [edi + edx + 0x6c], ebx
movsd xmm0, qword [eax + edx + 0x68]
movsd qword [edi + edx + 0x68], xmm0
movups xmm0, xmmword [eax + edx + 0x58]
movups xmmword [edi + edx + 0x58], xmm0
mov dword [eax + edx + 0x68], ebx
mov dword [eax + edx + 0x6c], esi
mov byte [eax + edx + 0x58], bl
mov ecx, dword [eax + edx + 0x70]
mov dword [edi + edx + 0x70], ecx
mov ecx, dword [eax + edx + 0x74]
mov dword [edi + edx + 0x74], ecx
mov cl, byte [eax + edx + 0x78]
mov byte [edi + edx + 0x78], cl
mov ecx, dword [eax + edx + 0x7c]
mov dword [edi + edx + 0x7c], ecx
mov ecx, dword [eax + edx + 0x80]
mov dword [edi + edx + 0x80], ecx
lea ecx, [eax + edx]
mov esi, 0x84
add edx, esi
add ecx, esi
cmp ecx, dword [ebp - 0xa4]
jne 0x10095637
mov edx, dword [ebp - 0xa8]
mov ebx, dword [edx + 0x18]
test ebx, ebx
je 0x100957bf
mov esi, dword [edx + 0x1c]
cmp ebx, esi
je 0x1009578e
lea ecx, [ebx + 0x38]
call fcn.10093cd0
mov ecx, ebx
call fcn.10093cd0
add ebx, 0x84
cmp ebx, esi
jne 0x1009576c
mov edx, dword [ebp - 0xa8]
mov ebx, dword [edx + 0x18]
mov eax, dword [edx + 0x20]
sub eax, ebx
cmp eax, 0x1000
jb 0x100957b1
mov eax, dword [ebx - 4]
add ebx, 0xfffffffc
sub ebx, eax
cmp ebx, 0x20
jae 0x100959f8
mov esi, edx
mov ebx, eax
jmp 0x100957b3
mov esi, edx
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov edx, esi
mov dword [edx + 0x18], edi
mov ecx, dword [ebp - 0xac]
mov eax, ecx
shl eax, 7
lea ecx, [eax + ecx*4]
add ecx, edi
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp - 0xc0]
add eax, edi
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [ebp - 0xb0]
jne 0x10095910
test eax, eax
jne 0x10095989
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x10095835
mov eax, dword [ebp - 0x60]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x1009582b
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x1009587d
mov eax, dword [ebp - 0x78]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x10095873
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x100958b3
mov eax, dword [ebp - 0x28]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x100958a9
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x100958fb
mov eax, dword [ebp - 0x40]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x100958f1
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10212780
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0xbc]
movzx eax, byte [eax + 8]
lea edi, [esi + eax*8]
add ecx, 0xffffff7c
lea ebx, [ebp - 0x98]
push eax
push ebx
call fcn.100946d0
lea eax, [ebp - 0xa0]
mov ecx, edi
push ebx
push eax
call fcn.10218880
mov ecx, dword [ebx + 0x14]
cmp ecx, 0x10
jb 0x10095978
mov eax, dword [ebp - 0x98]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x1009596e
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xb0]
jmp 0x100957f7
mov eax, dword [ebp - 0xbc]
movzx eax, byte [eax + 9]
lea edi, [esi + eax*8]
mov ecx, 0xffffff7c
add ecx, dword [edx + 0x1c]
lea esi, [ebp - 0x98]
push eax
push esi
call fcn.100946d0
lea eax, [ebp - 0xa0]
mov ecx, edi
push esi
push eax
call fcn.10218880
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
jb 0x100957ff
mov eax, dword [ebp - 0x98]
add ecx, 0xfffff001
cmp ecx, 0xffffefff
ja 0x100959e9
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100959f8
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x100957ff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.102136b0
call fcn.102133d0
int3