Function at 0x10040a40
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.100303a0
mov dword [esp + 0x44], ecx
mov eax, dword [0x1007d00c]
xor eax, ebp
mov dword [esp + 0x25e8], eax
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007e38c
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007e3a4], esi
mov eax, dword [0x1007e3b0]
mov cl, 1
test eax, eax
je 0x10040a90
test byte [eax + 0x21], 0x20
sete cl
mov byte [esp + 0x27], cl
mov dword [0x1007e3a4], 0
push 0x1007e38c
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
lea esi, [esp + 0x2d4]
mov dword [esi - 4], 0x1006d6a0
push 0x20000
push esi
call fcn.10036670
add esp, 8
mov dword [esi + 4], 0
mov ecx, dword [esi]
xor ebx, ebx
mov eax, 0
test ecx, ecx
je 0x10040adc
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 [0x1006d2f0]
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.1003c1f0
lea ecx, [esp + 0x140]
mov edx, esi
call fcn.10036570
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.100370b0
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::Now_bool_
add esp, 8
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1007e38c
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007e3a4], 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::Now_bool_
add esp, 8
mov eax, dword [0x1007e3b0]
test eax, eax
je 0x100419f8
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 0x100419f8
mov ecx, dword [eax + 0x120]
mov edx, esi
call fcn.100370b0
mov edx, dword [esp + 0x5e0]
mov ecx, dword [0x1007e3b0]
mov eax, 0x25c
add ecx, eax
push dword [esp + 0x5e4]
call fcn.10041b20
add esp, 4
push 1
lea eax, [esp + 0xa4]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov eax, dword [0x1007e3b0]
cmp byte [eax + 0x258], 0
jne 0x100410f9
cmp byte [eax + 0x259], 0
jne 0x100410f9
mov esi, dword [0x1007e3ac]
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 [0x1007e3b0]
mov eax, 0x120
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [0x1007e3ac]
mov ecx, dword [eax + 0xb4]
test ecx, ecx
mov dword [esp + 0x30], ebx
je 0x10040e9a
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], 0x15
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.100366f0
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 [0x1006d2a0]
je 0x10040d64
mov eax, ebx
xor eax, 0x80000000
or eax, edx
jne 0x10040d48
movsd xmm0, qword [0x1006d2a8]
jmp 0x10040d64
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 [0x1006d2b0]
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.100366f0
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 0x10040d97
mov edi, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
xor ebx, ebx
test eax, eax
je 0x10040dea
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 0x10040dc9
mov esi, dword [esp + 0x14]
mov byte [esp + 0x5e0], 0x16
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.100366f0
add esp, 4
mov byte [esp + 0x5e0], 0x18
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.100366f0
add esp, 4
test ebx, ebx
je 0x10040e85
mov byte [esp + 0x5e0], 0x17
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.100366f0
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 4
cmp eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
jne 0x10040cea
push 1
lea eax, [esp + 0x8c]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
cmp byte [esp + 0x27], 0
je 0x10040ec6
mov eax, dword [0x1007e3b0]
mov ecx, dword [eax + 0x234]
test ecx, ecx
jne 0x10041aef
push 1
push esi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov ecx, dword [0x1007e3b0]
add ecx, 0x40
call fcn.10042110
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.10036a30
add esp, 0x24
mov dword [0x1007e3a4], 0
push 0x1007e38c
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x44]
cvtsi2sd xmm0, dword [eax + 8]
divsd xmm0, qword [0x1006d2b0]
ucomisd xmm0, qword [0x1006d2a0]
jb 0x10041772
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.1002e5f0
push 1
push edi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_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 [0x1006d2a0]
je 0x100417cd
mov eax, ebx
xor eax, 0x80000000
or eax, ecx
jne 0x100417a9
movsd xmm1, qword [0x1006d2a8]
jmp 0x100417cd
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x1004125f
lock inc dword [eax + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x10]
test eax, eax
mov dword [esp + 0xc], edx
je 0x100412af
xor eax, eax
inc eax
mov ecx, 2
lock cmpxchg dword [edx + 0x10], ecx
je 0x100412af
mov ecx, dword [0x1007e3b0]
mov eax, 0x120
add ecx, eax
lea eax, [ebx + 8]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x30]
push eax
push dword [0x1007e3ac]
call fcn.1003be80
mov edx, dword [esp + 0x14]
add esp, 8
test al, al
jne 0x100415a0
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::Now_bool_
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, esi
call fcn.100370b0
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 0x100412f2
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.100366f0
add esp, 4
mov esi, dword [esp + 0x308]
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x14], eax
lock dec dword [edi + 0x38]
jne 0x10041342
mov ecx, edi
call fcn.1002e4b0
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 [0x1007e3ac]
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 [0x1006d2a0]
lea ebx, [esp + 0x308]
je 0x10041421
mov eax, esi
xor eax, 0x80000000
or eax, ecx
jne 0x10041405
movsd xmm0, qword [0x1006d2a8]
jmp 0x10041421
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 [0x1006d2b0]
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.100366f0
add esp, 4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov edi, dword [eax]
test edi, edi
je 0x10041477
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 0x100415d0
lea ecx, [esp + 0x250]
mov edx, esi
call fcn.100370b0
mov eax, dword [esp + 0x5fc]
xor eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x5f8]
xor ecx, dword [esp + 0x100]
or ecx, eax
jne 0x1004153f
mov edi, dword [esp + 0x5e8]
sub edi, dword [esp + 0xf0]
mov esi, dword [esp + 0x5ec]
sbb esi, dword [esp + 0xf4]
mov ecx, dword [0x1007e3ac]
add ecx, 0x18
mov edx, ebx
call fcn.10037150
cmp edi, dword [esp + 0x308]
sbb esi, 0
jae 0x100415f3
mov eax, dword [0x1007e3ac]
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.10041e50
lea esi, [esp + 0x5e0]
jmp 0x10041580
mov ecx, 3
call fcn.1003e160
test al, al
je 0x10041580
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.1003e210
add esp, 0x10
lea edi, [esp + 0x250]
mov ecx, edi
call fcn.10041ed0
mov ecx, edi
lea edx, [esp + 0xe8]
call fcn.100370b0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x100415be
lock dec dword [ebx + 0x38]
jne 0x100415be
mov ecx, ebx
call fcn.1002e4b0
push ebx
call sym.mozglue.dll__aligned_free
add esp, 4
add edi, 8
cmp edi, dword [esp + 0x3c]
jne 0x1004124f
jmp 0x10040ec6
mov dword [esp + 0x308], 0x10001
push ebx
push edi
call dword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
jne 0x1004162e
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
jmp 0x10041477
mov ecx, 3
call fcn.1003e160
test al, al
lea esi, [esp + 0x5e0]
je 0x10041580
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 0x10041578
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 [0x1007e3b0]
test esi, esi
je 0x10041b01
mov dword [esp + 0x120], 0x1006d830
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 0x1004172b
xor ecx, ecx
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x120]
push eax
lea esi, [esp + 0x5e4]
push esi
call fcn.10041c90
add esp, 8
mov eax, dword [0x1007e3b0]
test byte [eax + 0x20], 4
je 0x1004175f
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.100366f0
add esp, 4
jmp 0x1004175f
mov esi, dword [esp + 0xc]
mov ecx, esi
lea edx, [esp + 0x110]
lea ebx, [esp + 0x5e0]
push ebx
call fcn.10041c30
add esp, 4
xor ecx, ecx
mov edx, esi
lea eax, [esp + 0x120]
push eax
push ebx
call fcn.10041c90
add esp, 8
mov esi, ebx
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
lea ebx, [esp + 0x308]
jmp 0x10041477
movsd xmm1, qword [0x1006d2a8]
ucomisd xmm1, xmm0
mov ebx, 0xffffffff
jb 0x100419b2
mov eax, ebx
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], ecx
jmp 0x10041143
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 [0x1006d2b0]
mulsd xmm1, xmm0
mulsd xmm1, xmm0
maxsd xmm1, qword [0x1006d308]
movsd qword [esp + 0x18], xmm1
cvttsd2si eax, xmm1
movapd xmm0, xmm1
movsd xmm1, qword [0x1006d300]
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.100422a0
push 1
lea eax, [esp + 0x124]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_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 [0x1006d2b0]
ucomisd xmm1, qword [0x1006d2a0]
jb 0x10041981
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.1002e5f0
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 0x1007e38c
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov dword [0x1007e3a4], esi
push 1
lea eax, [esp + 0xbc]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov eax, dword [0x1007e3b0]
test eax, eax
lea esi, [esp + 0x5e0]
jne 0x10040bb1
jmp 0x100419f8
movsd xmm0, qword [0x1006d2a8]
ucomisd xmm0, xmm1
mov eax, 0xffffffff
jb 0x100419d5
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jmp 0x10041877
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 0x10041143
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 0x10041877
mov dword [0x1007e3a4], 0
push 0x1007e38c
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x148], 0x1006d6a0
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x10041a51
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.10011910
lea ecx, [esp + 0x14c]
push edi
call fcn.10011910
lea ecx, [esp + 0x250]
call fcn.10011840
mov dword [esp + 0x2d0], 0x1006d6a0
mov esi, dword [esp + 0x304]
test esi, esi
je 0x10041abf
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.10011910
lea ecx, [esp + 0x2d4]
push edi
call fcn.10011910
mov ecx, dword [esp + 0x25e8]
xor ecx, ebp
call fcn.1002f5c0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [eax + 0x230]
lea eax, [edi + ecx*8]
mov dword [esp + 0x3c], eax
jmp 0x1004124f
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_ActivePS::Exists_aLock__
int3