Function at 0x409bdc
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
push esi
mov esi, ecx
lea ecx, [ebp - 0x3c]
push edi
call fcn.00403255
mov bl, byte [esi + 4]
lea ecx, [ebp - 4]
push str.08DA086F_9FC4_4B2E_954C_6D7D5ACD5167
call fcn.00404248
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x3c]
push eax
mov dl, bl
call fcn.004038d3
pop ecx
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.00401622
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x14], 0x43a4e4
call fcn.00404248
push dword [ebp - 0x10]
xor ebx, ebx
push ebx
push ebx
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
je 0x409d90
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x409d90
mov ebx, esi
mov cl, byte [ebx + 4]
lea edx, [ebx + 8]
call fcn.00410be9
mov esi, eax
test esi, esi
jns 0x409c9f
movzx ecx, byte [0x441e69]
neg ecx
sbb ecx, ecx
and ecx, 0x441e70
je 0x409dd7
or dword [ebp - 0x1c], 0xffffffff
push 0xffffffffffffffff
push ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], 7
call fcn.00406496
push esi
push str._CrashHandler__Failed_to_init_crash_dir__0x_08x_
jmp 0x409cdf
mov ecx, ebx
call fcn.00409f49
mov esi, eax
test esi, esi
jns 0x409cf3
movzx ecx, byte [0x441e69]
neg ecx
sbb ecx, ecx
and ecx, 0x441e70
je 0x409dd7
or dword [ebp - 0x1c], 0xffffffff
push 0xffffffffffffffff
push ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], 7
call fcn.00406496
push esi
push str._CrashHandler__Failed_to_start_Breakpad__0x_08x_
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x24]
push eax
call fcn.00403139
add esp, 0xc
jmp 0x409dd7
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x58]
rep stosd dword es:[edi], eax
xor edi, edi
mov eax, 0x400
push edi
push eax
push eax
push edi
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
push 0x24
call fcn.0042a39c
mov esi, eax
pop ecx
push esi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov edi, dword [ebx + 0x14]
mov dword [ebx + 0x14], esi
test edi, edi
je 0x409d47
mov ecx, edi
call fcn.0040da71
push 0x24
push edi
call fcn.0041614b
pop ecx
pop ecx
push 0x14
call fcn.0042a39c
pop ecx
mov ecx, eax
and dword [ecx + 8], 0
and dword [ecx + 0xc], 0
mov dword [ecx], 0x43ad98
mov edx, dword [ebx + 0x18]
mov dword [ebx + 0x18], ecx
test edx, edx
je 0x409d74
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
mov ecx, dword [ebx + 0x18]
mov al, byte [ebx + 4]
push eax
push ebx
push dword [ebx + 0x14]
call fcn.0040d9d6
mov esi, eax
test esi, esi
js 0x409dd7
call fcn.0040a928
mov esi, eax
jmp 0x409dd7
movzx ecx, byte [0x441e69]
neg ecx
sbb ecx, ecx
and ecx, 0x441e70
je 0x409dd5
xor eax, eax
mov dword [ebp - 0x24], ecx
inc eax
mov dword [ebp - 0x20], 7
push eax
push ecx
mov dword [ebp - 0x1c], eax
call fcn.00406496
mov dword [ebp - 0x18], eax
movzx eax, byte [esi + 4]
push eax
push 0x20
lea eax, [ebp - 0x24]
push str._CrashHandler__Instance_is_already_running___d_bit___d_
push eax
call fcn.00403139
add esp, 0x10
mov esi, ebx
mov eax, dword [ebp - 4]
test eax, eax
je 0x409de5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401622
lea ecx, [ebp - 0x3c]
call fcn.00403276
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret