Function at 0x4078e0
Capabilities:
Accept command line arguments
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40b868
push 0x40a160
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x15a8
call fcn.0040a020
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
xor edi, edi
mov dword [ebp - 0xb3c], edi
lea ecx, [ebp - 0xb38]
call fcn.00406070
mov dword [ebp - 0x128], edi
mov dword [ebp - 4], edi
push 0x4127c8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
mov dword [ebp - 0x124], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov dword [ebp - 0x120], esi
push 0x104
lea eax, [ebp - 0x11c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov byte [ebp - 0x19], 0
push edi
push edi
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0xb40], eax
cmp eax, edi
jge 0x40799a
mov dword [ebp - 4], 0xffffffff
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push edi
push edi
push 2
push 2
push edi
push edi
push 0xffffffffffffffff
push edi
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 0xb40], eax
cmp eax, edi
jl 0x407fc4
push edi
push edi
push 1
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
call edi
mov dword [0x4127e4], eax
test eax, eax
jne 0x4079df
mov dword [ebp - 0xb3c], 1
jmp 0x407fc4
mov dword [0x412758], 0x64
mov dword [0x4127bc], 0
push ebx
push 0x40f228
push 0x412758
call sub.ATL.DLL_AtlModuleInit
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x4127c0], eax
push str._UnRegServer
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407ee7
push 0x40f2f0
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407ee7
push str._RegServer
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407d56
push 0x40f2d8
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407d56
push str._Embedding
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407ca1
push 0x40f2c0
push esi
call fcn.00407820
add esp, 8
test eax, eax
jne 0x407ca1
push 0xfffffffffffffff5
mov esi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
call esi
mov dword [ebp - 0xb54], eax
cmp eax, 0xffffffff
je 0x407aca
test eax, eax
je 0x407aca
push 0
lea ecx, [ebp - 0xb50]
push ecx
push 0
push 0x40f2bc
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x407c71
call dword [sym.imp.KERNEL32.dll_AllocConsole]
test eax, eax
je 0x407c71
push 1
push 0x407880
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x407af8
mov dword [ebp - 0xb3c], 1
jmp 0x407fc4
push 0xfffffffffffffff5
call esi
mov esi, eax
mov dword [ebp - 0xb54], esi
call fcn.004069d0
test eax, eax
je 0x407b3e
lea edx, [ebp - 0xb6c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, 0x3c
cmp word [ebp - 0xb6a], ax
jge 0x407b30
mov word [ebp - 0xb6a], ax
mov eax, dword [ebp - 0xb6c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
mov ecx, dword [sym.imp.MSVCRT.dll__iob]
push ecx
push 0x40f2b8
push str.CONIN_
mov esi, dword [sym.imp.MSVCRT.dll_freopen]
call esi
add esp, 0xc
mov edx, dword [sym.imp.MSVCRT.dll__iob]
add edx, 0x20
push edx
push 0x40f2ac
push str.CONOUT_
call esi
add esp, 0xc
call fcn.00403900
mov dword [ebp - 0xb3c], eax
mov eax, dword [0x4127e4]
test eax, eax
je 0x407b8e
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea ecx, [ebp - 0x157c]
call fcn.00406070
push 0x4e79
lea eax, [ebp - 0x157c]
push eax
call fcn.004060b0
add esp, 8
xor edi, edi
mov dword [ebp - 0x1580], edi
lea ecx, [ebp - 0x1574]
test ecx, ecx
je 0x407c1f
mov dword [ebp - 0x159c], edi
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
lea edx, [ebp - 0x1574]
push edx
push edi
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
call ebx
mov esi, eax
mov dword [ebp - 0x1598], esi
test esi, esi
je 0x407c19
inc esi
mov dword [ebp - 0x1598], esi
push esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [ebp - 0x159c], edi
test edi, edi
je 0x407c19
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x1574]
push eax
push 0
push 0
call ebx
mov dword [ebp - 0x1580], edi
push edi
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 4
test edi, edi
je 0x407c3c
mov dword [ebp - 0x15a0], edi
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [0x4127e4]
test eax, eax
je 0x407c4e
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [sym.imp.MSVCRT.dll__iob]
push ecx
mov esi, dword [sym.imp.MSVCRT.dll_fclose]
call esi
add esp, 4
mov edx, dword [sym.imp.MSVCRT.dll__iob]
add edx, 0x20
push edx
call esi
jmp 0x407fc1
push 1
push 0x407880
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x407c91
mov dword [ebp - 0xb3c], 1
jmp 0x407fc4
call fcn.00403900
mov dword [ebp - 0xb3c], eax
jmp 0x407fc4
push 0
push 0
mov esi, 1
push esi
push 0
call edi
mov dword [0x4127ec], eax
test eax, eax
jne 0x407cc3
mov dword [ebp - 0xb3c], esi
jmp 0x407fc4
push 0
push 0
push esi
push 0
call edi
mov dword [0x4127f0], eax
test eax, eax
jne 0x407ce0
mov dword [ebp - 0xb3c], esi
jmp 0x407fc4
push 0
push 4
push 0x412758
call sub.ATL.DLL_AtlModuleRegisterClassObjects
mov dword [ebp - 0xb40], eax
mov eax, dword [0x4127f0]
mov dword [ebp - 0xb4c], eax
mov ecx, dword [0x4127ec]
mov dword [ebp - 0xb48], ecx
push 0x1d4c0
push 0
lea edx, [ebp - 0xb4c]
push edx
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, esi
jne 0x407d47
call fcn.00403900
mov ecx, dword [0x4127e0]
test ecx, ecx
je 0x407d39
call fcn.004092f0
push 0xffffffffffffffff
mov eax, dword [0x4127f0]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x412758
call sub.ATL.DLL_AtlModuleRevokeClassObjects
jmp 0x407fc4
push 0
push 0
push 1
push 0x64
push 0x412758
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 1
push 0x412758
call sub.ATL.DLL_AtlModuleRegisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x407e32
call fcn.004069d0
test eax, eax
je 0x407fc4
push 0
mov ecx, 0x412738
call fcn.004098d0
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x407e32
mov ecx, dword [0x412738]
push ecx
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorLength]
mov dword [ebp - 0xb44], eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [ebp - 0x128], esi
test esi, esi
jne 0x407ddf
mov dword [ebp - 0xb3c], 0x8007000e
jmp 0x407e32
lea edx, [ebp - 0xb44]
push edx
push esi
mov eax, dword [0x412738]
push eax
call dword [sym.imp.ADVAPI32.dll_MakeSelfRelativeSD]
test eax, eax
jne 0x407e05
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xb3c], eax
jmp 0x407e32
mov ecx, dword [ebp - 0xb44]
push ecx
push esi
push str.LaunchPermission
push str.AppID090066E1_1D0C_11D2_B28E_00C04FD8EC02
push 0x80000000
call fcn.004068b0
add esp, 0x14
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x407fc4
mov edx, dword [ebp - 0xb3c]
push edx
push 0x4e89
lea eax, [ebp - 0xb38]
push eax
call fcn.004060b0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1584], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x407ebf
mov dword [ebp - 0x15ac], edi
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
lea edx, [ebp - 0xb30]
push edx
push edi
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
call ebx
mov esi, eax
mov dword [ebp - 0x15a8], esi
test esi, esi
je 0x407eb9
inc esi
mov dword [ebp - 0x15a8], esi
push esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [ebp - 0x15ac], edi
test edi, edi
je 0x407eb9
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0xb30]
push eax
push 0
push 0
call ebx
mov dword [ebp - 0x1584], edi
push 0x1030
lea ecx, [ebp - 0x11c]
push ecx
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test edi, edi
je 0x407fc4
mov dword [ebp - 0x15b0], edi
jmp 0x407fbb
push 0
push 0
push 0
push 0x64
push 0x412758
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 0x412758
call sub.ATL.DLL_AtlModuleUnregisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x407fc4
mov edx, eax
push edx
push 0x4e88
lea eax, [ebp - 0xb38]
push eax
call fcn.004060b0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1588], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x407f9c
mov dword [ebp - 0x15bc], edi
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
lea edx, [ebp - 0xb30]
push edx
push edi
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
call ebx
mov esi, eax
mov dword [ebp - 0x15b8], esi
test esi, esi
je 0x407f96
inc esi
mov dword [ebp - 0x15b8], esi
push esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [ebp - 0x15bc], edi
test edi, edi
je 0x407f96
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0xb30]
push eax
push 0
push 0
call ebx
mov dword [ebp - 0x1588], edi
push 0x1030
lea ecx, [ebp - 0x11c]
push ecx
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test edi, edi
je 0x407fc4
mov dword [ebp - 0x15c0], edi
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x407fdd
mov dword [ebp - 0x158c], eax
push eax
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x4127ec]
test eax, eax
je 0x407ff7
push eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x407ffd
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4127e4]
test eax, eax
je 0x408009
push eax
call esi
mov eax, dword [0x4127f0]
test eax, eax
je 0x408015
push eax
call esi
push 0x4127c8
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
jmp 0x408047
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xb3c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret