Function at 0x403516
Capabilities:
Check os version
Create process on windows
Print debug messages

Disassembly:
mov eax, 0x4043f0
call fcn.00403f00
sub esp, 0xec
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
cmp ebx, esi
push edi
je 0x403733
push 0x407df0
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x403733
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.atscmgr_LaunchUrl_
call edi
push ebx
call edi
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xf8], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0xf4], 6
jb 0x4035a0
push 1
push esi
push esi
push ebx
push str.open
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x20
jge 0x403733
push ebx
call fcn.0040378a
pop ecx
jmp 0x403733
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
push 0xffffffffffffffff
push ebx
mov dword [ebp - 0x10], esi
call fcn.00403742
pop ecx
mov dword [ebp - 0x14], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x32]
mov word [ebp - 0x34], 1
mov word [ebp - 0x54], si
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [ebp - 0x52]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [ebp - 0x22]
mov word [ebp - 0x24], si
mov word [ebp - 0x44], si
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [ebp - 0x42]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x10]
mov dword [ebp - 4], esi
push eax
push 0x405260
push 0x15
push esi
push 0x405250
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jge 0x403627
push 1
push esi
push esi
push ebx
push esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x40372a
mov eax, dword [ebp - 0x10]
cmp eax, esi
je 0x403724
lea edx, [ebp - 0x44]
mov dword [ebp + 8], esi
push edx
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x54]
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x34]
push edx
push dword [ebp - 0x14]
push eax
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x10]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
cmp dword [ebp + 0xc], esi
je 0x403688
mov eax, dword [ebp - 0x10]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc4]
mov eax, dword [ebp - 0x10]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xbc]
mov eax, dword [ebp - 0x10]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xac]
mov eax, dword [ebp - 0x10]
lea edx, [ebp + 8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp + 8], esi
je 0x403724
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x403724
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4036d4
push esi
push 0xf120
push 0x112
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_PostMessageA]
cmp dword [ebp + 0x10], 0x18
jne 0x403712
push 0x10
lea eax, [ebp - 0x64]
push esi
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 1
push 0x12c
push 0x1f4
push 0x64
push 0xc8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MoveWindow]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_BringWindowToTop]
call dword [sym.imp.ole32.dll_CoUninitialize]
push dword [ebp - 0x14]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret