Function at 0x458630
Capabilities:
Check mutex on windows
Check os version
Set current directory

Disassembly:
sub esp, 0x10c
mov eax, dword [0x4b78cc]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x11c]
push edi
push str.GlobalPJADVSYS
mov ebx, 1
push ebx
xor ebp, ebp
push ebp
mov dword [esp + 0x20], esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
mov dword [esp + 0x10], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x45869a
push ebp
push str.PJADV
push ebp
push ebp
call dword [sym.imp.USER32.dll_FindWindowExA]
cmp eax, ebp
je 0x458693
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
jmp 0x458bb7
cmp edi, ebp
jne 0x4586d7
push ebp
push str.PJADV
push ebp
push ebp
call dword [sym.imp.USER32.dll_FindWindowExA]
cmp eax, ebp
je 0x4586be
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
jmp 0x458bb7
push ebp
push str.PJADV
push 0x498948
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x458bb7
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0x88], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x88]
cmp eax, 7
jae 0x458721
cmp eax, 6
jb 0x458719
cmp dword [esp + 0x8c], ebx
jae 0x458721
mov dword [0x58990c], ebp
jmp 0x458727
mov dword [0x58990c], ebx
push 0x104
mov dword [0x589a14], esi
call fcn.0047dcaa
push 0x104
mov esi, eax
call fcn.0047dcaa
push 0x104
mov edi, eax
call fcn.0047dcaa
push 0x104
push ebp
push 0x589910
mov ebx, eax
call fcn.0047e210
add esp, 0x18
push 0x104
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebp
push ebp
push ebp
push ebp
push 0x104
push ebx
push 0x104
push edi
push esi
call fcn.0047f362
push ebx
push edi
push 0x4973f8
push 0x589910
call dword [sym.imp.USER32.dll_wsprintfA]
push esi
call fcn.0047dd2d
push edi
call fcn.0047dd2d
push ebx
call fcn.0047dd2d
add esp, 0x40
push 0x589910
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.004317b0
call fcn.00431680
push str.graph
call fcn.00431350
push 0x497c00
call fcn.00431350
push str.voice
call fcn.00431350
push 0x497bfc
call fcn.00431350
call fcn.00422580
push 0x589a18
call fcn.004685a0
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x14
test eax, eax
jne 0x458815
push ebp
push 0x498940
push 0x498918
push ebp
call ebx
push ebp
call fcn.00457910
add esp, 4
test eax, eax
jne 0x458842
push ebp
push 0x589a18
push 0x4988f4
push ebp
call ebx
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x458bb7
call fcn.004686c0
call fcn.004024c0
test eax, eax
jne 0x458870
push ebp
push 0x498940
push 0x4988c8
push ebp
call ebx
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x458bb7
push 0x6c5f94
push ebp
push 0xffff0102
call fcn.00402430
add esp, 0xc
test eax, eax
jne 0x45889d
call fcn.004023f0
neg eax
sbb eax, eax
and eax, 0xfffffff6
add eax, 0x3e8
mov dword [0x6c5f94], eax
mov edi, dword [esp + 0x14]
push 0x66
push edi
mov dword [esp + 0x30], 0x30
mov dword [esp + 0x34], 3
mov dword [esp + 0x38], 0x457b80
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], edi
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x40
push ebp
push ebp
push 1
push 0x66
push edi
mov dword [esp + 0x58], eax
call dword [sym.imp.USER32.dll_LoadImageA]
push 0x7f00
push ebp
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [esp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], str.PJADV
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebp
push ebp
push 0x90cb0000
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], 0x400
mov dword [esp + 0x34], 0x300
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
lea edx, [esp + 0x74]
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x6ca668]
test eax, eax
movzx ecx, word [0x6ca66a]
jns 0x45896a
or ecx, 0xffff0000
test eax, 0x8000
je 0x458978
or eax, 0xffff0000
jmp 0x45897d
and eax, 0xffff
cmp ecx, ebp
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
jl 0x458998
cmp eax, ebp
jl 0x458998
cmp ecx, edx
jge 0x458998
cmp eax, esi
jl 0x4589d8
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, ebp
jge 0x4589c2
xor ecx, ecx
cmp eax, ebp
jge 0x4589c8
xor eax, eax
mov edx, ecx
movzx esi, ax
shl edx, 0x10
or edx, esi
mov dword [0x6ca668], edx
mov edx, dword [esp + 0x24]
sub edx, dword [esp + 0x1c]
push ebp
push edi
push ebp
push ebp
push edx
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x2c]
push edx
push eax
push ecx
push 0x90cb0000
push 0x589a18
push str.PJADV
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
cmp esi, ebp
jne 0x458a33
push ebp
push str.PJADV
push 0x4988b0
push ebp
call ebx
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x458bb7
mov ecx, dword [esp + 0x12c]
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_DestroyWindow]
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
lea esp, [esp]
push ebp
push ebp
push ebp
push ebp
lea edx, [esp + 0x68]
push edx
call ebx
test eax, eax
je 0x458ab4
nop
push ebp
push ebp
push ebp
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, ebp
je 0x458b7b
cmp eax, 0xffffffff
je 0x458b7b
lea ecx, [esp + 0x58]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x58]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebp
push ebp
push ebp
push ebp
lea eax, [esp + 0x68]
push eax
call ebx
test eax, eax
jne 0x458a70
push esi
call fcn.00405860
add esp, 4
test eax, eax
jne 0x458b6e
call fcn.00404c60
call fcn.00404de0
call fcn.00404fe0
call fcn.00472140
push eax
call fcn.004720c0
push eax
call fcn.004193e0
add esp, 8
cmp eax, 0xfffffffe
ja 0x458b4a
je 0x458b36
sub eax, 1
je 0x458b14
sub eax, 1
jne 0x458b52
push esi
call fcn.00432a30
call fcn.004720e0
push eax
call fcn.00405310
add esp, 8
call fcn.00472150
jmp 0x458b52
call fcn.004720e0
push eax
call fcn.00405310
add esp, 4
test eax, eax
je 0x458b2f
push esi
call fcn.00432a30
add esp, 4
call fcn.00472150
jmp 0x458b52
push ebp
push 0x498940
push 0x4987f8
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x458b4f
cmp eax, 0xffffffff
jne 0x458b52
push esi
call edi
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.00419d60
test al, al
je 0x458a60
push esi
call edi
jmp 0x458a60
push 0x11
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x458a60
push 0x589a18
call fcn.004686b0
mov ecx, dword [esp + 0x18]
add esp, 4
push ecx
push str.PJADV
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov edx, dword [esp + 0x54]
push edx
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.0042ef30
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x118]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0047dd32
add esp, 0x10c
ret 0x10