Function at 0x40d4be
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Create process on windows
Terminate process

Disassembly:
push ebp
sub esp, 0x64
lea ebp, [esp - 4]
mov eax, dword [0x47dad4]
xor eax, ebp
mov dword [ebp + 0x64], eax
push 0x44
mov eax, 0x45ef14
call fcn.0044a6d8
xor ebx, ebx
cmp byte [0x47c4f3], bl
jne 0x40d4f0
mov al, byte [0x47ee80]
jmp 0x40d6d7
lea eax, [ebp + 0x48]
push eax
call fcn.0041e028
pop ecx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x5c], ebx
je 0x40d6c4
call fcn.0041c5ea
push eax
lea ecx, [ebp + 0x48]
call fcn.00407bf4
test eax, eax
je 0x40d6c4
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
push str.Media_Get_LLCMediaGet2
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.004088e0
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp]
push eax
mov byte [ebp - 4], 2
call fcn.0041aac2
pop ecx
pop ecx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.00407efb
push dword [ebp + 0x3c]
push edi
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov dword [ebp + 0x38], eax
cmp eax, ebx
jne 0x40d58c
mov byte [ebp + 0x47], bl
mov byte [0x47c4f3], bl
lea ecx, [ebp + 0x3c]
call fcn.00406ffd
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00407efb
mov al, byte [ebp + 0x47]
jmp 0x40d6d7
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x40d5af
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov byte [0x47ee80], 1
mov byte [ebp + 0x47], 1
jmp 0x40d56c
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.0041aac2
pop ecx
pop ecx
push dword [ebp + 0x40]
lea ecx, [ebp + 0x30]
call fcn.0040769c
push dword [ebp + 0x40]
mov esi, dword [ebp + 0x30]
push dword [ebp + 0x3c]
push esi
call fcn.0044b165
mov eax, dword [ebp + 0x34]
add esp, 0xc
dec eax
cmp eax, ebx
jl 0x40d5f5
cmp word [esi + eax*2], 0x5c
je 0x40d5ef
dec eax
jns 0x40d5e3
jmp 0x40d5f5
xor ecx, ecx
mov word [esi + eax*2], cx
push 0x44
pop esi
push esi
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.0044ab10
add esp, 0xc
mov dword [ebp - 0x50], esi
mov esi, dword [sym.imp.KERNEL32.DLL_SetErrorMode]
xor eax, eax
push edi
mov dword [ebp - 0x24], edi
mov word [ebp - 0x20], ax
call esi
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x30]
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp + 0x3c]
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
mov edi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, eax
je 0x40d6a4
push 0x7d0
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x40d690
lea eax, [ebp + 0x2c]
push eax
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
test eax, eax
je 0x40d69a
cmp dword [ebp + 0x2c], 0x66
jne 0x40d69a
push dword [ebp + 0x38]
call edi
lea ecx, [ebp + 0x30]
mov byte [0x47c4f3], bl
mov byte [0x47ee80], 1
call fcn.00406ffd
xor edi, edi
mov byte [ebp + 0x47], 1
inc edi
jmp 0x40d572
push ebx
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
push dword [ebp + 0x1c]
call edi
push dword [ebp + 0x20]
call edi
push ebx
call esi
push dword [ebp + 0x38]
call edi
lea ecx, [ebp + 0x30]
mov byte [0x47c4f3], bl
call fcn.00406ffd
lea ecx, [ebp + 0x3c]
call fcn.00406ffd
jmp 0x40d6ca
mov byte [0x47c4f3], bl
push ebx
push 1
lea ecx, [ebp + 0x48]
call fcn.00407efb
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x64]
xor ecx, ebp
call fcn.0044a6c9
add ebp, 0x68
leave
ret