Function at 0x10055910
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.100476a0
mov dword [esp + 0x2c], ecx
mov eax, dword [0x1009a00c]
xor eax, ebp
mov dword [esp + 0x25e8], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [0x1009b4d0], esi
mov eax, dword [0x1009b4dc]
mov byte [esp + 0xb], 1
test eax, eax
je 0x10055965
test byte [eax + 0x39], 4
sete byte [esp + 0xb]
mov dword [0x1009b4d0], 0
push 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea esi, [esp + 0x2d4]
mov dword [esi - 4], 0x100887b0
push 0x20000
push esi
call fcn.10064e90
add esp, 8
mov dword [esi + 4], 0
mov ecx, dword [esi]
xor ebx, ebx
mov eax, 0
test ecx, ecx
je 0x100559ad
mov eax, dword [ecx + 0x38]
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], bl
xorpd xmm1, xmm1
movupd xmmword [esi + 0x3c], xmm1
movaps xmm0, xmmword [0x10088270]
movups xmmword [esi + 0x4c], xmm0
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
xor eax, eax
inc eax
mov dword [esi + 0x60], eax
movupd xmmword [esi + 0x68], xmm1
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov ecx, esi
push edi
call fcn.10061dd0
mov dword [esp + 0x138], esi
mov byte [esp + 0x178], bl
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x198], ebx
xorps xmm0, xmm0
movups xmmword [esp + 0x180], xmm0
mov dword [esp + 0x190], ebx
movapd xmm0, xmmword [0x10088280]
movupd xmmword [esp + 0x1a0], xmm0
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1b8], ebx
movupd xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1d8], ebx
movupd xmmword [esp + 0x1e0], xmm0
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x1f8], ebx
movupd xmmword [esp + 0x200], xmm0
mov dword [esp + 0x210], ebx
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x218], ebx
movupd xmmword [esp + 0x220], xmm0
mov dword [esp + 0x230], ebx
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x238], ebx
movupd xmmword [esp + 0x240], xmm0
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.10050b90
lea eax, [esp + 0xd0]
xor edi, edi
inc edi
push edi
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 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [0x1009b4d0], esi
lea eax, [esp + 0xb8]
push edi
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov eax, dword [0x1009b4dc]
test eax, eax
jne 0x10055bdc
mov dword [0x1009b4d0], 0
push 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea ecx, [esp + 0x140]
call fcn.10062820
lea ecx, [esp + 0x250]
call fcn.10050c20
mov esi, dword [esp + 0x304]
test esi, esi
je 0x10055b92
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
lea eax, [esp + 0x2e0]
mov dword [eax + 0x24], 0
mov esi, dword [esp + 0x2d8]
mov dword [esp + 0x2d8], 0
test esi, esi
jne 0x10056970
mov esi, dword [esp + 0x2d4]
mov dword [esp + 0x2d4], 0
test esi, esi
jne 0x10056985
mov ecx, dword [esp + 0x25e8]
xor ecx, ebp
call fcn.100468e0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edi, [esp + 0x5e0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
cmp ecx, dword [edx + 4]
jne 0x10055b2c
mov ecx, dword [eax + 0x58]
mov edx, edi
call fcn.10050b90
mov edx, dword [esp + 0x5e0]
mov ecx, dword [0x1009b4dc]
mov eax, 0x19c
add ecx, eax
push dword [esp + 0x5e4]
call fcn.10065230
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 [0x1009b4b4]
test eax, eax
jg 0x100560d1
mov eax, dword [0x1009b4dc]
cmp byte [eax + 0x198], 0
jne 0x100560d1
cmp byte [eax + 0x199], 0
jne 0x100560d1
mov esi, dword [0x1009b4d8]
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 edi, eax
mov ebx, 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
cmp eax, 1
sbb edx, 0
jl 0x10055cb4
test ebx, ebx
mov eax, 0xffffffff
cmovs edi, eax
mov dword [esp + 0x28], edi
mov eax, 0x7fffffff
cmp ebx, eax
cmovae ebx, eax
jmp 0x10055cd3
mov eax, edi
neg eax
mov eax, 0
sbb eax, ebx
mov eax, 0x80000000
cmovl ebx, eax
mov eax, 0
cmovl edi, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x4c], ebx
mov esi, dword [0x1009b4dc]
add esi, 0x58
mov eax, dword [0x1009b4d8]
mov ecx, dword [eax + 0x34]
test ecx, ecx
lea edi, [esp + 0x5e0]
mov dword [esp + 0x10], esi
je 0x10055ea7
mov ebx, dword [eax + 0x30]
lea eax, [ebx + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov byte [esp + 0x5e0], 0x15
mov dword [esp + 0x5e1], eax
mov edx, dword [esi]
lea ecx, [esp + 0x308]
push edi
call fcn.1004ead0
add esp, 4
mov esi, dword [esp + 0x28]
mov eax, esi
not eax
mov edx, dword [esp + 0x4c]
mov ecx, edx
xor ecx, 0x7fffffff
or ecx, eax
movsd xmm0, qword [0x10088220]
je 0x10055d78
lea eax, [edx - 0x80000000]
or eax, esi
jne 0x10055d5c
movsd xmm0, qword [0x10088228]
jmp 0x10055d78
push edx
push esi
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 [0x10088230]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x308]
push edi
call fcn.1004ead0
add esp, 4
mov dword [esp + 0xc], ebx
mov eax, dword [ebx]
mov dword [esp], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
mov edi, dword [esi]
mov ecx, dword [esi + 4]
mov eax, edi
mov edx, ecx
mov ebx, edi
lock cmpxchg8b qword [esi]
xor edx, ecx
xor eax, edi
or eax, edx
jne 0x10055daf
mov esi, ecx
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
xor ebx, ebx
test eax, eax
je 0x10055dff
mov dword [esp], edi
mov dword [esp + 0x30], eax
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, ebx
mov edx, ecx
mov edi, dword [esp + 0x30]
lock cmpxchg8b qword [edi]
xor edx, ecx
xor eax, ebx
or eax, edx
mov eax, dword [esp + 0x30]
jne 0x10055ddf
mov edi, dword [esp]
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.1004ead0
add esp, 4
mov byte [esp + 0x5e0], 0x18
mov dword [esp + 0x5e5], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x5e1], edi
lea edi, [esp + 0x5e0]
mov edx, dword [esi]
lea ecx, [esp + 0x308]
push edi
call fcn.1004ead0
add esp, 4
test ebx, ebx
je 0x10055e96
mov byte [esp + 0x5e0], 0x17
mov dword [esp + 0x5e1], ebx
sar ebx, 0x1f
mov dword [esp + 0x5e5], ebx
mov edx, dword [esi]
lea ecx, [esp + 0x308]
push edi
call fcn.1004ead0
add esp, 4
mov ebx, dword [esp + 0xc]
add ebx, 4
cmp ebx, dword [esp + 4]
jne 0x10055d05
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 + 0xb], 0
je 0x10055ed3
mov eax, dword [0x1009b4dc]
mov ecx, dword [eax + 0x174]
test ecx, ecx
jne 0x1005642f
push 1
lea edi, [esp + 0x5e4]
push edi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov eax, dword [0x1009b4dc]
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x10055ef6
call fcn.10065860
mov ecx, edi
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 esi, edx
mov ecx, edi
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
cmp eax, 1
sbb edx, 0
jl 0x10055f3a
test esi, esi
mov eax, 0xffffffff
cmovs ebx, eax
mov eax, 0x7fffffff
cmp esi, eax
cmovae esi, eax
mov dword [esp + 0xc], esi
jmp 0x10055f59
mov eax, ebx
neg eax
mov eax, 0
sbb eax, esi
mov eax, 0x80000000
cmovl esi, eax
mov dword [esp + 0xc], esi
mov eax, 0
cmovl ebx, eax
lea ecx, [esp + 0x88]
lea eax, [esp + 0xa0]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov edi, edx
lea ecx, [esp + 0x88]
lea eax, [esp + 0xa0]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
mov dword [esp + 0x30], ebx
jl 0x10055fae
test edi, edi
mov eax, 0xffffffff
cmovs esi, eax
mov dword [esp], esi
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
mov dword [esp + 4], edi
jmp 0x10055fd0
mov eax, esi
neg eax
mov eax, 0
sbb eax, edi
mov eax, 0x80000000
cmovl edi, eax
mov dword [esp + 4], edi
mov eax, 0
cmovl esi, eax
mov dword [esp], esi
lea edi, [esp + 0xa0]
mov ecx, edi
lea eax, [esp + 0xb8]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov ebx, edx
mov ecx, edi
lea eax, [esp + 0xb8]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
jl 0x1005601b
test ebx, ebx
mov eax, 0xffffffff
cmovs esi, eax
mov dword [esp + 0x14], esi
mov eax, 0x7fffffff
cmp ebx, eax
cmovae ebx, eax
jmp 0x1005603a
mov eax, esi
neg eax
mov eax, 0
sbb eax, ebx
mov eax, 0x80000000
cmovl ebx, eax
mov eax, 0
cmovl esi, eax
mov dword [esp + 0x14], esi
lea ecx, [esp + 0xb8]
lea eax, [esp + 0xd0]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov edi, edx
lea ecx, [esp + 0xb8]
lea eax, [esp + 0xd0]
push eax
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
jl 0x10056084
test edi, edi
mov eax, 0xffffffff
cmovs esi, eax
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
jmp 0x1005609f
mov eax, esi
neg eax
mov eax, 0
sbb eax, edi
mov eax, 0x80000000
cmovl edi, eax
mov eax, 0
cmovl esi, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push dword [esp + 0xc]
push dword [esp + 0x34]
push dword [esp + 0xc]
push dword [esp + 0xc]
push ebx
push dword [esp + 0x28]
push edi
push esi
push dword [esp + 0x6c]
call fcn.1004ed70
add esp, 0x24
lea edi, [esp + 0x5e0]
mov dword [0x1009b4d0], 0
push 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x2c]
cvtsi2sd xmm0, dword [eax + 8]
divsd xmm0, qword [0x10088230]
ucomisd xmm0, qword [0x10088220]
jb 0x10056191
xor eax, eax
add eax, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], ecx
movsd xmm0, qword [esp + 0xe0]
movsd qword [esp + 0x5f0], xmm0
movupd xmm0, xmmword [esp + 0xd0]
movapd xmmword [esp + 0x5e0], xmm0
mov ecx, edi
lea ebx, [esp + 0x308]
mov edx, ebx
call fcn.10045310
push 1
push ebx
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov ecx, edi
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov ecx, edi
mov edi, edx
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
jl 0x100561bf
test edi, edi
mov eax, 0xffffffff
cmovs esi, eax
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
jmp 0x100561da
movsd xmm1, qword [0x10088228]
ucomisd xmm1, xmm0
jb 0x100563e9
mov eax, 0x80000000
mov dword [esp + 0x30c], eax
mov dword [esp + 0x308], 0
jmp 0x10056120
mov eax, esi
neg eax
mov eax, 0
sbb eax, edi
mov eax, 0x80000000
cmovl edi, eax
mov eax, 0
cmovl esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
sub esi, ecx
sbb edi, eax
mov eax, esi
not eax
mov ecx, edi
xor ecx, 0x7fffffff
or ecx, eax
movsd xmm1, qword [0x10088220]
je 0x10056236
lea eax, [edi - 0x80000000]
or eax, esi
jne 0x10056212
movsd xmm1, qword [0x10088228]
jmp 0x10056236
push edi
push esi
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 [0x10088230]
mulsd xmm1, xmm0
mulsd xmm1, xmm0
maxsd xmm1, qword [0x10088298]
movapd xmmword [esp + 0x30], xmm1
cvttsd2si eax, xmm1
mov ecx, eax
sar ecx, 0x1f
movapd xmm0, xmm1
subsd xmm0, qword [0x10088290]
cvttsd2si edx, xmm0
and edx, ecx
or edx, eax
mov ecx, dword [esp + 0x2c]
call fcn.100569d0
push 1
lea eax, [esp + 0x114]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
movapd xmm1, xmmword [esp + 0x38]
add esp, 8
movsd xmm0, qword [esp + 0x120]
movsd qword [esp + 0xe0], xmm0
movupd xmm0, xmmword [esp + 0x110]
movapd xmmword [esp + 0xd0], xmm0
divsd xmm1, qword [0x10088230]
ucomisd xmm1, qword [0x10088220]
jb 0x10056354
xor eax, eax
add eax, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
movsd xmm0, qword [esp + 0x318]
movsd qword [esp + 0x120], xmm0
movupd xmm0, xmmword [esp + 0x308]
movapd xmmword [esp + 0x110], xmm0
lea ebx, [esp + 0x110]
mov ecx, ebx
lea edx, [esp + 0xb8]
call fcn.10045310
lea ecx, [esp + 0xd0]
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov edi, edx
lea ecx, [esp + 0xd0]
push ebx
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
jl 0x10056382
test edi, edi
mov eax, 0xffffffff
cmovs esi, eax
mov dword [esp + 0x18], esi
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
mov dword [esp + 0x1c], edi
jmp 0x100563a5
movsd xmm0, qword [0x10088228]
ucomisd xmm0, xmm1
jb 0x1005640c
mov eax, 0x80000000
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], 0
jmp 0x100562d7
mov eax, esi
neg eax
mov eax, 0
sbb eax, edi
mov eax, 0x80000000
cmovl edi, eax
mov dword [esp + 0x1c], edi
mov eax, 0
cmovl esi, eax
mov dword [esp + 0x18], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
push 0x1009b4b8
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [0x1009b4d0], 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 [0x1009b4dc]
test eax, eax
lea edi, [esp + 0x5e0]
jne 0x10055bf3
jmp 0x10055b2c
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 0x10056120
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 0x100562d7
mov eax, dword [eax + 0x170]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x14], ecx
mov edi, dword [eax]
mov dword [esp + 0xc], eax
mov ebx, dword [eax + 4]
mov edx, dword [edi + 0x20]
test edx, edx
je 0x10056450
lock inc dword [edx + 0x38]
mov eax, dword [edi + 0x10]
test eax, eax
mov dword [esp + 0x30], edx
je 0x10056498
xor eax, eax
inc eax
mov ecx, 2
lock cmpxchg dword [edi + 0x10], ecx
je 0x10056498
mov ecx, dword [0x1009b4dc]
add ecx, 0x58
lea eax, [ebx + 8]
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0x30]
push eax
push dword [0x1009b4d8]
call fcn.100507f0
mov edx, dword [esp + 0x38]
add esp, 8
test al, al
jne 0x100567de
mov dword [esp + 4], ebx
push 1
lea eax, [esp + 0x74]
push eax
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
add esp, 8
mov ecx, dword [esi]
lea ebx, [esp + 0x5e0]
mov edx, ebx
call fcn.10050b90
mov eax, dword [esp + 0x5e0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5e4]
mov dword [esp + 0x54], eax
mov ecx, esi
mov dword [esp], edi
mov esi, dword [edi + 0x20]
test esi, esi
je 0x100564e1
lock inc dword [esi + 0x38]
mov eax, dword [esi + 0x30]
mov edx, dword [ecx]
mov byte [esp + 0x5e0], 0x11
mov dword [esp + 0x5e1], eax
lea ecx, [esp + 0x308]
push ebx
call fcn.1004ead0
add esp, 4
mov edi, dword [esp + 0x308]
mov ebx, dword [esp + 0x30c]
lock dec dword [esi + 0x38]
jne 0x10056529
mov ecx, esi
call fcn.100326c0
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
mov dword [esp + 0x20], edi
mov eax, dword [esp + 4]
mov dword [eax + 8], edi
mov dword [esp + 0x50], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x10], 1
mov edi, dword [0x1009b4d8]
lea ecx, [esp + 0x70]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
mov esi, eax
mov ebx, edx
lea ecx, [esp + 0x70]
push edi
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____thiscall_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const__const
cmp eax, 1
sbb edx, 0
jl 0x100565c0
test ebx, ebx
mov eax, 0xffffffff
cmovs esi, eax
mov eax, 0x7fffffff
cmp ebx, eax
cmovae ebx, eax
lea edi, [esp + 0x5e0]
mov eax, esi
not eax
mov ecx, ebx
xor ecx, 0x7fffffff
or ecx, eax
movsd xmm0, qword [0x10088220]
je 0x100565d9
lea eax, [ebx - 0x80000000]
or eax, esi
je 0x100565d1
push ebx
push esi
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 [0x10088230]
jmp 0x100565d9
cmp esi, 1
mov eax, ebx
sbb eax, 0
jl 0x10056579
lea edi, [esp + 0x5e0]
movsd xmm0, qword [0x10088228]
mov byte [esp + 0x5e0], 0x12
movsd qword [esp + 0x5e1], xmm0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x308]
push edi
call fcn.1004ead0
add esp, 4
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov esi, dword [eax]
test esi, esi
je 0x10056658
push 0x2cc
push 0
lea eax, [esp + 0x310]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
je 0x10056658
mov dword [esp + 0x308], 0x10001
lea eax, [esp + 0x308]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x10056837
push esi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
lea ecx, [esp + 0x250]
mov edx, edi
call fcn.10050b90
mov eax, dword [esp + 0x5fc]
xor eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x5f8]
xor ecx, dword [esp + 0x100]
or ecx, eax
jne 0x1005677c
mov eax, dword [esp + 0x5e8]
sub eax, dword [esp + 0xf0]
mov dword [esp], eax
mov edi, dword [esp + 0x5ec]
sbb edi, dword [esp + 0xf4]
call sym.mozglue.dll_class_mozilla::ProfileChunkedBuffer____cdecl_mozilla::baseprofiler::profiler_get_core_buffer_void_
mov ecx, 0x1009b430
call fcn.1005b7c0
mov esi, dword [0x1009b46c]
xor eax, eax
mov ebx, 0
test esi, esi
je 0x100566e2
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ebx, eax
and ebx, 0xffffff00
cmp byte [0x1009b468], 0
je 0x10056708
mov dword [0x1009b460], 0
push 0x1009b448
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 4]
test esi, esi
je 0x1005699a
movzx eax, al
or ebx, eax
mov eax, dword [esp]
cmp eax, ebx
sbb edi, 0
jae 0x1005680c
call sym.mozglue.dll_class_mozilla::ProfileChunkedBuffer____cdecl_mozilla::baseprofiler::profiler_get_core_buffer_void_
xor eax, eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], eax
mov byte [esp + 0x5d4], 0
lea eax, [esp + 0x5d4]
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], 0x1009b430
lea eax, [esp + 0x110]
mov dword [esp + 0x310], eax
lea ecx, [esp + 0x250]
lea edx, [esp + 0x308]
call fcn.10065340
jmp 0x100567b6
mov ecx, 3
call fcn.10053290
test al, al
je 0x100567b6
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
push eax
push str._I__d__d__Stack_sample_too_big_for_local_storage__needed__u_bytes_n
call fcn.10053340
add esp, 0x10
lea esi, [esp + 0x250]
mov ecx, esi
call fcn.100529f0
mov ecx, esi
lea edx, [esp + 0xe8]
call fcn.10050b90
mov edx, dword [esp + 0x30]
test edx, edx
mov esi, dword [esp + 0x10]
je 0x100567f6
lock dec dword [edx + 0x38]
jne 0x100567f6
mov ecx, edx
mov ebx, edx
call fcn.100326c0
push ebx
call sym.mozglue.dll__aligned_free
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 8
cmp eax, dword [esp + 0x14]
jne 0x1005643c
jmp 0x10055ed3
mov ebx, eax
mov ecx, 3
call fcn.10053290
test al, al
je 0x100567b6
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 ebx
push esi
push eax
push str._I__d__d__Stack_sample_too_big_for_profiler_storage__needed__u_bytes_n
jmp 0x100567ae
mov ebx, dword [0x1009b4dc]
test ebx, ebx
je 0x100569af
mov dword [esp + 0x110], 0x100888b0
lea eax, [esp + 0x138]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x24], eax
push 0x2004
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test byte [ebx + 0x39], 1
jne 0x1005690d
xor ecx, ecx
mov edx, dword [esp]
lea eax, [esp + 0x110]
push eax
push edi
call fcn.10069050
add esp, 8
mov byte [esp + 0x5d4], 0xb
mov eax, dword [esp + 4]
mov dword [esp + 0x5d5], eax
mov edx, dword [esp + 0x138]
lea ecx, [esp + 0x130]
lea eax, [esp + 0x5d4]
push eax
call fcn.1004ead0
add esp, 4
jmp 0x10056651
mov edx, dword [esp + 0x24]
mov dword [esp + 0x15e0], edx
mov eax, dword [esp + 4]
mov dword [esp + 0x5e0], eax
mov dword [esp + 0x25e0], 1
mov ecx, dword [esp + 0x20]
cmp ecx, edx
jb 0x10056955
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
cmp eax, ecx
jb 0x10056955
push eax
push ecx
push edi
push 0x3ff
push 0x10069240
call sym.mozglue.dll_void___cdecl_mozilla::FramePointerStackWalk_void____cdecl___unsigned_int__void___void___void____unsigned_int__void___void____void__
add esp, 0x14
xor ecx, ecx
mov edx, dword [esp]
lea eax, [esp + 0x110]
push eax
push edi
call fcn.10069050
add esp, 8
jmp 0x10056651
mov ecx, esi
call fcn.1005c060
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x10055bac
mov ecx, esi
call fcn.1005c060
push esi
call sym.mozglue.dll__aligned_free
add esp, 4
jmp 0x10055bc6
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_isSome___
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_ActivePS::Exists_aLock__
int3