Function at 0x411980
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x471d60
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x48e110]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
push eax
call fcn.00411c00
test eax, eax
je 0x411a32
push str.BFVCenterSetupMutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
je 0x4119db
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x411a32
call fcn.00411cf0
test eax, eax
je 0x411a32
mov eax, dword [edi]
mov ecx, 0x476a60
jmp 0x4119f0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411a16
test dx, dx
je 0x411a12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411a16
add eax, 4
add ecx, 4
test dx, dx
jne 0x4119f0
xor eax, eax
jmp 0x411a1b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x411a7b
lea ecx, [edi + 8]
mov edx, edi
call fcn.0041fd30
test eax, eax
jne 0x411a7b
push 0x47796c
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
test esi, esi
je 0x411a66
push 0x69b
call fcn.00403580
add esp, 4
push 0
push 0
push 0x69b
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi]
mov edx, dword [ecx - 0xc]
lea eax, [edx - 1]
test eax, eax
js 0x411bf3
cmp eax, edx
jg 0x411bf3
cmp word [ecx + eax*2], 0x5c
je 0x411ae2
lea ecx, [esp + 0x14]
push edi
push ecx
mov ebx, 0x4768bc
call fcn.00402c10
add esp, 8
mov dword [esp + 0x28], 0
call fcn.00402ab0
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411ae2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi + 0x64], 0
je 0x411b02
cmp dword [edi + 0x64], 0
lea esi, [edi + 8]
je 0x411b02
push esi
call fcn.0041ae30
cmp dword [esi + 0x60], 0
je 0x411b02
call fcn.0041f6d0
lea esi, [edi + 8]
push esi
call fcn.00422b30
mov ecx, edi
call fcn.00412170
lea ebx, [edi + 0x4c]
mov eax, edi
mov edi, ebx
call fcn.00402ab0
push esi
call fcn.00422150
mov ecx, esi
call fcn.00421d50
mov ecx, esi
call fcn.00420600
mov ecx, esi
call fcn.0041ef60
mov ecx, esi
call fcn.00418b20
push esi
call fcn.00419930
push esi
call fcn.00419320
push esi
call fcn.00419b90
xor edi, edi
push 6
push edi
mov dword [esp + 0x1c], vtable.CFirewallInstall.0
mov dword [esp + 0x20], edi
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 0x80010106
je 0x411b74
test eax, eax
js 0x411b7d
mov edi, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], 1
mov ebx, dword [ebx]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
call fcn.00416280
mov dword [esp + 0x28], 0xffffffff
test edi, edi
je 0x411ba5
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call fcn.00422620
mov ecx, esi
call fcn.00419d30
call fcn.0041a570
push esi
call fcn.0041a5d0
push 0x47796c
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
test esi, esi
je 0x411a66
push 0x69a
call fcn.00403580
add esp, 4
push 0
push 0
push 0x69a
jmp 0x411a5f
push 0x80070057
call fcn.00401950
int3