Function at 0x409ec0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x484
mov eax, dword [0x431078]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push str.textify_app
push 1
push 0
mov dword [ebp - 0x45c], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x409f69
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x409f69
push 0
push 0x425d78
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
test edi, edi
je 0x409f62
lea eax, [ebp - 0x45c]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [ebp - 0x45c]
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
push str._exit_if_running
call fcn.00408740
add esp, 4
push 0
push 0
test al, al
je 0x409f56
push 0x8004
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
xor ebx, ebx
jmp 0x40a14a
push 0x8002
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
xor ebx, ebx
jmp 0x40a14a
lea eax, [ebp - 0x484]
push eax
push 0x8002
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetClassInfoW]
call ebx
mov edi, dword [sym.imp.USER32.dll_RegisterClassW]
lea eax, [ebp - 0x484]
push eax
mov dword [ebp - 0x460], 0x425d78
call edi
lea eax, [ebp - 0x484]
push eax
push 0x8002
push dword [ebp - 0x45c]
call ebx
lea eax, [ebp - 0x484]
mov dword [ebp - 0x460], 0x425dc4
push eax
call edi
push str._hidewnd
call fcn.00408740
mov edi, dword [sym.imp.USER32.dll_RegisterWindowMessageW]
add esp, 4
mov bl, al
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0
push str.TaskbarCreated
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x458], 0x425d3c
mov byte [ebp - 0x404], 0
mov byte [ebp - 0x3d0], 0
call edi
push 0x425d78
mov dword [ebp - 0x3cc], eax
call edi
push 0x3bc
mov dword [ebp - 0x3c8], eax
lea eax, [ebp - 0x3c4]
push 0
push eax
call fcn.00414d90
mov eax, dword [ebp - 0x444]
add esp, 0xc
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
test eax, eax
jne 0x40a073
call fcn.00412da4
mov dword [ebp - 0x444], eax
test eax, eax
jne 0x40a073
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
or ebx, 0xffffffff
jmp 0x40a0e3
push 0
push 0
push eax
call fcn.00412ea6
lea eax, [ebp - 0x458]
mov dword [ebp - 0x450], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x431004
mov dword [ebp - 0x44c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x43101c]
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x450]
push 0x431004
mov dword [0x43101c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
test bl, bl
setne al
push eax
push 0x405520
push 0
push 0x81
push dword [0x431d88]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov ebx, eax
cmp byte [ebp - 0x3d0], 0
je 0x40a0f7
lea ecx, [ebp - 0x400]
call fcn.00405dd0
cmp byte [ebp - 0x404], 0
je 0x40a10b
lea ecx, [ebp - 0x434]
call fcn.00407c10
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x40a11b
push eax
call fcn.00412e50
push dword [ebp - 0x45c]
mov edi, dword [sym.imp.USER32.dll_UnregisterClassW]
push 0x425d78
call edi
push dword [ebp - 0x45c]
push 0x425dc4
call edi
test esi, esi
je 0x40a151
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test esi, esi
je 0x40a151
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041345d
mov esp, ebp
pop ebp
ret