Function at 0x401d90
Capabilities:
Check mutex on windows
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 8], str.NewWizetPatcherMutex
mov ebx, dword [esp + 0xa0]
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
sub esp, 0xc
test eax, eax
je 0x401dd6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x402050
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x50], 0x30
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], sym.__Z7WndProcP6HWND__jjl_16
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], ebx
mov dword [esp + 4], 0x72
mov dword [esp], ebx
call esi
sub esp, 8
mov dword [esp + 0x68], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call dword [sym.imp.USER32.dll_LoadCursorA]
sub esp, 8
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 6
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], str.patcher
mov dword [esp + 4], 0x72
mov dword [esp], ebx
call esi
sub esp, 8
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x50]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
sub esp, 4
test ax, ax
je 0x401fe8
mov dword [esp + 0x28], ebx
mov ebx, dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x167
mov dword [esp + 0x18], 0x198
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0xc], 0x20a0000
mov dword [esp + 8], str.Wizet_Patcher
mov dword [esp + 4], str.patcher
mov dword [esp], 0x200
call ebx
mov dword [0x58f048], eax
sub esp, 0x30
test eax, eax
je 0x402020
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x85
mov dword [esp + 0x18], 0x186
mov dword [esp + 0x14], 0x8e
mov dword [esp + 0x10], 5
mov dword [esp + 0xc], 0x50200844
mov dword [esp + 8], 0x513092
mov dword [esp + 4], str.EDIT
mov dword [esp], 0x200
call ebx
sub esp, 0x30
mov dword [0x58f044], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [0x58f048]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x58f048]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
sub esp, 4
mov edi, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ebx, [esp + 0x34]
jmp 0x401fb0
mov dword [esp], ebx
call ebp
sub esp, 4
mov dword [esp], ebx
call edi
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call esi
sub esp, 0x10
test eax, eax
jg 0x401fa0
mov eax, dword [esp + 0x3c]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error_
mov dword [esp + 4], str.Window_Registration_Failed_
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
sub esp, 0x10
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error_
mov dword [esp + 4], str.Window_Creation_Failed_
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
sub esp, 0x10
jmp 0x402012
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error_
mov dword [esp + 4], str.Wizet_Patcher_is_already_open.
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
sub esp, 0x10
jmp 0x402012