Function at 0x10024f20
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x25f0
call fcn.1006a040
mov dword [esp + 0x4c], ecx
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [esp + 0x25e8], eax
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007b4f8], esi
mov cl, 1
mov eax, dword [0x1007b504]
test eax, eax
je 0x10024f70
test byte [eax + 0x21], 0x40
sete cl
mov byte [esp + 0x1b], cl
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
lea esi, [esp + 0x2d4]
mov dword [esi - 4], 0x1006bbf0
push 0x20000
push esi
call fcn.100193a0
add esp, 8
mov dword [esi + 4], 0
xor ebx, ebx
mov eax, 0
mov ecx, dword [esi]
test ecx, ecx
je 0x10024fbc
mov eax, dword [ecx + 0x20]
lea ecx, [esp + 0x2d0]
lea esi, [esp + 0x250]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x34], ebx
push esi
call dword [sym.imp.kernel32.dll_InitializeSRWLock]
xor edi, edi
lea eax, [esp + 0x2d0]
mov byte [esi + 0x38], 0
mov dword [esi + 0x40], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], ebx
mov ecx, esi
inc edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x58], edi
mov dword [esi + 0x64], ebx
mov dword [esi + 0x60], edi
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
push eax
call fcn.100197a0
lea ecx, [esp + 0x140]
mov edx, esi
call fcn.1001ecc0
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.10020fd0
lea ebx, [esp + 0xd0]
push edi
push ebx
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
lea eax, [esp + 0xb8]
mov dword [0x1007b4f8], esi
push edi
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov eax, dword [0x1007b504]
test eax, eax
je 0x100250a6
xor esi, esi
mov edi, 0x7fffffff
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [eax]
mov edx, dword [esp + 0x4c]
cmp ecx, dword [edx + 4]
je 0x10025213
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x148], 0x1006bbf0
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x100250ff
mov ecx, dword [esi]
lea eax, [esp + 0x158]
xor ebx, ebx
cmp esi, eax
setne bl
mov edi, dword [ecx + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
call edi
lea eax, [esp + 0x158]
mov dword [eax + 0x24], 0
mov esi, dword [esp + 0x150]
mov dword [esp + 0x150], 0
test esi, esi
jne 0x100251c5
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x14c], 0
test esi, esi
jne 0x100251da
lea ecx, [esp + 0x250]
call fcn.10018c30
mov dword [esp + 0x2d0], 0x1006bbf0
mov esi, dword [esp + 0x304]
test esi, esi
je 0x10025183
mov ecx, dword [esi]
lea eax, [esp + 0x2e0]
xor ebx, ebx
cmp esi, eax
setne bl
mov edi, dword [ecx + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
call edi
lea eax, [esp + 0x2e0]
mov dword [eax + 0x24], 0
mov esi, dword [esp + 0x2d8]
mov dword [esp + 0x2d8], 0
test esi, esi
jne 0x100251ef
mov esi, dword [esp + 0x2d4]
mov dword [esp + 0x2d4], 0
test esi, esi
jne 0x10025201
mov ecx, dword [esp + 0x25e8]
xor ecx, ebp
call fcn.10069260
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
call fcn.10018ed0
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x10025119
mov ecx, esi
call fcn.10018ed0
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x10025133
mov ecx, esi
call fcn.10018ed0
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x10025199
mov ecx, esi
call fcn.10018ed0
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x100251af
mov ecx, dword [eax + 0x108]
lea edx, [esp + 0x5e0]
call fcn.10020fd0
mov ecx, dword [0x1007b504]
mov edx, dword [esp + 0x5e0]
mov eax, 0x244
add ecx, eax
push dword [esp + 0x5e4]
call fcn.10035890
add esp, 4
push 1
lea eax, [esp + 0xa4]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov eax, dword [0x1007b504]
cmp byte [eax + 0x240], 0
jne 0x1002572f
cmp byte [eax + 0x241], 0
jne 0x1002572f
mov esi, dword [0x1007b500]
mov ecx, ebx
push esi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ecx, ebx
mov ebx, eax
mov edi, edx
push esi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor esi, esi
mov dword [esp + 4], eax
mov ecx, edi
mov eax, 0x7fffffff
mov dword [esp + 8], edx
mov edx, 0x7fffffff
dec esi
cmp ebx, esi
sbb ecx, eax
mov eax, esi
mov ecx, esi
mov esi, 0
cmovb eax, ebx
cmovb edx, edi
add ecx, 1
mov dword [esp + 0xc], eax
mov eax, 0x7fffffff
adc eax, esi
mov esi, ebx
neg esi
mov esi, 0
sbb esi, edi
mov esi, 0
cmovge eax, edi
cmovge ecx, ebx
neg dword [esp + 4]
sbb esi, dword [esp + 8]
lea esi, [esp + 0x5e0]
cmovl ecx, dword [esp + 0xc]
cmovl eax, edx
mov dword [esp + 0x28], eax
mov eax, 0x108
mov dword [esp + 0x50], ecx
mov ecx, dword [0x1007b504]
add ecx, eax
mov eax, dword [0x1007b500]
mov dword [esp + 8], ecx
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x100254c7
mov eax, dword [eax + 0xb0]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], eax
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov byte [esp + 0x5e0], 0x14
lea edi, [esp + 0x308]
mov dword [esp + 0x5e1], eax
mov edx, dword [ecx]
mov ecx, edi
push esi
call fcn.1001ee50
add esp, 4
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
movsd xmm0, qword [0x1006bce0]
mov eax, ebx
mov ecx, edx
not eax
xor ecx, 0x7fffffff
or ecx, eax
je 0x100253af
mov eax, edx
xor eax, 0x80000000
or eax, ebx
jne 0x10025393
movsd xmm0, qword [0x1006bce8]
jmp 0x100253af
push edx
push ebx
call sym.mozglue.dll_public:_static_double___cdecl_mozilla::BaseTimeDurationPlatformUtils::ToSeconds_long_long___int64__
add esp, 8
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
mulsd xmm0, qword [0x1006bcf0]
mov eax, dword [esp + 8]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
mov ecx, edi
mov edx, dword [eax]
push esi
call fcn.1001ee50
add esp, 4
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov ebx, dword [edi]
mov esi, dword [edi + 4]
mov eax, ebx
mov edx, esi
mov ecx, esi
lock cmpxchg8b qword [edi]
mov dword [esp + 0xc], ebx
xor edx, esi
xor eax, ebx
or eax, edx
jne 0x100253de
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov edi, dword [eax + 0x10]
test edi, edi
je 0x1002541b
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
mov eax, ebx
mov edx, ecx
lock cmpxchg8b qword [edi]
xor edx, ecx
xor eax, ebx
or eax, edx
jne 0x10025406
mov edi, dword [esp + 8]
xor eax, eax
mov byte [esp + 0x5e0], 0x15
lea ecx, [esp + 0x308]
mov dword [esp + 0x5e5], eax
mov dword [esp + 0x5e1], eax
lea eax, [esp + 0x5e0]
mov edx, dword [edi]
push eax
call fcn.1001ee50
add esp, 4
mov eax, dword [esp + 0xc]
mov byte [esp + 0x5e0], 0x17
mov dword [esp + 0x5e5], esi
lea esi, [esp + 0x5e0]
lea ecx, [esp + 0x308]
mov dword [esp + 0x5e1], eax
mov edx, dword [edi]
push esi
call fcn.1001ee50
add esp, 4
test ebx, ebx
je 0x100254b6
mov eax, dword [esp + 8]
mov byte [esp + 0x5e0], 0x16
mov dword [esp + 0x5e1], ebx
sar ebx, 0x1f
lea ecx, [esp + 0x308]
mov dword [esp + 0x5e5], ebx
mov edx, dword [eax]
push esi
call fcn.1001ee50
add esp, 4
mov eax, dword [esp + 4]
add eax, 4
cmp eax, dword [esp + 0x14]
jne 0x10025331
push 1
lea eax, [esp + 0x8c]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
cmp byte [esp + 0x1b], 0
je 0x100254f3
mov eax, dword [0x1007b504]
mov ecx, dword [eax + 0x21c]
test ecx, ecx
jne 0x10025b2a
push 1
push esi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov ecx, dword [0x1007b504]
add ecx, 0x30
call fcn.10035e80
lea edi, [esp + 0x88]
mov ecx, esi
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ecx, esi
mov esi, edx
mov ebx, eax
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor edi, edi
mov dword [esp + 0x10], edx
mov ecx, esi
mov edx, 0x7fffffff
mov dword [esp + 0x14], eax
mov eax, 0x7fffffff
dec edi
cmp ebx, edi
sbb ecx, edx
mov edx, 0x7fffffff
mov ecx, edi
cmovb edx, esi
cmovb ecx, ebx
add edi, 1
mov dword [esp + 4], edi
mov edi, 0
adc eax, edi
mov edi, ebx
neg edi
mov edi, 0
mov dword [esp + 0xc], eax
sbb edi, esi
lea edi, [esp + 0xa0]
cmovl esi, eax
cmovl ebx, dword [esp + 4]
neg dword [esp + 0x14]
mov eax, 0
sbb eax, dword [esp + 0x10]
cmovl ebx, ecx
cmovl esi, edx
lea ecx, [esp + 0x88]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, edx
mov ebx, eax
lea ecx, [esp + 0x88]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor edi, edi
mov dword [esp + 0x20], eax
mov eax, esi
mov ecx, esi
mov esi, 0x7fffffff
dec edi
cmp ebx, edi
sbb ecx, esi
mov esi, edi
mov ecx, 0x7fffffff
mov edi, ebx
cmovb ecx, eax
cmovb esi, ebx
neg edi
mov edi, 0
sbb edi, eax
cmovl eax, dword [esp + 0xc]
cmovl ebx, dword [esp + 4]
neg dword [esp + 0x20]
mov edi, eax
mov eax, 0
sbb eax, edx
cmovl edi, ecx
cmovl ebx, esi
lea ecx, [esp + 0xa0]
mov dword [esp + 0x48], edi
lea edi, [esp + 0xb8]
mov dword [esp + 0x20], ebx
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, edx
mov ebx, eax
lea ecx, [esp + 0xa0]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, esi
mov ecx, esi
mov esi, 0x7fffffff
dec edi
cmp ebx, edi
sbb ecx, esi
mov esi, edi
mov ecx, 0x7fffffff
mov edi, ebx
cmovb ecx, eax
cmovb esi, ebx
neg edi
mov edi, 0
sbb edi, eax
cmovl eax, dword [esp + 0xc]
cmovl ebx, dword [esp + 4]
neg dword [esp + 0x1c]
mov edi, eax
mov eax, 0
sbb eax, edx
lea eax, [esp + 0xd0]
cmovl ebx, esi
cmovl edi, ecx
lea esi, [esp + 0xb8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x44], edi
mov ecx, esi
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov edi, edx
lea eax, [esp + 0xd0]
mov ecx, esi
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor esi, esi
mov dword [esp + 0x40], eax
mov ecx, edi
mov eax, 0x7fffffff
mov dword [esp + 0x24], edx
mov edx, 0x7fffffff
mov dword [esp + 0x3c], ebx
dec esi
cmp ebx, esi
sbb ecx, eax
mov ecx, esi
mov eax, dword [esp + 0xc]
mov esi, 0
cmovb edx, edi
cmovb ecx, ebx
neg ebx
mov ebx, dword [esp + 4]
sbb esi, edi
mov esi, 0
cmovge eax, edi
mov edi, 0x7fffffff
cmovge ebx, dword [esp + 0x3c]
neg dword [esp + 0x40]
sbb esi, dword [esp + 0x24]
mov esi, 0
cmovl ebx, ecx
cmovl eax, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x50]
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x2c]
push dword [esp + 0x54]
push dword [esp + 0x30]
push eax
push ebx
push dword [esp + 0x48]
call fcn.1001f0b0
add esp, 0x24
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x4c]
cvtsi2sd xmm0, dword [eax + 8]
divsd xmm0, qword [0x1006bcf0]
ucomisd xmm0, qword [0x1006bce0]
jb 0x1002587f
xor ebx, ebx
mov dword [esp + 0x30c], edi
dec ebx
mov dword [esp + 0x308], ebx
movsd xmm0, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xd0]
movsd xmm1, qword [esp + 0xd8]
lea edi, [esp + 0x308]
lea ecx, [esp + 0x5e0]
mov edx, edi
movsd qword [esp + 0x5f0], xmm0
movsd qword [esp + 0x5e8], xmm1
movsd qword [esp + 0x5e0], xmm2
call fcn.10036850
push 1
push edi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
lea ecx, [esp + 0x5e0]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x5e0]
lea eax, [esp + 0x308]
mov edi, edx
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov dword [esp + 8], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 4], eax
mov ecx, edi
mov eax, 0x7fffffff
movsd xmm1, qword [0x1006bce0]
cmp edx, ebx
sbb ecx, eax
mov eax, ebx
mov ecx, ebx
mov ebx, 0x7fffffff
cmovb eax, edx
mov dword [esp + 0xc], eax
mov eax, 0x7fffffff
cmovb eax, edi
add ecx, 1
adc ebx, esi
mov esi, edx
neg esi
mov esi, 0
sbb esi, edi
mov esi, 0
cmovge ebx, edi
cmovge ecx, edx
neg dword [esp + 4]
sbb esi, dword [esp + 8]
cmovl ecx, dword [esp + 0xc]
cmovl ebx, eax
sub ecx, dword [esp + 0x30]
sbb ebx, dword [esp + 0x2c]
mov edx, ecx
not edx
mov eax, ebx
xor eax, 0x7fffffff
or edx, eax
je 0x100258d8
mov eax, ebx
xor eax, 0x80000000
or eax, ecx
jne 0x100258b4
movsd xmm1, qword [0x1006bce8]
jmp 0x100258d8
movsd xmm1, qword [0x1006bce8]
ucomisd xmm1, xmm0
jb 0x10025ae8
xor ebx, ebx
mov ecx, 0x7fffffff
dec ebx
mov eax, ebx
add eax, 1
adc ecx, 0
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], ecx
jmp 0x10025774
push ebx
push ecx
call sym.mozglue.dll_public:_static_double___cdecl_mozilla::BaseTimeDurationPlatformUtils::ToSeconds_long_long___int64__
add esp, 8
fstp qword [esp + 0x58]
movsd xmm0, qword [0x1006bcf0]
movsd xmm1, qword [esp + 0x58]
mulsd xmm1, xmm0
mulsd xmm1, xmm0
maxsd xmm1, qword [0x1006bd00]
movsd xmm3, qword [0x1006bcf8]
mov ecx, dword [esp + 0x4c]
movsd qword [esp + 0x30], xmm1
movapd xmm0, xmm1
cvttsd2si eax, xmm1
movsd xmm2, qword [esp + 0x30]
subsd xmm0, xmm3
cvttsd2si edx, xmm0
xor edx, 0x80000000
ucomisd xmm2, xmm3
cmovb edx, eax
call fcn.100262c0
push 1
lea eax, [esp + 0x124]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
movsd xmm1, qword [esp + 0x128]
movsd xmm0, qword [esp + 0x130]
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [esp + 0x120]
divsd xmm1, qword [0x1006bcf0]
movsd qword [esp + 0xd0], xmm0
ucomisd xmm1, qword [0x1006bce0]
jb 0x10025ab0
xor eax, eax
mov ecx, 0x7fffffff
lea edi, [esp + 0xd0]
dec eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], eax
movsd xmm0, qword [esp + 0x318]
movsd xmm2, qword [esp + 0x308]
movsd xmm1, qword [esp + 0x310]
lea esi, [esp + 0x120]
lea edx, [esp + 0xb8]
mov ecx, esi
movsd qword [esp + 0x130], xmm0
movsd qword [esp + 0x128], xmm1
movsd qword [esp + 0x120], xmm2
call fcn.10036850
mov ecx, edi
push esi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov edi, edx
lea ecx, [esp + 0xd0]
push esi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x30], edx
mov ecx, edi
mov edx, 0x7fffffff
mov esi, 0
dec eax
cmp ebx, eax
sbb ecx, edx
mov ecx, eax
mov edx, 0x7fffffff
cmovb ecx, ebx
cmovb edx, edi
mov dword [esp + 8], ecx
mov ecx, eax
mov eax, 0x7fffffff
add ecx, 1
adc eax, esi
mov esi, ebx
neg esi
mov esi, 0
sbb esi, edi
mov esi, 0
cmovge ecx, ebx
cmovge eax, edi
neg dword [esp + 0x2c]
lea ebx, [esp + 0xd0]
sbb esi, dword [esp + 0x30]
cmovl ecx, dword [esp + 8]
cmovl eax, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007b4f8], esi
xor esi, esi
push 1
lea eax, [esp + 0xbc]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov eax, dword [0x1007b504]
mov edi, 0x7fffffff
test eax, eax
jne 0x10025097
jmp 0x100250a6
movsd xmm0, qword [0x1006bce8]
lea edi, [esp + 0xd0]
mov eax, 0xffffffff
ucomisd xmm0, xmm1
jb 0x10025b0e
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jmp 0x1002599b
sub esp, 8
movsd qword [esp], xmm0
call sym.mozglue.dll_public:_static_long_long___int64____cdecl_mozilla::BaseTimeDurationPlatformUtils::TicksFromMilliseconds_double_
add esp, 8
xor ebx, ebx
mov dword [esp + 0x30c], edx
mov dword [esp + 0x308], eax
dec ebx
jmp 0x10025774
sub esp, 8
movsd qword [esp], xmm1
call sym.mozglue.dll_public:_static_long_long___int64____cdecl_mozilla::BaseTimeDurationPlatformUtils::TicksFromMilliseconds_double_
add esp, 8
mov dword [esp + 0xbc], edx
jmp 0x10025994
mov eax, dword [eax + 0x218]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x44], ecx
mov ebx, dword [eax]
mov dword [esp + 0xc], eax
mov edi, dword [eax + 4]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x10025b4b
lock inc dword [eax + 0x38]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x10025b93
xor eax, eax
mov ecx, 2
inc eax
lock cmpxchg dword [ebx + 0x10], ecx
je 0x10025b93
mov edx, dword [esp + 4]
mov ecx, dword [0x1007b504]
mov eax, 0x108
mov edx, dword [edx + 0x30]
add ecx, eax
lea eax, [edi + 8]
push eax
push dword [0x1007b500]
call fcn.10020c50
add esp, 8
test al, al
jne 0x10025ec0
push 1
lea eax, [esp + 0x74]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov eax, dword [esp + 8]
mov edx, esi
mov ecx, dword [eax]
call fcn.10020fd0
mov esi, dword [ebx + 0x20]
mov eax, dword [esp + 0x5e0]
mov ecx, dword [esp + 0x5e4]
mov dword [esp + 0x10], ebx
test esi, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
je 0x10025bd4
lock inc dword [esi + 0x38]
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x30]
mov edx, dword [ecx]
mov byte [esp + 0x5e0], 0x11
mov dword [esp + 0x5e1], eax
lea eax, [esp + 0x5e0]
lea ecx, [esp + 0x308]
push eax
call fcn.1001ee50
add esp, 4
mov eax, dword [esp + 0x30c]
mov ebx, dword [esp + 0x308]
test esi, esi
mov dword [esp + 0x24], eax
je 0x10025c33
lock dec dword [esi + 0x38]
jne 0x10025c33
mov ecx, esi
call fcn.1001a3d0
push esi
call sym.mozglue.dll__aligned_free
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [edi + 8], ebx
mov dword [edi + 0xc], eax
mov byte [edi + 0x10], 1
mov dword [esp + 0x54], ebx
lea esi, [esp + 0x70]
mov ebx, dword [0x1007b500]
mov ecx, esi
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ecx, esi
mov dword [esp + 0x1c], eax
mov edi, edx
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x20], eax
mov ecx, edi
mov eax, 0x7fffffff
mov dword [esp + 0x14], edx
movsd xmm0, qword [0x1006bce0]
dec esi
mov edx, esi
cmp ebx, esi
sbb ecx, eax
mov eax, 0x7fffffff
mov ecx, esi
mov esi, 0
cmovb eax, edi
cmovb edx, ebx
add ecx, 1
mov dword [esp + 0x48], eax
mov eax, ebx
mov ebx, 0x7fffffff
adc ebx, esi
mov esi, eax
neg esi
mov esi, 0
sbb esi, edi
mov esi, 0
cmovge ebx, edi
cmovge ecx, eax
neg dword [esp + 0x20]
sbb esi, dword [esp + 0x14]
lea esi, [esp + 0x5e0]
cmovl ebx, dword [esp + 0x48]
cmovl ecx, edx
mov edx, ecx
not edx
mov eax, ebx
xor eax, 0x7fffffff
or edx, eax
je 0x10025d14
mov eax, ebx
xor eax, 0x80000000
or eax, ecx
jne 0x10025cf8
movsd xmm0, qword [0x1006bce8]
jmp 0x10025d14
push ebx
push ecx
call sym.mozglue.dll_public:_static_double___cdecl_mozilla::BaseTimeDurationPlatformUtils::ToSeconds_long_long___int64__
add esp, 8
fstp qword [esp + 0x60]
movsd xmm0, qword [esp + 0x60]
mulsd xmm0, qword [0x1006bcf0]
mov eax, dword [esp + 8]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
lea ecx, [esp + 0x308]
mov edx, dword [eax]
push esi
call fcn.1001ee50
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov esi, dword [eax]
test esi, esi
je 0x10025d8d
push 0x2cc
push 0
lea edi, [esp + 0x310]
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
call dword [sym.imp.kernel32.dll_SuspendThread]
cmp eax, 0xffffffff
je 0x10025d8d
mov dword [esp + 0x308], 0x10001
push edi
push esi
call dword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
jne 0x10025f2b
push esi
call dword [sym.imp.kernel32.dll_ResumeThread]
lea esi, [esp + 0x5e0]
lea ecx, [esp + 0x250]
mov edx, esi
call fcn.10020fd0
mov eax, dword [esp + 0x5f8]
mov ecx, dword [esp + 0x5fc]
xor ecx, dword [esp + 0x104]
xor eax, dword [esp + 0x100]
or eax, ecx
jne 0x10025e63
mov edi, dword [esp + 0x5e8]
mov esi, dword [esp + 0x5ec]
mov ecx, dword [0x1007b500]
lea ebx, [esp + 0x308]
mov edx, ebx
sub edi, dword [esp + 0xf0]
sbb esi, dword [esp + 0xf4]
add ecx, 0x18
call fcn.1001f700
cmp edi, dword [esp + 0x308]
sbb esi, 0
jae 0x10025ef4
mov eax, dword [0x1007b500]
xor ecx, ecx
mov edx, ebx
mov byte [esp + 0x110], 0
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], ecx
lea ecx, [esp + 0x110]
mov dword [esp + 0x308], ecx
lea ecx, [esp + 0x120]
add eax, 0x18
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], ecx
lea ecx, [esp + 0x250]
call fcn.100359b0
lea esi, [esp + 0x5e0]
jmp 0x10025ea4
mov ecx, 3
call fcn.10022dd0
test al, al
je 0x10025ea4
mov edi, dword [esp + 0x5e8]
sub edi, dword [esp + 0xf0]
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__getpid]
push edi
push esi
lea esi, [esp + 0x5e8]
push eax
push str._I__d__d__Stack_sample_too_big_for_local_storage__needed__u_bytes_n
call fcn.10022e80
add esp, 0x10
lea edi, [esp + 0x250]
mov ecx, edi
call fcn.10026080
mov ecx, edi
lea edx, [esp + 0xe8]
call fcn.10020fd0
mov edi, dword [esp + 4]
test edi, edi
je 0x10025ede
lock dec dword [edi + 0x38]
jne 0x10025ede
mov ecx, edi
call fcn.1001a3d0
push edi
call sym.mozglue.dll__aligned_free
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 8
cmp eax, dword [esp + 0x44]
jne 0x10025b37
jmp 0x100254f3
mov ecx, 3
call fcn.10022dd0
test al, al
lea esi, [esp + 0x5e0]
je 0x10025ea4
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__getpid]
push edi
push esi
lea esi, [esp + 0x5e8]
push eax
push str._I__d__d__Stack_sample_too_big_for_profiler_storage__needed__u_bytes_n
jmp 0x10025e9c
mov ebx, dword [0x1007b504]
mov edi, dword [esp + 0x3c0]
mov eax, dword [esp + 0x3bc]
mov ecx, dword [esp + 0x3cc]
test ebx, ebx
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], 0
je 0x10026066
lea eax, [esp + 0x140]
mov dword [esp + 0x120], 0x1006c110
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x134], eax
push 0x2004
push 0
lea eax, [esp + 0x5e8]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test byte [ebx + 0x21], 2
jne 0x1002602f
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x120]
xor ecx, ecx
push eax
lea eax, [esp + 0x5e4]
push eax
call fcn.10039d80
add esp, 8
mov eax, dword [0x1007b504]
test byte [eax + 0x20], 4
je 0x10025d86
mov edx, dword [esp + 0x140]
lea eax, [esp + 0x5d4]
mov byte [esp + 0x5d4], 0xb
mov dword [esp + 0x5d5], edi
lea ecx, [esp + 0x138]
push eax
call fcn.1001ee50
add esp, 4
jmp 0x10025d86
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x5e0]
lea edx, [esp + 0x110]
mov ecx, edi
push ebx
call fcn.10039f90
add esp, 4
lea eax, [esp + 0x120]
xor ecx, ecx
mov edx, edi
push eax
push ebx
call fcn.10039d80
add esp, 8
jmp 0x10025d86
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_ActivePS::Exists_aLock__
mov ecx, 0x696
int3