Function at 0x403bec
Capabilities:
Check mutex on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 3
and esp, 0xfffffff8
add esp, 4
sub esp, 8
call fcn.00464d24
xor eax, eax
push 0x806bd4
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x800c90], eax
test eax, eax
je 0x403ebb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403c3c
push dword [0x800c90]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x403c3e
xor eax, eax
test eax, eax
je 0x403c4d
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
call fcn.0041af8c
xor eax, eax
push 0x67e980
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x800c94], eax
test eax, eax
je 0x403eb1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403c8e
push dword [0x800c94]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x403c90
xor eax, eax
test eax, eax
je 0x403cae
mov eax, 0x67e980
call fcn.0041b170
call fcn.0041b520
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x800c90]
test eax, eax
je 0x403cca
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x800c90]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
mov dword [0x80068c], eax
mov edx, dword [ebp + 0x14]
mov dword [0x800690], edx
push 0x67ebc0
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.0041b1c8
movsx eax, al
test eax, eax
jl 0x403ea1
movsx eax, byte [0x80065c]
test eax, eax
je 0x403d1d
call fcn.0041b3b0
movsx eax, al
test eax, eax
je 0x403d1d
call fcn.0041b520
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
push 0x800a68
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.0045f704
movsx eax, al
test eax, eax
jne 0x403e4a
xor eax, eax
push eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403d98
xor eax, eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403e93
push 0x800c74
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x800c74
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403d55
movsx eax, byte [0x5b2744]
test eax, eax
je 0x403e4a
movsx eax, byte [0x800964]
test eax, eax
je 0x403dbc
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403de7
call fcn.00403ec8
movsx eax, byte [0x8006e8]
test eax, eax
je 0x403dd6
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403de7
call fcn.004040e0
movsx eax, al
test eax, eax
je 0x403de7
call fcn.0041af68
xor eax, eax
push eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403e3b
xor eax, eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403e88
push 0x800c74
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x800c74
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x800c74
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403dfc
movsx eax, byte [0x5b2744]
test eax, eax
jne 0x403da7
call fcn.0041b638
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x800a68
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
call fcn.0041b520
movsx eax, byte [0x80061c]
test eax, eax
je 0x403e7a
mov eax, 0x67e860
call fcn.0041ce28
mov eax, dword [0x800c7c]
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov byte [0x5b2744], 0
xor eax, eax
jmp 0x403e42
mov byte [0x5b2744], 0
xor eax, eax
jmp 0x403d9f
call fcn.0041b520
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov eax, 0xffffffff
jmp 0x403c90
mov eax, 0xffffffff
jmp 0x403c3e