Function at 0x10040f30
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, 0xfffffff0
mov eax, 0x25f0
call fcn.1002d8b0
mov dword [esp + 0x44], 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 eax, dword [0x1007b504]
mov cl, 1
test eax, eax
je 0x10040f80
test byte [eax + 0x21], 0x40
sete cl
mov byte [esp + 0x27], cl
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
lea esi, [esp + 0x2d4]
mov dword [esi - 4], 0x1006ada0
push 0x20000
push esi
call fcn.100335f0
add esp, 8
mov dword [esi + 4], 0
mov ecx, dword [esi]
xor ebx, ebx
mov eax, 0
test ecx, ecx
je 0x10040fcc
mov eax, dword [ecx + 0x20]
lea edi, [esp + 0x2d0]
mov dword [edi + 0xc], eax
mov dword [edi + 0x34], ebx
lea esi, [esp + 0x250]
push esi
call dword [sym.imp.kernel32.dll_InitializeSRWLock]
mov byte [esi + 0x38], 0
xorpd xmm0, xmm0
movupd xmmword [esi + 0x3c], xmm0
movapd xmm1, xmmword [0x1006ad30]
movupd xmmword [esi + 0x4c], xmm1
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
xor eax, eax
inc eax
mov dword [esi + 0x60], eax
movupd xmmword [esi + 0x68], xmm0
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov ecx, esi
push edi
call fcn.10033670
lea ecx, [esp + 0x140]
mov edx, esi
call fcn.100371a0
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.10037b70
lea eax, [esp + 0xd0]
xor ecx, ecx
inc ecx
push ecx
push eax
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]
mov dword [0x1007b4f8], esi
lea eax, [esp + 0xb8]
xor ecx, ecx
inc ecx
push ecx
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 0x10041ee8
lea esi, [esp + 0x5e0]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov ecx, dword [eax]
mov edx, dword [esp + 0x44]
cmp ecx, dword [edx + 4]
jne 0x10041ee8
mov ecx, dword [eax + 0x110]
mov edx, esi
call fcn.10037b70
mov edx, dword [esp + 0x5e0]
mov ecx, dword [0x1007b504]
mov eax, 0x24c
add ecx, eax
push dword [esp + 0x5e4]
call fcn.10042010
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 + 0x248], 0
jne 0x100415e9
cmp byte [eax + 0x249], 0
jne 0x100415e9
mov esi, dword [0x1007b500]
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 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
xor ecx, ecx
dec ecx
cmp ebx, ecx
mov ecx, edi
mov esi, 0x7fffffff
sbb ecx, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov esi, 0xffffffff
mov eax, esi
cmovb eax, ebx
mov dword [esp + 0xc], eax
mov ecx, ebx
mov edx, 0x7fffffff
cmovb edx, edi
mov eax, esi
add eax, 1
mov ebx, 0x7fffffff
mov esi, 0
adc ebx, esi
mov esi, ecx
neg esi
mov esi, 0
sbb esi, edi
cmovge ebx, edi
cmovge eax, ecx
neg dword [esp + 0x10]
mov esi, 0
sbb esi, dword [esp + 0x18]
lea esi, [esp + 0x5e0]
cmovl ebx, edx
cmovl eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [0x1007b504]
mov eax, 0x110
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [0x1007b500]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
mov dword [esp + 0x30], ebx
je 0x1004138a
mov eax, dword [eax + 0xb0]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov byte [esp + 0x5e0], 0x14
mov dword [esp + 0x5e1], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea edi, [esp + 0x308]
mov ecx, edi
push esi
call fcn.100372a0
add esp, 4
mov edx, dword [esp + 0x50]
mov eax, edx
not eax
mov ecx, ebx
xor ecx, 0x7fffffff
or ecx, eax
movsd xmm0, qword [0x1006aec0]
je 0x10041254
mov eax, ebx
xor eax, 0x80000000
or eax, edx
jne 0x10041238
movsd xmm0, qword [0x1006aec8]
jmp 0x10041254
push ebx
push edx
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 [0x1006aed0]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov ecx, edi
push esi
call fcn.100372a0
add esp, 4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov eax, esi
mov edx, ecx
mov ebx, esi
lock cmpxchg8b qword [edi]
xor edx, ecx
xor eax, esi
or eax, edx
jne 0x10041287
mov edi, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
xor ebx, ebx
test eax, eax
je 0x100412da
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, ebx
mov edx, ecx
mov esi, dword [esp + 0x18]
lock cmpxchg8b qword [esi]
xor edx, ecx
xor eax, ebx
or eax, edx
mov eax, dword [esp + 0x18]
jne 0x100412b9
mov esi, dword [esp + 0x14]
mov byte [esp + 0x5e0], 0x15
xor eax, eax
mov dword [esp + 0x5e5], eax
mov dword [esp + 0x5e1], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x308]
lea eax, [esp + 0x5e0]
push eax
call fcn.100372a0
add esp, 4
mov byte [esp + 0x5e0], 0x17
mov dword [esp + 0x5e5], edi
mov dword [esp + 0x5e1], esi
lea esi, [esp + 0x5e0]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x308]
push esi
call fcn.100372a0
add esp, 4
test ebx, ebx
je 0x10041375
mov byte [esp + 0x5e0], 0x16
mov dword [esp + 0x5e1], ebx
sar ebx, 0x1f
mov dword [esp + 0x5e5], ebx
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x308]
push esi
call fcn.100372a0
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 4
cmp eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
jne 0x100411da
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 + 0x27], 0
je 0x100413b6
mov eax, dword [0x1007b504]
mov ecx, dword [eax + 0x224]
test ecx, ecx
jne 0x10041fdf
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.100425f0
mov ecx, esi
lea eax, [esp + 0x88]
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
mov ecx, esi
lea eax, [esp + 0x88]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
xor eax, eax
dec eax
cmp ebx, eax
mov ecx, edi
mov edx, 0x7fffffff
sbb ecx, edx
mov edx, 0x7fffffff
cmovb edx, edi
mov ecx, edi
mov esi, eax
cmovb esi, ebx
add eax, 1
mov dword [esp + 0x18], eax
mov eax, 0x7fffffff
mov edi, 0
adc eax, edi
mov dword [esp + 0xc], eax
mov edi, ebx
neg edi
mov edi, 0
sbb edi, ecx
cmovl ecx, eax
cmovl ebx, dword [esp + 0x18]
neg dword [esp + 0x20]
mov eax, 0
sbb eax, dword [esp + 0x14]
cmovl ebx, esi
mov dword [esp + 0x14], ebx
cmovl ecx, edx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x88]
lea edi, [esp + 0xa0]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov esi, edx
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
mov dword [esp + 0x2c], eax
xor edi, edi
dec edi
cmp ebx, edi
mov eax, esi
mov ecx, esi
mov esi, 0x7fffffff
sbb ecx, esi
mov ecx, 0x7fffffff
cmovb ecx, eax
mov esi, edi
cmovb esi, ebx
mov edi, ebx
neg edi
mov edi, 0
sbb edi, eax
cmovl eax, dword [esp + 0xc]
mov edi, eax
cmovl ebx, dword [esp + 0x18]
neg dword [esp + 0x2c]
mov eax, 0
sbb eax, edx
cmovl ebx, esi
mov dword [esp + 0x2c], ebx
cmovl edi, ecx
mov dword [esp + 0x40], edi
lea ecx, [esp + 0xa0]
lea edi, [esp + 0xb8]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov esi, edx
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
mov dword [esp + 0x28], eax
xor edi, edi
dec edi
cmp ebx, edi
mov eax, esi
mov ecx, esi
mov esi, 0x7fffffff
sbb ecx, esi
mov ecx, 0x7fffffff
cmovb ecx, eax
mov esi, edi
cmovb esi, ebx
mov edi, ebx
neg edi
mov edi, 0
sbb edi, eax
cmovl eax, dword [esp + 0xc]
mov edi, eax
cmovl ebx, dword [esp + 0x18]
neg dword [esp + 0x28]
mov eax, 0
sbb eax, edx
cmovl ebx, esi
mov dword [esp + 0x28], ebx
cmovl edi, ecx
mov dword [esp + 0x3c], edi
lea ecx, [esp + 0xb8]
lea edi, [esp + 0xd0]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov esi, edx
lea ecx, [esp + 0xb8]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
xor edi, edi
dec edi
cmp ebx, edi
mov ecx, esi
mov eax, 0x7fffffff
sbb ecx, eax
mov edx, 0x7fffffff
cmovb edx, esi
mov ecx, edi
cmovb ecx, ebx
mov edi, ebx
neg edi
mov edi, 0
sbb edi, esi
mov eax, dword [esp + 0xc]
cmovge eax, esi
mov edi, dword [esp + 0x18]
cmovge edi, ebx
neg dword [esp + 0x34]
mov esi, 0
sbb esi, dword [esp + 0x38]
cmovl edi, ecx
cmovl eax, edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
push dword [esp + 0x20]
push dword [esp + 0x18]
push dword [esp + 0x48]
push dword [esp + 0x38]
push dword [esp + 0x4c]
push dword [esp + 0x3c]
push eax
push edi
push dword [esp + 0x50]
call fcn.100375e0
add esp, 0x24
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x44]
cvtsi2sd xmm0, dword [eax + 8]
divsd xmm0, qword [0x1006aed0]
ucomisd xmm0, qword [0x1006aec0]
jb 0x10041c62
xor ebx, ebx
dec ebx
mov dword [esp + 0x308], ebx
mov eax, 0x7fffffff
mov dword [esp + 0x30c], eax
movsd xmm0, qword [esp + 0xe0]
movsd qword [esp + 0x5f0], xmm0
movupd xmm0, xmmword [esp + 0xd0]
movapd xmmword [esp + 0x5e0], xmm0
lea ebx, [esp + 0x5e0]
mov ecx, ebx
lea edi, [esp + 0x308]
mov edx, edi
call fcn.1002b8d0
push 1
push edi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov ecx, ebx
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov ebx, eax
mov dword [esp + 0x18], eax
mov esi, edx
mov dword [esp + 0x30], edx
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
xor edi, edi
dec edi
cmp ebx, edi
mov ecx, esi
mov esi, 0x7fffffff
sbb ecx, esi
mov ecx, edi
cmovb ecx, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
mov edx, 0x7fffffff
mov eax, dword [esp + 0x30]
cmovb edx, eax
mov ecx, edi
add ecx, 1
mov ebx, 0x7fffffff
mov esi, 0
adc ebx, esi
mov esi, dword [esp + 0x18]
neg esi
mov esi, 0
sbb esi, eax
cmovge ebx, eax
cmovge ecx, dword [esp + 0x18]
neg dword [esp + 0xc]
mov esi, 0
sbb esi, dword [esp + 0x14]
cmovl ebx, edx
cmovl ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x4c]
sbb ebx, dword [esp + 0x48]
mov eax, ebx
xor eax, 0x7fffffff
mov edx, ecx
not edx
or edx, eax
movsd xmm1, qword [0x1006aec0]
je 0x10041cbd
mov eax, ebx
xor eax, 0x80000000
or eax, ecx
jne 0x10041c99
movsd xmm1, qword [0x1006aec8]
jmp 0x10041cbd
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x1004174f
lock inc dword [eax + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x10]
test eax, eax
mov dword [esp + 0xc], edx
je 0x1004179f
xor eax, eax
inc eax
mov ecx, 2
lock cmpxchg dword [edx + 0x10], ecx
je 0x1004179f
mov ecx, dword [0x1007b504]
mov eax, 0x110
add ecx, eax
lea eax, [ebx + 8]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x30]
push eax
push dword [0x1007b500]
call fcn.1003c540
mov edx, dword [esp + 0x14]
add esp, 8
test al, al
jne 0x10041a90
mov dword [esp + 0x28], edi
push 1
lea eax, [esp + 0x74]
push eax
mov edi, edx
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, esi
call fcn.10037b70
mov eax, dword [esp + 0x5e0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5e4]
mov dword [esp + 0x34], eax
mov edi, dword [edi + 0x20]
test edi, edi
je 0x100417e2
lock inc dword [edi + 0x38]
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov byte [esp + 0x5e0], 0x11
mov dword [esp + 0x5e1], eax
lea ecx, [esp + 0x308]
push esi
call fcn.100372a0
add esp, 4
mov esi, dword [esp + 0x308]
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x14], eax
lock dec dword [edi + 0x38]
jne 0x10041832
mov ecx, edi
call fcn.1002b790
push edi
call sym.mozglue.dll__aligned_free
add esp, 4
mov dword [esp + 0x54], esi
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x10], 1
mov esi, dword [0x1007b500]
lea ecx, [esp + 0x70]
push esi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov edi, eax
mov ebx, edx
lea ecx, [esp + 0x70]
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
mov dword [esp + 0x20], edx
xor esi, esi
dec esi
cmp edi, esi
mov ecx, ebx
mov eax, 0x7fffffff
sbb ecx, eax
mov eax, 0x7fffffff
cmovb eax, ebx
mov dword [esp + 0x40], eax
mov edx, esi
cmovb edx, edi
mov eax, edi
mov ecx, esi
add ecx, 1
mov esi, 0x7fffffff
mov edi, 0
adc esi, edi
mov edi, eax
neg edi
mov edi, 0
sbb edi, ebx
cmovge esi, ebx
cmovge ecx, eax
neg dword [esp + 0x2c]
mov edi, 0
sbb edi, dword [esp + 0x20]
cmovl ecx, edx
cmovl esi, dword [esp + 0x40]
mov eax, esi
xor eax, 0x7fffffff
mov edx, ecx
not edx
or edx, eax
movsd xmm0, qword [0x1006aec0]
lea ebx, [esp + 0x308]
je 0x10041911
mov eax, esi
xor eax, 0x80000000
or eax, ecx
jne 0x100418f5
movsd xmm0, qword [0x1006aec8]
jmp 0x10041911
push esi
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 [0x1006aed0]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov ecx, ebx
lea esi, [esp + 0x5e0]
push esi
call fcn.100372a0
add esp, 4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov edi, dword [eax]
test edi, edi
je 0x10041967
push 0x2cc
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push edi
call dword [sym.imp.kernel32.dll_SuspendThread]
cmp eax, 0xffffffff
jne 0x10041ac0
lea ecx, [esp + 0x250]
mov edx, esi
call fcn.10037b70
mov eax, dword [esp + 0x5fc]
xor eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x5f8]
xor ecx, dword [esp + 0x100]
or ecx, eax
jne 0x10041a2f
mov edi, dword [esp + 0x5e8]
sub edi, dword [esp + 0xf0]
mov esi, dword [esp + 0x5ec]
sbb esi, dword [esp + 0xf4]
mov ecx, dword [0x1007b500]
add ecx, 0x18
mov edx, ebx
call fcn.10037c10
cmp edi, dword [esp + 0x308]
sbb esi, 0
jae 0x10041ae3
mov eax, dword [0x1007b500]
add eax, 0x18
xor ecx, ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], ecx
mov byte [esp + 0x110], 0
lea ecx, [esp + 0x110]
mov dword [esp + 0x308], ecx
mov dword [esp + 0x30c], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x310], eax
lea ecx, [esp + 0x250]
mov edx, ebx
call fcn.10042340
lea esi, [esp + 0x5e0]
jmp 0x10041a70
mov ecx, 3
call fcn.1003e650
test al, al
je 0x10041a70
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.1003e700
add esp, 0x10
lea edi, [esp + 0x250]
mov ecx, edi
call fcn.100423c0
mov ecx, edi
lea edx, [esp + 0xe8]
call fcn.10037b70
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x10041aae
lock dec dword [ebx + 0x38]
jne 0x10041aae
mov ecx, ebx
call fcn.1002b790
push ebx
call sym.mozglue.dll__aligned_free
add esp, 4
add edi, 8
cmp edi, dword [esp + 0x3c]
jne 0x1004173f
jmp 0x100413b6
mov dword [esp + 0x308], 0x10001
push ebx
push edi
call dword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
jne 0x10041b1e
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
jmp 0x10041967
mov ecx, 3
call fcn.1003e650
test al, al
lea esi, [esp + 0x5e0]
je 0x10041a70
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 0x10041a68
mov eax, dword [esp + 0x3bc]
mov ebx, dword [esp + 0x3c0]
mov dword [esp + 0x110], ebx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], 0
mov esi, dword [0x1007b504]
test esi, esi
je 0x10041ff1
mov dword [esp + 0x120], 0x1006b340
lea eax, [esp + 0x140]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x34]
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 [esi + 0x21], 2
jne 0x10041c1b
xor ecx, ecx
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x120]
push eax
lea esi, [esp + 0x5e4]
push esi
call fcn.10042180
add esp, 8
mov eax, dword [0x1007b504]
test byte [eax + 0x20], 4
je 0x10041c4f
mov byte [esp + 0x5d4], 0xb
mov dword [esp + 0x5d5], ebx
mov edx, dword [esp + 0x140]
lea ecx, [esp + 0x138]
lea eax, [esp + 0x5d4]
push eax
call fcn.100372a0
add esp, 4
jmp 0x10041c4f
mov esi, dword [esp + 0xc]
mov ecx, esi
lea edx, [esp + 0x110]
lea ebx, [esp + 0x5e0]
push ebx
call fcn.10042120
add esp, 4
xor ecx, ecx
mov edx, esi
lea eax, [esp + 0x120]
push eax
push ebx
call fcn.10042180
add esp, 8
mov esi, ebx
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
lea ebx, [esp + 0x308]
jmp 0x10041967
movsd xmm1, qword [0x1006aec8]
ucomisd xmm1, xmm0
mov ebx, 0xffffffff
jb 0x10041ea2
mov eax, ebx
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], ecx
jmp 0x10041633
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 xmm1, qword [esp + 0x58]
movsd xmm0, qword [0x1006aed0]
mulsd xmm1, xmm0
mulsd xmm1, xmm0
maxsd xmm1, qword [0x1006af08]
movsd qword [esp + 0x18], xmm1
cvttsd2si eax, xmm1
movapd xmm0, xmm1
movsd xmm1, qword [0x1006af00]
subsd xmm0, xmm1
cvttsd2si edx, xmm0
xor edx, 0x80000000
movsd xmm0, qword [esp + 0x18]
ucomisd xmm0, xmm1
cmovb edx, eax
mov ecx, dword [esp + 0x44]
call fcn.10042790
push 1
lea eax, [esp + 0x124]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::NowUnfuzzed_bool_
movsd xmm1, qword [esp + 0x20]
add esp, 8
movsd xmm0, qword [esp + 0x130]
movsd qword [esp + 0xe0], xmm0
movupd xmm0, xmmword [esp + 0x120]
movapd xmmword [esp + 0xd0], xmm0
divsd xmm1, qword [0x1006aed0]
ucomisd xmm1, qword [0x1006aec0]
jb 0x10041e71
xor eax, eax
dec eax
mov dword [esp + 0xb8], eax
mov eax, 0x7fffffff
mov dword [esp + 0xbc], eax
movsd xmm0, qword [esp + 0x318]
movsd qword [esp + 0x130], xmm0
movupd xmm0, xmmword [esp + 0x308]
movapd xmmword [esp + 0x120], xmm0
lea edi, [esp + 0x120]
mov ecx, edi
lea edx, [esp + 0xb8]
call fcn.1002b8d0
lea esi, [esp + 0xd0]
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 ebx, eax
mov dword [esp + 0x14], eax
mov edi, edx
mov ecx, esi
lea eax, [esp + 0x120]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
xor esi, esi
dec esi
cmp ebx, esi
mov ecx, edi
mov ebx, 0x7fffffff
sbb ecx, ebx
mov ecx, esi
mov ebx, dword [esp + 0x14]
cmovb ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov edx, 0x7fffffff
cmovb edx, edi
mov ecx, esi
add ecx, 1
mov eax, 0x7fffffff
mov esi, 0
adc eax, esi
mov esi, ebx
neg esi
mov esi, 0
sbb esi, edi
cmovge eax, edi
cmovge ecx, ebx
neg dword [esp + 0xc]
mov esi, 0
sbb esi, dword [esp + 0x10]
cmovl eax, edx
mov dword [esp + 0x48], eax
cmovl ecx, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007b4f8], 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]
test eax, eax
lea esi, [esp + 0x5e0]
jne 0x100410a1
jmp 0x10041ee8
movsd xmm0, qword [0x1006aec8]
ucomisd xmm0, xmm1
mov eax, 0xffffffff
jb 0x10041ec5
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jmp 0x10041d67
sub esp, 8
movsd qword [esp], xmm0
call sym.mozglue.dll_public:_static_long_long___int64____cdecl_mozilla::BaseTimeDurationPlatformUtils::TicksFromMilliseconds_double_
add esp, 8
mov dword [esp + 0x30c], edx
mov dword [esp + 0x308], eax
jmp 0x10041633
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
mov dword [esp + 0xb8], eax
jmp 0x10041d67
mov dword [0x1007b4f8], 0
push 0x1007b4e0
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x148], 0x1006ada0
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x10041f41
lea eax, [esp + 0x158]
xor ebx, ebx
cmp esi, eax
setne bl
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
call edi
lea eax, [esp + 0x158]
mov dword [eax + 0x24], 0
lea ecx, [esp + 0x150]
xor edi, edi
push edi
call fcn.10014560
lea ecx, [esp + 0x14c]
push edi
call fcn.10014560
lea ecx, [esp + 0x250]
call fcn.1000fd90
mov dword [esp + 0x2d0], 0x1006ada0
mov esi, dword [esp + 0x304]
test esi, esi
je 0x10041faf
lea eax, [esp + 0x2e0]
xor ebx, ebx
cmp esi, eax
setne bl
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
call edi
xor edi, edi
lea eax, [esp + 0x2e0]
mov dword [eax + 0x24], 0
lea ecx, [esp + 0x2d8]
push edi
call fcn.10014560
lea ecx, [esp + 0x2d4]
push edi
call fcn.10014560
mov ecx, dword [esp + 0x25e8]
xor ecx, ebp
call fcn.1002cad0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [eax + 0x220]
lea eax, [edi + ecx*8]
mov dword [esp + 0x3c], eax
jmp 0x1004173f
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_ActivePS::Exists_aLock__
int3