Function at 0x403920
Capabilities:
Check mutex on windows
Create process on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 3
and esp, 0xfffffff8
add esp, 4
push esi
sub esp, 0x54
call fcn.00456d1c
xor eax, eax
push 0x7d9b20
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x7d4510], eax
test eax, eax
je 0x403dac
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403971
push dword [0x7d4510]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
jmp 0x403973
xor eax, eax
test eax, eax
je 0x403983
xor eax, eax
add esp, 0x54
pop esi
mov esp, ebp
pop ebp
ret 0x10
call fcn.00410c24
xor eax, eax
push 0x64ea20
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x7d4514], eax
test eax, eax
je 0x403d9c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403a82
push dword [0x7d4514]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x64ea20
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
test esi, esi
je 0x4039fa
movsx edx, byte [0x7d3e40]
test edx, edx
jne 0x403a24
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4039f3
push 9
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, dword [0x7d4510]
test edx, edx
je 0x403a1d
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x7d4510]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x7d4510]
mov eax, 0xffffffff
jmp 0x403a8a
xor edx, edx
push edx
push edx
push 0x414
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push 0x64ea20
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x7d4514], eax
test eax, eax
je 0x403b9b
mov edx, dword [0x7d4510]
test edx, edx
je 0x403a7e
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x7d4510]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x7d4510]
xor eax, eax
jmp 0x403a8a
xor eax, eax
mov edx, dword [0x7d4510]
test eax, eax
je 0x403ab1
test edx, edx
je 0x403aa5
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x7d4510]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
add esp, 0x54
pop esi
mov esp, ebp
pop ebp
ret 0x10
test edx, edx
je 0x403ac8
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x7d4510]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
mov dword [0x7d3f78], eax
mov edx, dword [ebp + 0x14]
mov dword [0x7d3f7c], edx
push 0x64eb40
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
xor eax, eax
mov dword [0x7d3fd4], eax
mov dword [0x7d3fd8], eax
call fcn.00410db4
mov dword [0x7d3fd8], eax
call fcn.00410e18
mov dword [0x7d3fd4], eax
mov edx, dword [0x7d3fd8]
test edx, edx
jne 0x403b23
push 0x7d9b28
push 0
call fcn.0040af10
add esp, 8
mov edx, dword [0x7d3fd8]
cmp edx, 4
je 0x403b51
mov eax, dword [0x7d3fd4]
test eax, eax
jbe 0x403b51
test edx, edx
jbe 0x403b51
cmp eax, edx
je 0x403b51
call fcn.00410ebc
test eax, eax
je 0x403b51
mov eax, 1
mov byte [0x7d3f88], al
mov byte [0x7d3f90], al
movsx eax, byte [0x7d3f48]
test eax, eax
je 0x403bab
call fcn.00410f1c
movsx eax, al
test eax, eax
je 0x403bab
xor esi, esi
mov eax, dword [esi + 0x7d4510]
add esi, 4
test eax, eax
je 0x403b8a
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [esi + 0x7d450c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 4
jle 0x403b6a
xor eax, eax
add esp, 0x54
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, 0xffffffff
mov edx, dword [0x7d4510]
jmp 0x403a8a
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.00452038
movsx eax, al
test eax, eax
jne 0x403cdc
xor eax, eax
push eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403c26
xor eax, eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403d8e
push 0x7d44f4
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x7d44f4
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403be3
movsx eax, byte [0x586748]
test eax, eax
je 0x403cdc
movsx eax, byte [0x7d4238]
test eax, eax
je 0x403c4a
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403c75
call fcn.00403db8
movsx eax, byte [0x7d3fc4]
test eax, eax
je 0x403c64
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403c75
call fcn.00403fd0
movsx eax, al
test eax, eax
je 0x403c75
call fcn.00410c00
xor eax, eax
push eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403ccd
xor eax, eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403d80
push 0x7d44f4
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x7d44f4
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x7d44f4
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403c8a
movsx eax, byte [0x586748]
test eax, eax
jne 0x403c35
call fcn.004111ec
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor esi, esi
mov eax, dword [esi + 0x7d4510]
add esi, 4
test eax, eax
je 0x403d14
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [esi + 0x7d450c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 4
jle 0x403cf4
movsx eax, byte [0x7d3ed4]
test eax, eax
je 0x403d71
lea eax, [esp]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov dword [esp], 0x44
mov eax, 5
mov word [esp + 0x30], ax
xor esi, esi
lea ecx, [esp]
lea edx, [esp + 0x44]
push edx
push ecx
push esi
push esi
push 0x20
push esi
push esi
push esi
push 0x64e900
push esi
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x7d44fc]
add esp, 0x54
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov byte [0x586748], 0
xor eax, eax
jmp 0x403cd4
mov byte [0x586748], 0
xor eax, eax
jmp 0x403c2d
mov eax, 0xffffffff
mov edx, dword [0x7d4510]
jmp 0x403a8a
mov eax, 0xffffffff
jmp 0x403973