Function at 0x10041680
Capabilities:
Check mutex on windows

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x1007d940
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
push edi
push str.PluginStoreLock
push 0
push 0
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
or edi, 0xffffffff
mov ebp, eax
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov al, byte [esp + 0x2c]
mov ebx, 4
test bl, al
je 0x10041ba9
push 0x10084804
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041716
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847fc
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x60]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 1
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041762
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847f4
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 8]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 2
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100417ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.Vendor
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0xc]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 3
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100417fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.Version
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x10]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], ebx
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041842
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.IconUrl
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x14]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 5
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1004188e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.Description
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x18]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 6
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100418da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x10082614
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x1c]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 7
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041926
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847d0
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x24]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 8
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041972
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esi + 0x28]
push eax
lea ecx, [esp + 0x14]
call fcn.10005e50
push 0x100847cc
lea ecx, [esp + 0x18]
push ecx
mov ebx, 9
mov ecx, esi
mov dword [esp + 0x2c], ebx
call fcn.10040e60
lea edx, [esp + 0x10]
push edx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xa
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100419d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.IconPath
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x4c]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xb
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041a1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.OriginURL
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x50]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xc
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041a64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847ac
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x54]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xd
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041aad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847a8
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x58]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xe
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041af6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x100847a0
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x5c]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0xf
call fcn.1004a9c0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041b3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.UpdateTime
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x68]
push ecx
push eax
push SysReAllocStringLen
mov byte [esp + 0x30], 0x10
call fcn.1004a670
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x24], bl
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041b88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x24], edi
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10041ba9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov bl, byte [esp + 0x2c]
test bl, 2
je 0x10041bfe
push 0x10084790
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x64]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0x11
call fcn.1004a9c0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041bfe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, 1
je 0x10041d35
push str.AlertURL
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.10040e60
lea ecx, [esi + 0x70]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0x12
call fcn.1004a670
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041c53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.CurAlertID
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x74]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0x13
call fcn.1004a9c0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041c9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.CurAlertStyle
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x78]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0x14
call fcn.1004a9c0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10041ceb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.CurAlertDisabled
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.10040e60
mov ecx, dword [esi + 0x7c]
push ecx
push eax
push SysReAllocStringLen
mov dword [esp + 0x30], 0x15
call fcn.1004a9c0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x24], edi
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jg 0x10041d35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 4