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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov edx, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x1038100c]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [edx], eax
mov edi, dword [edx + 8]
mov ebx, dword [edx + 0xc]
mov dword [ebp - 0x30], ebx
sub ebx, edi
mov dword [ebp - 0x38], ebx
sar ebx, 2
mov eax, dword [edx + 0x10]
sub eax, edi
sar eax, 2
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x32c]
cmp eax, esi
mov dword [ebp - 0x28], edx
jae 0x1004ea6a
mov dword [ebp - 0x34], ebx
cmp esi, 0x40000000
jae 0x1004fb30
mov edx, eax
shr edx, 1
mov ecx, 0x3fffffff
sub ecx, edx
add edx, eax
cmp edx, esi
cmovb edx, esi
cmp eax, ecx
mov eax, esi
mov dword [ebp - 0x2c], esi
cmova edx, esi
mov ecx, 0x3fffffff
lea eax, [edx*4]
xor esi, esi
dec esi
cmp edx, ecx
cmova eax, esi
cmp eax, 0x1000
mov dword [ebp - 0x3c], edx
jb 0x1004ea8c
sub eax, 0xffffffdd
mov ebx, esi
cmovae eax, esi
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x1004eaa0
mov ecx, esi
sub esi, ebx
jbe 0x1004ea7e
jne 0x1004eb4b
mov ebx, dword [ebp - 0x30]
jmp 0x1004eb8f
jne 0x1004eb8c
mov ebx, dword [ebp - 0x30]
jmp 0x1004eb92
mov ebx, esi
xor esi, esi
test eax, eax
je 0x1004eaa0
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x2c], eax
je 0x1004eadd
mov ecx, dword [ebp - 0x38]
test ecx, ecx
cmovns ebx, ecx
xor eax, eax
inc eax
test ebx, ebx
cmovle eax, ebx
sub edi, dword [ebp - 0x30]
cmp edi, ecx
cmovle edi, ecx
shr edi, 2
imul edi, eax
mov eax, dword [ebp - 0x2c]
sub eax, edi
lea ecx, [esi + edi*4]
shl eax, 2
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
cmp ecx, eax
je 0x1004eb01
sub eax, ecx
xor edx, edx
mov edi, dword [ecx + edx]
mov dword [esi + edx], edi
add edx, 4
cmp eax, edx
jne 0x1004eaee
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x1004eb32
mov ecx, dword [edx + 0x10]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1004eb25
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [edx + 8], esi
mov eax, dword [ebp - 0x2c]
lea ebx, [esi + eax*4]
mov dword [edx + 0xc], ebx
mov eax, dword [ebp - 0x3c]
lea eax, [esi + eax*4]
mov dword [edx + 0x10], eax
mov edi, esi
jmp 0x1004eb92
xor eax, eax
dec eax
mov ebx, dword [ebp - 0x38]
test ebx, ebx
cmovns eax, ebx
xor edx, edx
inc edx
test eax, eax
cmovle edx, eax
mov eax, dword [ebp - 0x30]
sub edi, eax
cmp edi, ebx
cmovle edi, ebx
mov ebx, eax
shr edi, 2
imul edi, edx
sub ecx, edi
shl ecx, 2
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x28]
add esp, 0xc
lea ebx, [ebx + esi*4]
mov edi, dword [edx + 8]
jmp 0x1004eb8f
lea ebx, [edi + ecx*4]
mov dword [edx + 0xc], ebx
cmp edi, ebx
je 0x1004ebaa
sub ebx, edi
and ebx, 0xfffffffc
push ebx
push 0
push edi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x28]
add esp, 0xc
lea ecx, [edx + 0x18]
xor esi, esi
mov dword [edx + 0x14], esi
push esi
mov eax, dword [ebp + 8]
push dword [eax + 0x32c]
call fcn.10222070
mov edx, dword [ebp - 0x28]
mov byte [edx + 0x60], 0
mov dword [edx + 0x2f], esi
mov dword [edx + 0x2c], esi
mov dword [edx + 0x28], esi
movaps xmm0, xmmword [0x102b42e0]
movups xmmword [edx + 0x34], xmm0
mov dword [edx + 0x44], esi
mov dword [edx + 0x48], esi
mov dword [edx + 0x4c], 0x3f800000
mov ebx, dword [edx + 0x50]
mov edi, dword [edx + 0x54]
mov dword [ebp - 0x30], edi
sub edi, ebx
mov ecx, edi
sar ecx, 4
mov eax, dword [edx + 0x58]
sub eax, ebx
sar eax, 4
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x32c]
cmp eax, esi
jae 0x1004ec70
mov dword [ebp - 0x38], ecx
cmp esi, sym.libGLESv2.dll_Ordinal_0
jae 0x1004fb35
mov ecx, eax
shr ecx, 1
mov edx, 0xfffffff
sub edx, ecx
add ecx, eax
cmp ecx, esi
cmovb ecx, esi
cmp eax, edx
mov dword [ebp - 0x2c], esi
cmova ecx, esi
mov eax, 0xfffffff
mov edx, ecx
shl edx, 4
xor esi, esi
dec esi
cmp ecx, eax
mov eax, edx
cmova eax, esi
cmp eax, 0x1000
mov dword [ebp - 0x34], edx
jb 0x1004ec99
sub eax, 0xffffffdd
cmovae eax, esi
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x1004ecab
mov eax, ecx
mov ecx, esi
sub esi, eax
jbe 0x1004ec86
jne 0x1004ed5b
mov edi, dword [ebp - 0x30]
jmp 0x1004ed96
je 0x1004ed99
shl ecx, 4
add ebx, ecx
mov dword [edx + 0x54], ebx
jmp 0x1004ed99
xor esi, esi
test eax, eax
je 0x1004ecab
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x2c], eax
je 0x1004ecec
test edi, edi
mov ecx, 0xffffffff
cmovns ecx, edi
xor eax, eax
inc eax
test ecx, ecx
cmovle eax, ecx
sub ebx, dword [ebp - 0x30]
cmp ebx, edi
cmovle ebx, edi
shr ebx, 4
imul ebx, eax
mov eax, dword [ebp - 0x2c]
sub eax, ebx
shl ebx, 4
add ebx, esi
shl eax, 4
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x50]
mov eax, dword [edx + 0x54]
cmp ecx, eax
je 0x1004ed12
sub eax, ecx
xor edx, edx
movups xmm0, xmmword [ecx + edx]
movups xmmword [esi + edx], xmm0
add edx, 0x10
cmp eax, edx
jne 0x1004ecfd
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x50]
test eax, eax
je 0x1004ed43
mov ecx, dword [edx + 0x58]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1004ed36
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [edx + 0x50], esi
mov eax, dword [ebp - 0x2c]
shl eax, 4
add eax, esi
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 0x34]
add eax, esi
mov dword [edx + 0x58], eax
jmp 0x1004ed99
xor eax, eax
dec eax
test edi, edi
cmovns eax, edi
xor edx, edx
inc edx
test eax, eax
cmovle edx, eax
mov eax, dword [ebp - 0x30]
sub ebx, eax
cmp ebx, edi
cmovle ebx, edi
mov edi, eax
shr ebx, 4
imul ebx, edx
sub ecx, ebx
shl ecx, 4
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x28]
add esp, 0xc
shl esi, 4
add edi, esi
mov dword [edx + 0x54], edi
mov dword [edx + 0x5c], 0
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x32c]
mov ecx, dword [edx + 0x2f8]
mov eax, dword [edx + 0x2fc]
mov esi, edx
mov edx, eax
sub edx, ecx
sar edx, 2
imul ebx, edx, 0xba2e8ba3
mov edx, dword [esi + 0x300]
sub edx, ecx
sar edx, 2
imul edx, edx, 0xba2e8ba3
cmp edx, edi
jae 0x1004ee37
cmp edi, 0x5d1745e
jae 0x1004fb3a
mov eax, edx
shr eax, 1
mov ecx, 0x5d1745d
sub ecx, eax
add eax, edx
cmp eax, edi
cmovb eax, edi
cmp edx, ecx
cmova eax, edi
mov edx, 0x5d1745d
imul esi, eax, 0x2c
xor ecx, ecx
dec ecx
cmp eax, edx
mov dword [ebp - 0x2c], esi
mov eax, esi
cmova eax, ecx
cmp eax, 0x1000
jb 0x1004eea0
sub eax, 0xffffffdd
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x1004eeb2
cmp edi, ebx
jbe 0x1004ee87
mov esi, dword [ebp - 0x28]
je 0x1004ee7c
sub ebx, edi
xorps xmm0, xmm0
mov ecx, 0x3f800000
mov dword [eax], 0x3050504
mov dword [eax + 4], 0x10103
mov dword [eax + 8], 0x3020300
mov word [eax + 0xc], 0x202
mov byte [eax + 0xe], 2
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov byte [eax + 0x28], 0
add eax, 0x2c
inc ebx
jne 0x1004ee4a
mov dword [esi + 0x2fc], eax
jmp 0x1004ef8c
mov esi, dword [ebp - 0x28]
je 0x1004ef8c
imul eax, edi, 0x2c
add ecx, eax
mov dword [esi + 0x2fc], ecx
jmp 0x1004ef8c
xor esi, esi
test eax, eax
je 0x1004eeb2
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
cmp edi, ebx
mov edx, dword [ebp - 0x28]
je 0x1004eefa
imul eax, ebx, 0x2c
add eax, esi
sub ebx, edi
xorps xmm0, xmm0
mov ecx, 0x3f800000
mov dword [eax], 0x3050504
mov dword [eax + 4], 0x10103
mov dword [eax + 8], 0x3020300
mov word [eax + 0xc], 0x202
mov byte [eax + 0xe], 2
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov byte [eax + 0x28], 0
add eax, 0x2c
inc ebx
jne 0x1004eec8
mov ecx, dword [edx + 0x2f8]
mov eax, dword [edx + 0x2fc]
cmp ecx, eax
je 0x1004ef3a
sub eax, ecx
xor edx, edx
movups xmm0, xmmword [ecx + edx + 0x19]
movups xmmword [esi + edx + 0x19], xmm0
movups xmm0, xmmword [ecx + edx]
movups xmm1, xmmword [ecx + edx + 0x10]
movups xmmword [esi + edx + 0x10], xmm1
movups xmmword [esi + edx], xmm0
add edx, 0x2c
cmp eax, edx
jne 0x1004ef0e
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x2f8]
test eax, eax
je 0x1004ef6e
mov ecx, dword [edx + 0x300]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1004ef61
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [edx + 0x2f8], esi
imul eax, edi, 0x2c
add eax, esi
mov dword [edx + 0x2fc], eax
mov eax, dword [ebp - 0x2c]
add eax, esi
mov dword [edx + 0x300], eax
mov esi, edx
lea ebx, [ebp - 0x24]
mov ecx, ebx
call fcn.10226cb0
mov ecx, dword [esi + 0x2e8]
lea edi, [ecx + ecx*4]
lea eax, [esi + edi*4]
add eax, 0x1a8
cmp eax, ebx
mov edx, esi
jne 0x1004efb2
mov eax, dword [ebp - 0x24]
jmp 0x1004efe8
mov ebx, eax
mov eax, dword [eax]
test eax, eax
jne 0x1004faf7
mov eax, dword [ebp - 0x24]
mov dword [ebx], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + edi*4 + 0x1ac], eax
mov eax, dword [ebp - 0x1c]
mov dword [edx + edi*4 + 0x1b0], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [edx + 0x2e8]
movsd xmm0, qword [ebp - 0x18]
movsd qword [edx + edi*4 + 0x1b4], xmm0
inc ecx
mov dword [edx + 0x2e8], ecx
test eax, eax
mov esi, edx
jne 0x1004fa7e
lea edi, [ebp - 0x24]
mov ecx, edi
call fcn.10226cb0
mov ecx, dword [esi + 0x1a4]
lea eax, [ecx + ecx*4]
mov dword [ebp - 0x2c], eax
lea ebx, [esi + eax*4]
add ebx, 0x64
cmp ebx, edi
mov edx, esi
je 0x1004f05c
mov eax, dword [ebx]
test eax, eax
mov edi, dword [ebp - 0x2c]
jne 0x1004fac4
mov eax, dword [ebp - 0x24]
mov dword [ebx], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + edi*4 + 0x68], eax
mov eax, dword [ebp - 0x1c]
mov dword [edx + edi*4 + 0x6c], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [edx + 0x1a4]
jmp 0x1004f062
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
movsd xmm0, qword [ebp - 0x18]
movsd qword [edx + edi*4 + 0x70], xmm0
inc ecx
mov dword [edx + 0x1a4], ecx
test eax, eax
jne 0x1004faa1
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x32c]
mov ecx, dword [edx + 0x2ec]
mov esi, dword [edx + 0x2f0]
mov eax, esi
sub eax, ecx
sar eax, 2
imul ebx, eax, 0x781948b1
mov eax, dword [edx + 0x2f4]
sub eax, ecx
sar eax, 2
imul eax, eax, 0x781948b1
cmp eax, edi
jae 0x1004f11c
cmp edi, 0xca4588
jae 0x1004fb3f
mov edx, eax
shr edx, 1
mov ecx, 0xca4587
sub ecx, edx
add edx, eax
cmp edx, edi
cmovb edx, edi
cmp eax, ecx
cmova edx, edi
mov eax, 0xca4587
imul esi, edx, 0x144
xor ecx, ecx
dec ecx
cmp edx, eax
mov dword [ebp - 0x40], esi
mov eax, esi
cmova eax, ecx
cmp eax, 0x1000
jb 0x1004f280
sub eax, 0xffffffdd
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov ecx, edx
mov dword [ebp - 0x34], edx
mov dword [edx - 4], eax
jmp 0x1004f29a
cmp edi, ebx
jbe 0x1004f1f4
je 0x1004f275
sub ebx, edi
xor edi, edi
mov eax, 0x144
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, esi
call fcn.10226cb0
lea ecx, [esi + 0x14]
call fcn.10226cb0
lea ecx, [esi + 0x28]
call fcn.10226cb0
lea ecx, [esi + 0x3c]
call fcn.10226cb0
lea ecx, [esi + 0x50]
call fcn.10226cb0
lea ecx, [esi + 0x64]
call fcn.10226cb0
lea ecx, [esi + 0x78]
call fcn.10226cb0
lea ecx, [esi + 0x8c]
call fcn.10226cb0
lea ecx, [esi + 0xa0]
call fcn.10226cb0
lea ecx, [esi + 0xb4]
call fcn.10226cb0
lea ecx, [esi + 0xc8]
call fcn.10226cb0
lea ecx, [esi + 0xdc]
call fcn.10226cb0
lea ecx, [esi + 0xf0]
call fcn.10226cb0
lea ecx, [esi + 0x104]
call fcn.10226cb0
lea ecx, [esi + 0x118]
call fcn.10226cb0
lea ecx, [esi + 0x12c]
call fcn.10226cb0
mov dword [esi + 0x140], edi
mov eax, 0x144
add esi, eax
inc ebx
jne 0x1004f12e
mov edx, dword [ebp - 0x28]
jmp 0x1004f275
je 0x1004f50d
imul eax, edi, 0x144
add ecx, eax
mov dword [ebp - 0x2c], ecx
cmp ecx, esi
je 0x1004f26f
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.100502d0
mov ebx, 0x12c
mov eax, dword [edi + ebx]
test eax, eax
jne 0x1004f229
add ebx, 0xffffffec
cmp ebx, 0xffffffec
jne 0x1004f218
jmp 0x1004f265
mov ecx, dword [edi + ebx + 8]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004f250
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov dword [edi + ebx], eax
mov dword [edi + ebx + 4], eax
mov dword [edi + ebx + 8], eax
jmp 0x1004f21f
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
jmp 0x1004f237
add edi, 0x144
cmp edi, esi
jne 0x1004f20c
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov dword [edx + 0x2f0], esi
jmp 0x1004f50d
test eax, eax
je 0x1004f293
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x34], eax
jmp 0x1004f29a
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], edi
cmp edi, ebx
je 0x1004f37f
imul eax, ebx, 0x144
sub ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
lea edi, [eax + ecx]
add edi, 0x12c
mov esi, ebx
lea ebx, [edi - 0x12c]
mov eax, 0x144
push eax
xor eax, eax
push eax
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, ebx
mov ebx, esi
call fcn.10226cb0
lea ecx, [edi - 0x118]
call fcn.10226cb0
lea ecx, [edi - 0x104]
call fcn.10226cb0
lea ecx, [edi - 0xf0]
call fcn.10226cb0
lea ecx, [edi - 0xdc]
call fcn.10226cb0
lea ecx, [edi - 0xc8]
call fcn.10226cb0
lea ecx, [edi - 0xb4]
call fcn.10226cb0
lea ecx, [edi - 0xa0]
call fcn.10226cb0
lea ecx, [edi - 0x8c]
call fcn.10226cb0
lea ecx, [edi - 0x78]
call fcn.10226cb0
lea ecx, [edi - 0x64]
call fcn.10226cb0
lea ecx, [edi - 0x50]
call fcn.10226cb0
lea ecx, [edi - 0x3c]
call fcn.10226cb0
lea ecx, [edi - 0x28]
call fcn.10226cb0
lea ecx, [edi - 0x14]
call fcn.10226cb0
mov ecx, edi
call fcn.10226cb0
xor eax, eax
mov dword [edi + 0x14], eax
mov eax, 0x144
add edi, eax
inc ebx
jne 0x1004f2ba
mov edx, dword [ebp - 0x28]
mov ebx, dword [edx + 0x2ec]
mov ecx, dword [edx + 0x2f0]
cmp ebx, ecx
je 0x1004f42c
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x38], ecx
xor edi, edi
mov dword [ebp - 0x2c], ebx
lea ecx, [esi + edi]
xor eax, eax
mov dword [esi + edi], eax
mov dword [esi + edi + 4], eax
mov dword [esi + edi + 8], eax
mov eax, dword [ebx + edi + 4]
sub eax, dword [ebx + edi]
sar eax, 2
push eax
call fcn.10220ad0
test al, al
je 0x1004f3ec
mov edx, dword [esi + edi]
mov dword [ebp - 0x30], edx
mov eax, dword [ebx + edi]
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [ecx + edi + 4]
sub ebx, eax
push ebx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add ebx, dword [ebp - 0x30]
mov dword [esi + edi + 4], ebx
mov ebx, dword [ebp - 0x2c]
movsd xmm0, qword [ebx + edi + 0xc]
movsd qword [esi + edi + 0xc], xmm0
add edi, 0x14
cmp edi, 0x140
jne 0x1004f3a1
mov eax, dword [ebx + 0x140]
mov dword [esi + 0x140], eax
mov eax, 0x144
add esi, eax
add ebx, eax
mov ecx, dword [ebp - 0x38]
cmp ebx, ecx
jne 0x1004f39c
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x2ec]
test ecx, ecx
mov esi, dword [ebp - 0x3c]
je 0x1004f4eb
mov eax, dword [edx + 0x2f0]
mov dword [ebp - 0x2c], eax
cmp ecx, eax
je 0x1004f4bc
mov esi, ecx
call fcn.100502d0
mov ecx, esi
mov edi, 0x12c
mov eax, dword [ecx + edi]
test eax, eax
jne 0x1004f463
add edi, 0xffffffec
cmp edi, 0xffffffec
jne 0x1004f452
jmp 0x1004f4a5
mov ebx, ecx
mov ecx, dword [ecx + edi + 8]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004f48e
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov dword [ebx + edi], eax
mov dword [ebx + edi + 4], eax
mov dword [ebx + edi + 8], eax
mov ecx, ebx
jmp 0x1004f459
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
mov ebx, esi
jmp 0x1004f473
add ecx, 0x144
cmp ecx, dword [ebp - 0x2c]
jne 0x1004f444
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x2ec]
mov esi, dword [ebp - 0x3c]
mov eax, dword [edx + 0x2f4]
sub eax, ecx
cmp eax, 0x1000
jb 0x1004f4de
mov eax, dword [ecx - 4]
sub ecx, eax
add ecx, 0xfffffffc
cmp ecx, 0x20
jae 0x1004fba7
mov ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0x34]
mov dword [edx + 0x2ec], ecx
imul esi, esi, 0x144
add esi, ecx
mov dword [edx + 0x2f0], esi
mov eax, dword [ebp - 0x40]
add eax, ecx
mov dword [edx + 0x2f4], eax
mov edi, dword [edx + 0x2ec]
cmp edi, esi
je 0x1004f60d
mov dword [ebp - 0x2c], esi
lea ecx, [ebp - 0x24]
call fcn.10226cb0
mov esi, dword [edi + 0x140]
lea eax, [esi*4]
lea ebx, [eax + eax*4]
mov eax, ebx
neg eax
lea ecx, [eax + ebp]
add ecx, 0xffffffdc
mov eax, esi
cmp ecx, edi
je 0x1004f575
mov eax, dword [edi + ebx]
test eax, eax
jne 0x1004f5b9
mov eax, dword [ebp - 0x24]
mov dword [edi + ebx], eax
mov eax, dword [ebp - 0x20]
lea ecx, [esi + esi*4]
mov dword [edi + ecx*4 + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + ecx*4 + 8], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x140]
lea ecx, [esi + esi*4]
movsd xmm0, qword [ebp - 0x18]
movsd qword [edi + ecx*4 + 0xc], xmm0
inc eax
mov dword [edi + 0x140], eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x1004f5a0
add edi, 0x144
mov esi, dword [ebp - 0x2c]
cmp esi, edi
jne 0x1004f51e
jmp 0x1004f60d
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004f5e3
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x1004f591
mov ecx, dword [edi + ebx + 8]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004f5f8
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
mov dword [edi + ebx], eax
mov dword [edi + ebx + 4], eax
mov dword [edi + ebx + 8], eax
jmp 0x1004f54d
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
jmp 0x1004f5ad
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
jmp 0x1004f5c7
movaps xmm0, xmmword [0x102bc4b0]
mov edx, dword [ebp - 0x28]
movups xmmword [edx + 0x304], xmm0
movaps xmm0, xmmword [0x102bc4c0]
movups xmmword [edx + 0x314], xmm0
movaps xmm3, xmmword [0x102bc4d0]
movups xmmword [edx + 0x324], xmm3
movups xmmword [edx + 0x334], xmm3
movaps xmm0, xmmword [0x102bc4e0]
movups xmmword [edx + 0x344], xmm0
mov dword [edx + 0x354], 0x3f800000
mov byte [edx + 0x358], 0
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x334]
mov ebx, dword [edx + 0x35c]
mov eax, dword [edx + 0x360]
mov ecx, eax
sub ecx, ebx
sar ecx, 2
imul esi, ecx, 0xc28f5c29
mov ecx, dword [edx + 0x364]
sub ecx, ebx
sar ecx, 2
imul ecx, ecx, 0xc28f5c29
cmp ecx, edi
jae 0x1004f6f8
cmp edi, 0x28f5c29
jae 0x1004fb44
mov eax, ecx
shr eax, 1
mov edx, 0x28f5c28
sub edx, eax
add eax, ecx
cmp eax, edi
cmovb eax, edi
cmp ecx, edx
cmova eax, edi
mov edx, 0x28f5c28
imul ebx, eax, 0x64
xor ecx, ecx
dec ecx
cmp eax, edx
mov eax, ebx
cmova eax, ecx
cmp eax, 0x1000
mov dword [ebp - 0x30], ebx
jb 0x1004f754
sub eax, 0xffffffdd
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
movaps xmm3, xmmword [0x102bc4d0]
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x1004f76f
cmp edi, esi
jbe 0x1004f73e
je 0x1004f749
sub esi, edi
movaps xmm0, xmmword [0x102bc4f0]
movaps xmm1, xmmword [0x102bc500]
movaps xmm2, xmmword [0x102bc510]
mov byte [eax], 0
movups xmmword [eax + 4], xmm3
movups xmmword [eax + 0x14], xmm3
movups xmmword [eax + 0x24], xmm3
movups xmmword [eax + 0x34], xmm0
movups xmmword [eax + 0x44], xmm1
movups xmmword [eax + 0x54], xmm2
add eax, 0x64
inc esi
jne 0x1004f715
mov ebx, dword [edx + 0x35c]
jmp 0x1004f749
je 0x1004f84e
imul eax, edi, 0x64
add eax, ebx
mov dword [edx + 0x360], eax
jmp 0x1004f84e
test eax, eax
je 0x1004f76d
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
movaps xmm3, xmmword [0x102bc4d0]
add esp, 4
mov ebx, eax
jmp 0x1004f76f
xor ebx, ebx
mov ecx, dword [ebp - 0x28]
cmp edi, esi
je 0x1004f7b3
imul eax, esi, 0x64
add eax, ebx
sub esi, edi
movaps xmm0, xmmword [0x102bc4f0]
movaps xmm1, xmmword [0x102bc500]
movaps xmm2, xmmword [0x102bc510]
mov byte [eax], 0
movups xmmword [eax + 4], xmm3
movups xmmword [eax + 0x14], xmm3
movups xmmword [eax + 0x24], xmm3
movups xmmword [eax + 0x34], xmm0
movups xmmword [eax + 0x44], xmm1
movups xmmword [eax + 0x54], xmm2
add eax, 0x64
inc esi
jne 0x1004f792
mov eax, dword [ecx + 0x35c]
mov esi, dword [ecx + 0x360]
mov dword [ebp - 0x2c], eax
cmp eax, esi
je 0x1004f7fb
mov dword [ebp - 0x38], edi
sub esi, dword [ebp - 0x2c]
mov eax, ebx
xor ebx, ebx
lea edi, [eax + ebx]
mov edx, esi
mov ecx, dword [ebp - 0x2c]
lea esi, [ecx + ebx]
mov ecx, 0x19
rep movsd dword es:[edi], dword [esi]
mov esi, edx
add ebx, 0x64
cmp edx, ebx
jne 0x1004f7d0
mov edx, dword [ebp - 0x28]
mov esi, dword [edx + 0x35c]
mov edi, dword [ebp - 0x38]
mov ebx, eax
jmp 0x1004f7fe
mov edx, dword [ebp - 0x28]
test esi, esi
je 0x1004f832
mov ecx, dword [edx + 0x364]
sub ecx, esi
cmp ecx, 0x1000
jb 0x1004f825
mov ecx, dword [esi - 4]
add esi, 0xfffffffc
sub esi, ecx
cmp esi, 0x20
jae 0x1004fba7
mov esi, ecx
push esi
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [edx + 0x35c], ebx
imul eax, edi, 0x64
add eax, ebx
mov dword [edx + 0x360], eax
mov eax, dword [ebp - 0x30]
add eax, ebx
mov dword [edx + 0x364], eax
movaps xmm0, xmmword [0x102b42e0]
movups xmmword [ebx + 0x14], xmm0
mov eax, dword [edx + 0x35c]
movups xmmword [eax + 0x24], xmm0
xor eax, eax
mov byte [edx + 0x368], al
mov ecx, 0x3f800000
mov dword [edx + 0x36c], ecx
mov dword [edx + 0x370], eax
mov dword [edx + 0x374], ecx
xorps xmm0, xmm0
movups xmmword [edx + 0x378], xmm0
mov byte [edx + 0x388], 1
mov byte [edx + 0x3a8], al
mov dword [edx + 0x3ac], eax
mov byte [edx + 0x3b0], 4
movups xmmword [ebp - 0x21], xmm0
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x330]
mov ecx, dword [edx + 0x3b4]
mov eax, dword [edx + 0x3b8]
mov esi, edx
mov edx, eax
sub edx, ecx
sar edx, 2
imul edi, edx, 0xcccccccd
mov edx, dword [esi + 0x3bc]
sub edx, ecx
sar edx, 2
imul edx, edx, 0xcccccccd
cmp edx, ebx
jae 0x1004f946
cmp ebx, 0xccccccd
jae 0x1004fb49
mov ecx, ebx
mov ebx, edx
shr ebx, 1
mov esi, 0xccccccc
mov eax, 0xccccccc
sub eax, ebx
add ebx, edx
cmp ebx, ecx
cmovb ebx, ecx
cmp edx, eax
mov eax, ecx
mov dword [ebp - 0x2c], ecx
cmova ebx, ecx
lea eax, [ebx*4]
lea eax, [eax + eax*4]
xor ecx, ecx
dec ecx
cmp ebx, esi
cmova eax, ecx
cmp eax, 0x1000
jb 0x1004f984
sub eax, 0xffffffdd
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x1004f998
cmp ebx, edi
jbe 0x1004f96a
mov edx, dword [ebp - 0x28]
je 0x1004f979
sub edi, ebx
mov byte [eax], 0
movups xmm0, xmmword [ebp - 0x24]
movups xmmword [eax + 1], xmm0
mov ecx, dword [ebp - 0x15]
mov dword [eax + 0x10], ecx
add eax, 0x14
inc edi
jne 0x1004f951
jmp 0x1004f979
mov edx, dword [ebp - 0x28]
je 0x1004fa49
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov dword [edx + 0x3b8], eax
jmp 0x1004fa49
test eax, eax
je 0x1004f996
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
jmp 0x1004f998
xor esi, esi
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], edi
je 0x1004f9c0
lea eax, [edi + edi*4]
lea eax, [esi + eax*4]
sub edi, dword [ebp - 0x2c]
mov byte [eax], 0
movups xmm0, xmmword [ebp - 0x24]
movups xmmword [eax + 1], xmm0
mov ecx, dword [ebp - 0x15]
mov dword [eax + 0x10], ecx
add eax, 0x14
inc edi
jne 0x1004f9a9
mov ecx, dword [edx + 0x3b4]
mov eax, dword [edx + 0x3b8]
cmp ecx, eax
je 0x1004f9f4
sub eax, ecx
xor edx, edx
mov edi, dword [ecx + edx + 0x10]
mov dword [esi + edx + 0x10], edi
movups xmm0, xmmword [ecx + edx]
movups xmmword [esi + edx], xmm0
add edx, 0x14
cmp eax, edx
jne 0x1004f9d4
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x3b4]
test eax, eax
je 0x1004fa28
mov ecx, dword [edx + 0x3bc]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1004fa1b
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [edx + 0x3b4], esi
mov eax, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [edx + 0x3b8], eax
lea eax, [ebx + ebx*4]
lea eax, [esi + eax*4]
mov dword [edx + 0x3bc], eax
mov dword [edx + 0x3c0], 0
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + 0x58]
movss dword [edx + 0x390], xmm0
mov dword [edx + 4], 0xffff
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004fb4e
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov esi, dword [ebp - 0x28]
jmp 0x1004f007
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004fb62
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov edx, dword [ebp - 0x28]
jmp 0x1004f07c
mov ecx, dword [edx + edi*4 + 0x6c]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004fb76
lea esi, [edx + edi*4]
add esi, 0x68
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
xor eax, eax
mov dword [ebx], eax
mov dword [esi], eax
mov dword [esi + 4], eax
jmp 0x1004f036
mov ecx, dword [edx + edi*4 + 0x1b0]
sub ecx, eax
cmp ecx, 0x1000
jae 0x1004fb90
lea esi, [edx + edi*4]
add esi, 0x1ac
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x28]
add esp, 4
xor eax, eax
mov dword [ebx], eax
mov dword [esi], eax
mov dword [esi + 4], eax
jmp 0x1004efbe
call fcn.10005d40
call fcn.10005d40
call fcn.10005d40
call fcn.10005d40
call fcn.10005d40
call fcn.10005d40
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
jmp 0x1004fa8f
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
jmp 0x1004fab2
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x2c]
jmp 0x1004fad6
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1004fba7
mov eax, ecx
mov edx, dword [ebp - 0x28]
jmp 0x1004fb0c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3