Function at 0x457a00
Capabilities:
Check mutex on windows
Resolve function by parsing pe exports
Set current directory

Disassembly:
sub esp, 0x70
push esi
push str.GlobalPJADVSYS
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
mov dword [esp + 4], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x457a4b
push 0
push str.PJADV
push 0
push 0
call dword [sym.imp.USER32.dll_FindWindowExA]
test eax, eax
je 0x457a42
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
test esi, esi
jne 0x457a8e
push esi
push str.PJADV
push esi
push esi
call dword [sym.imp.USER32.dll_FindWindowExA]
test eax, eax
je 0x457a71
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
push 0
push str.PJADV
push 0x49b6b8
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
push ebx
push ebp
push edi
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov ebp, dword [esp + 0x84]
push 0x104
mov dword [0x58cfbc], ebp
call fcn.004812ca
push 0x104
mov esi, eax
call fcn.004812ca
push 0x104
mov edi, eax
call fcn.004812ca
push 0x104
push 0
push 0x58cfc0
mov ebx, eax
call fcn.00481ba0
add esp, 0x18
push 0x104
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0
push 0
push 0
push 0
push 0x104
push ebx
push 0x104
push edi
push esi
call fcn.00482c72
push ebx
push edi
push 0x49a440
push 0x58cfc0
call dword [sym.imp.USER32.dll_wsprintfA]
push esi
call fcn.0048134d
push edi
call fcn.0048134d
push ebx
call fcn.0048134d
add esp, 0x40
push 0x58cfc0
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.00430960
call fcn.00430830
push str.graph
call fcn.00430500
push 0x49ac28
call fcn.00430500
push str.voice
call fcn.00430500
push 0x49ac24
call fcn.00430500
call fcn.004218b0
push 0x58d0c8
call fcn.0046b070
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x14
test eax, eax
jne 0x457b9f
xor ebx, ebx
push ebx
push 0x49b6b0
push 0x49b688
push ebx
call edi
jmp 0x457ba1
xor ebx, ebx
push ebx
call fcn.00456c80
add esp, 4
test eax, eax
jne 0x457bd3
push ebx
push 0x58d0c8
push 0x49b648
push ebx
call edi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
call fcn.0046b190
call fcn.00402360
test eax, eax
jne 0x457c06
push ebx
push 0x49b6b0
push 0x49b61c
push ebx
call edi
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
push 0x66
push ebp
mov dword [esp + 0x58], 0x30
mov dword [esp + 0x5c], 3
mov dword [esp + 0x60], 0x456ef0
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x40
push ebx
push ebx
push 1
push 0x66
push ebp
mov dword [esp + 0x80], eax
call dword [sym.imp.USER32.dll_LoadImageA]
push 0x7f00
push ebx
mov dword [esp + 0x84], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [esp + 0x70], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea edx, [esp + 0x50]
push edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], str.PJADV
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebx
push ebx
push 0x90cb0000
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0x400
mov dword [esp + 0x30], 0x300
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x6cdddc]
test eax, eax
movzx ecx, word [0x6cddde]
jns 0x457cd5
or ecx, 0xffff0000
test eax, 0x8000
je 0x457ce3
or eax, 0xffff0000
jmp 0x457ce8
and eax, 0xffff
cmp ecx, ebx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jl 0x457d00
cmp eax, ebx
jl 0x457d00
cmp ecx, edx
jge 0x457d00
cmp eax, esi
jl 0x457d40
lea eax, [edx - 0x400]
cdq
sub eax, edx
mov ecx, eax
lea edx, [esi + esi - 0x600]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
sar ecx, 1
add eax, edx
cmp ecx, ebx
jge 0x457d2a
xor ecx, ecx
cmp eax, ebx
jge 0x457d30
xor eax, eax
mov edx, ecx
movzx esi, ax
shl edx, 0x10
or edx, esi
mov dword [0x6cdddc], edx
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x18]
push ebx
push ebp
push ebx
push ebx
push edx
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
push edx
push eax
push ecx
push 0x90cb0000
push 0x58d0c8
push str.PJADV
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
cmp esi, ebx
jne 0x457da0
push ebx
push str.PJADV
push 0x49b604
push ebx
call edi
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x70
ret 0x10
mov ecx, dword [esp + 0x90]
push ecx
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
call dword [sym.imp.USER32.dll_SetFocus]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
push ebx
push ebx
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x457e23
push ebx
push ebx
push ebx
lea eax, [esp + 0x40]
push eax
call edi
cmp eax, ebx
je 0x457ed2
cmp eax, 0xffffffff
je 0x457ed2
cmp dword [esp + 0x38], 0x101
jne 0x457e0b
cmp dword [esp + 0x3c], 0x1b
jne 0x457e0b
call fcn.0045aa20
test eax, eax
jne 0x457dc3
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x457dc3
push esi
call fcn.00405340
add esp, 4
test eax, eax
jne 0x457ec5
call fcn.004048f0
call fcn.004049f0
call fcn.00404bf0
call fcn.00475430
push eax
call fcn.004753b0
push eax
call fcn.00417b10
add esp, 8
cmp eax, 1
je 0x457e85
cmp eax, 2
je 0x457e6f
cmp eax, 0xffffffff
jne 0x457ea5
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x457ea5
push esi
call fcn.00431bb0
call fcn.004753d0
push eax
call fcn.00404de0
add esp, 8
jmp 0x457ea0
call fcn.004753d0
push eax
call fcn.00404de0
add esp, 4
test eax, eax
je 0x457ea0
push esi
call fcn.00431bb0
add esp, 4
call fcn.00475440
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.00418480
test al, al
je 0x457dc3
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x457dc3
push 0x11
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x457dc3
push 0x58d0c8
call fcn.0046b180
add esp, 4
push ebp
push str.PJADV
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, dword [esp + 0x7c]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.0042e0e0
mov eax, dword [esp + 0x3c]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x70
ret 0x10