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.00468d38
xor eax, eax
push 0x80fc04
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x809988], eax
test eax, eax
je 0x403ebb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403c3c
push dword [0x809988]
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.0041b0bc
xor eax, eax
push 0x683320
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x80998c], eax
test eax, eax
je 0x403eb1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403c8e
push dword [0x80998c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x403c90
xor eax, eax
test eax, eax
je 0x403cae
mov eax, 0x683320
call fcn.0041b2a0
call fcn.0041b65c
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x809988]
test eax, eax
je 0x403cca
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x809988]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
mov dword [0x809358], eax
mov edx, dword [ebp + 0x14]
mov dword [0x80935c], edx
push 0x683560
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.0041b304
movsx eax, al
test eax, eax
jl 0x403ea1
movsx eax, byte [0x809328]
test eax, eax
je 0x403d1d
call fcn.0041b4ec
movsx eax, al
test eax, eax
je 0x403d1d
call fcn.0041b65c
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
push 0x809760
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.004632d0
movsx eax, al
test eax, eax
jne 0x403e4a
xor eax, eax
push eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403d98
xor eax, eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403e93
push 0x80996c
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x80996c
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403d55
movsx eax, byte [0x5b6748]
test eax, eax
je 0x403e4a
movsx eax, byte [0x80965c]
test eax, eax
je 0x403dbc
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403de7
call fcn.00403ec8
movsx eax, byte [0x8093b4]
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.0041b098
xor eax, eax
push eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403e3b
xor eax, eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x403e88
push 0x80996c
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x80996c
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x80996c
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x403dfc
movsx eax, byte [0x5b6748]
test eax, eax
jne 0x403da7
call fcn.0041b774
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x809760
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
call fcn.0041b65c
movsx eax, byte [0x8092e8]
test eax, eax
je 0x403e7a
mov eax, 0x683200
call fcn.0041d018
mov eax, dword [0x809974]
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov byte [0x5b6748], 0
xor eax, eax
jmp 0x403e42
mov byte [0x5b6748], 0
xor eax, eax
jmp 0x403d9f
call fcn.0041b65c
xor eax, eax
add esp, 8
mov esp, ebp
pop ebp
ret 0x10
mov eax, 0xffffffff
jmp 0x403c90
mov eax, 0xffffffff
jmp 0x403c3e