Function at 0x403370
Capabilities:
Check mutex on windows

Disassembly:
push 0xffffffffffffffff
push 0x447238
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x45c5b0]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45c5b0]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
push 0x44de0b
lea ecx, [esp + 0x18]
call fcn.00401fc0
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov esi, 0xf
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov eax, 0x45e061
mov byte [esp + 0x60], 2
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4033e0
sub eax, edx
push eax
push 0x45e061
lea eax, [esp + 0x40]
call fcn.00403d30
push 0x11
push str.MgrSingleInstance
lea eax, [esp + 0x40]
call fcn.00403d30
push 0x24
push str.7DA1A2D7_D203_4ca5_A8A0_947C663E06E8
lea eax, [esp + 0x24]
call fcn.00403d30
push 0x11
push str.MgrSingleInstance
lea eax, [esp + 0x24]
call fcn.00403d30
mov eax, dword [esp + 0x3c]
mov ebp, 0x10
cmp dword [esp + 0x50], ebp
jae 0x40343b
lea eax, [esp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.dll_OpenMutexA]
push eax
push ebx
push 0x1f0001
call edi
cmp eax, ebx
jne 0x40355b
push 0xb7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x1c]
push str._d__d
push eax
call fcn.00402100
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.004025f0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00408ec0
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x34], ebp
jae 0x40349e
lea eax, [esp + 0x20]
push eax
push ebx
push 0x1f0001
call edi
cmp eax, ebx
jne 0x403556
push 0xb
push str.Certd
lea ecx, [esp + 0x1c]
call fcn.00402430
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.004025f0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00408ec0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x34], ebp
jb 0x4034fa
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00412245
add esp, 4
mov esi, 0xf
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x50], ebp
jb 0x40351e
mov edx, dword [esp + 0x3c]
push edx
call fcn.00412245
add esp, 4
mov dword [esp + 0x60], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403552
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4035cd
mov esi, 0xf
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x34], ebp
jb 0x403575
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00412245
add esp, 4
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x50], ebp
jb 0x403594
mov edx, dword [esp + 0x3c]
push edx
call fcn.00412245
add esp, 4
mov dword [esp + 0x60], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4035c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.00430bec
add esp, 0x50
ret