Function at 0x402a00
Capabilities:
Check mutex on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x40fedc
push eax
mov dword fs:[0], esp
sub esp, 0x208
push esi
push edi
mov edi, dword [esp + 0x220]
mov esi, ecx
test edi, edi
jne 0x402a31
xor al, al
jmp 0x402d30
mov eax, dword [esi + 0xf8]
push ebp
test eax, eax
push ebx
je 0x402a44
mov ecx, esi
call fcn.00403130
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x402a87
push 0x5c
call fcn.0040a590
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x220], 0
je 0x402a74
mov ecx, eax
call fcn.00405f10
jmp 0x402a76
xor eax, eax
mov dword [esp + 0x220], 0xffffffff
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x104]
test eax, eax
jne 0x402aca
push 8
call fcn.0040a590
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x220], 1
je 0x402ab7
mov ecx, eax
call fcn.00406ea0
jmp 0x402ab9
xor eax, eax
mov dword [esp + 0x220], 0xffffffff
mov dword [esi + 0x104], eax
push 0x105
call fcn.0040a590
add esp, 4
mov dword [esi + 0xf8], eax
push 0x105
call fcn.0040a590
add esp, 4
mov dword [esi + 0xfc], eax
push 0x105
call fcn.0040a590
mov ecx, dword [esi + 0xf8]
add esp, 4
mov dword [esi + 0xf4], eax
lea eax, [esi + 0x100]
push eax
push ecx
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov ebx, eax
lea edx, [esp + 0x18]
push 0
lea eax, [esp + 0x11c]
push edx
mov edx, dword [esi + 0xf8]
lea ecx, [esp + 0x1c]
push eax
push ecx
push edx
call fcn.0040a750
add esp, 0x14
lea eax, [esp + 0x18]
lea ecx, [esp + 0x118]
lea edx, [esp + 0x14]
push 0x41108c
push eax
mov eax, dword [esi + 0xf8]
push ecx
push edx
push eax
call fcn.0040a6b0
add esp, 0x14
lea ecx, [esp + 0x18]
lea edx, [esp + 0x118]
lea eax, [esp + 0x14]
push 0x411088
push ecx
mov ecx, dword [esi + 0xfc]
push edx
push eax
push ecx
call fcn.0040a6b0
mov edx, dword [esi + 0xf8]
mov eax, dword [esi + 0xf4]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add esp, 0x14
push edx
push eax
call ebp
xor edi, edi
test ebx, ebx
jle 0x402bdb
mov ecx, dword [esi + 0xf4]
add ecx, edi
mov al, byte [ecx]
cmp al, 0x5c
je 0x402bd3
cmp al, 0x2f
je 0x402bd3
movsx edx, al
push edx
call fcn.0040a5b0
mov ecx, dword [esi + 0xf4]
add esp, 4
mov byte [edi + ecx], al
jmp 0x402bd6
mov byte [ecx], 0x5f
inc edi
cmp edi, ebx
jl 0x402baa
mov edx, dword [esi + 0xf4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 7
push eax
call fcn.0040a590
mov edi, eax
add esp, 4
test edi, edi
jne 0x402c01
xor bl, bl
jmp 0x402ccc
mov eax, dword [esi + 0xf4]
push eax
push edi
call ebp
push str.__BMTX
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
cmp eax, 0xb7
mov eax, dword [esi + 0x24]
setne bl
test eax, eax
mov byte [esp + 0x10], bl
jne 0x402c47
xor bl, bl
jmp 0x402ccc
push edi
call fcn.0040a130
add esp, 4
test bl, bl
jne 0x402c60
mov ecx, dword [esi + 0x24]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esi + 0xf4]
push str.__BA
push edx
lea ecx, [esi + 4]
call fcn.004079f0
mov eax, dword [esi + 0xf4]
push str.__IA
push eax
lea ecx, [esi + 0x14]
call fcn.004079f0
mov ecx, dword [esi + 0xf4]
push str.__IS
push ecx
push 0x10000
lea ecx, [esi + 0x94]
call fcn.00407dd0
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x230]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00402d50
mov edx, dword [esi + 0x24]
mov bl, al
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
jne 0x402d2c
lea ecx, [esi + 0x94]
call fcn.00408040
lea ecx, [esi + 4]
call fcn.00407b70
lea ecx, [esi + 0x14]
call fcn.00407b70
mov eax, dword [esi + 0xf4]
push eax
call fcn.0040a130
mov ecx, dword [esi + 0xf8]
add esp, 4
xor edi, edi
push ecx
mov dword [esi + 0xf4], edi
call fcn.0040a130
mov edx, dword [esi + 0xfc]
add esp, 4
mov dword [esi + 0xf8], edi
push edx
call fcn.0040a130
add esp, 4
mov dword [esi + 0xfc], edi
mov al, bl
pop ebx
pop ebp
mov ecx, dword [esp + 0x210]
pop edi
mov dword fs:[0], ecx
pop esi
add esp, 0x214
ret 0xc