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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41ade0
push 0x4184e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x15a8
call fcn.00418400
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.00402ea0
mov dword [ebp - 0x128], edi
mov dword [ebp - 4], edi
push 0x424640
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 0x4154fa
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 0x415b24
push edi
push edi
push 1
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
call edi
mov dword [0x42465c], eax
test eax, eax
jne 0x41553f
mov dword [ebp - 0xb3c], 1
jmp 0x415b24
mov dword [0x4245d0], 0x64
mov dword [0x424634], 0
push ebx
push 0x421068
push 0x4245d0
call sub.ATL.DLL_AtlModuleInit
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x424638], eax
push str._UnRegServer
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x415a47
push 0x421130
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x415a47
push str._RegServer
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x4158b6
push 0x421118
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x4158b6
push str._Embedding
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x415801
push 0x421100
push esi
call fcn.00415380
add esp, 8
test eax, eax
jne 0x415801
push 0xfffffffffffffff5
mov esi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
call esi
mov dword [ebp - 0xb54], eax
cmp eax, 0xffffffff
je 0x41562a
test eax, eax
je 0x41562a
push 0
lea ecx, [ebp - 0xb50]
push ecx
push 0
push 0x4210fc
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4157d1
call dword [sym.imp.KERNEL32.dll_AllocConsole]
test eax, eax
je 0x4157d1
push 1
push 0x4153e0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x415658
mov dword [ebp - 0xb3c], 1
jmp 0x415b24
push 0xfffffffffffffff5
call esi
mov esi, eax
mov dword [ebp - 0xb54], esi
call fcn.00412a00
test eax, eax
je 0x41569e
lea edx, [ebp - 0xb6c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, 0x3c
cmp word [ebp - 0xb6a], ax
jge 0x415690
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 0x4210f8
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 0x4210ec
push str.CONOUT_
call esi
add esp, 0xc
call fcn.00405fc0
mov dword [ebp - 0xb3c], eax
mov eax, dword [0x42465c]
test eax, eax
je 0x4156ee
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea ecx, [ebp - 0x157c]
call fcn.00402ea0
push 0x4e79
lea eax, [ebp - 0x157c]
push eax
call fcn.00402ee0
add esp, 8
xor edi, edi
mov dword [ebp - 0x1580], edi
lea ecx, [ebp - 0x1574]
test ecx, ecx
je 0x41577f
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 0x415779
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 0x415779
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 0x41579c
mov dword [ebp - 0x15a0], edi
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [0x42465c]
test eax, eax
je 0x4157ae
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 0x415b21
push 1
push 0x4153e0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x4157f1
mov dword [ebp - 0xb3c], 1
jmp 0x415b24
call fcn.00405fc0
mov dword [ebp - 0xb3c], eax
jmp 0x415b24
push 0
push 0
mov esi, 1
push esi
push 0
call edi
mov dword [0x424664], eax
test eax, eax
jne 0x415823
mov dword [ebp - 0xb3c], esi
jmp 0x415b24
push 0
push 0
push esi
push 0
call edi
mov dword [0x424668], eax
test eax, eax
jne 0x415840
mov dword [ebp - 0xb3c], esi
jmp 0x415b24
push 0
push 4
push 0x4245d0
call sub.ATL.DLL_AtlModuleRegisterClassObjects
mov dword [ebp - 0xb40], eax
mov eax, dword [0x424668]
mov dword [ebp - 0xb4c], eax
mov ecx, dword [0x424664]
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 0x4158a7
call fcn.00405fc0
mov ecx, dword [0x424658]
test ecx, ecx
je 0x415899
call fcn.00416e50
push 0xffffffffffffffff
mov eax, dword [0x424668]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x4245d0
call sub.ATL.DLL_AtlModuleRevokeClassObjects
jmp 0x415b24
push 0
push 0
push 1
push 0x64
push 0x4245d0
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 1
push 0x4245d0
call sub.ATL.DLL_AtlModuleRegisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x415992
call fcn.00412a00
test eax, eax
je 0x415b24
push 0
mov ecx, 0x4245b0
call fcn.00417430
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x415992
mov ecx, dword [0x4245b0]
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 0x41593f
mov dword [ebp - 0xb3c], 0x8007000e
jmp 0x415992
lea edx, [ebp - 0xb44]
push edx
push esi
mov eax, dword [0x4245b0]
push eax
call dword [sym.imp.ADVAPI32.dll_MakeSelfRelativeSD]
test eax, eax
jne 0x415965
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xb3c], eax
jmp 0x415992
mov ecx, dword [ebp - 0xb44]
push ecx
push esi
push str.LaunchPermission
push str.AppIDE2E0B0C3_1397_11D2_B28C_00C04FD8EC02
push SQLAllocConnect
call fcn.004127d0
add esp, 0x14
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x415b24
mov edx, dword [ebp - 0xb3c]
push edx
push 0x4e89
lea eax, [ebp - 0xb38]
push eax
call fcn.00402ee0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1584], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x415a1f
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 0x415a19
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 0x415a19
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 0x415b24
mov dword [ebp - 0x15b0], edi
jmp 0x415b1b
push 0
push 0
push 0
push 0x64
push 0x4245d0
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 0x4245d0
call sub.ATL.DLL_AtlModuleUnregisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x415b24
mov edx, eax
push edx
push 0x4e88
lea eax, [ebp - 0xb38]
push eax
call fcn.00402ee0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1588], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x415afc
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 0x415af6
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 0x415af6
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 0x415b24
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 0x415b3d
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 [0x424664]
test eax, eax
je 0x415b57
push eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x415b5d
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x42465c]
test eax, eax
je 0x415b69
push eax
call esi
mov eax, dword [0x424668]
test eax, eax
je 0x415b75
push eax
call esi
push 0x424640
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
jmp 0x415ba7
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