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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40f4d8
push 0x40e6aa
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x15a8
call fcn.0040e560
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.004011c0
mov dword [ebp - 0x128], edi
mov dword [ebp - 4], edi
push 0x416a18
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 0x40b63a
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 0x40bc64
push edi
push edi
push 1
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
call edi
mov dword [0x416a34], eax
test eax, eax
jne 0x40b67f
mov dword [ebp - 0xb3c], 1
jmp 0x40bc64
mov dword [0x4169a8], 0x64
mov dword [0x416a0c], 0
push ebx
push 0x413498
push 0x4169a8
call sub.ATL.DLL_AtlModuleInit
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x416a10], eax
push str._UnRegServer
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40bb87
push 0x413560
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40bb87
push str._RegServer
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40b9f6
push 0x413548
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40b9f6
push str._Embedding
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40b941
push 0x413530
push esi
call fcn.0040b4c0
add esp, 8
test eax, eax
jne 0x40b941
push 0xfffffffffffffff5
mov esi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
call esi
mov dword [ebp - 0xb54], eax
cmp eax, 0xffffffff
je 0x40b76a
test eax, eax
je 0x40b76a
push 0
lea ecx, [ebp - 0xb50]
push ecx
push 0
push 0x41352c
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40b911
call dword [sym.imp.KERNEL32.dll_AllocConsole]
test eax, eax
je 0x40b911
push 1
push 0x40b520
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x40b798
mov dword [ebp - 0xb3c], 1
jmp 0x40bc64
push 0xfffffffffffffff5
call esi
mov esi, eax
mov dword [ebp - 0xb54], esi
call fcn.00401170
test eax, eax
je 0x40b7de
lea edx, [ebp - 0xb6c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, 0x3c
cmp word [ebp - 0xb6a], ax
jge 0x40b7d0
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 0x413528
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 0x41351c
push str.CONOUT_
call esi
add esp, 0xc
call fcn.00408b90
mov dword [ebp - 0xb3c], eax
mov eax, dword [0x416a34]
test eax, eax
je 0x40b82e
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea ecx, [ebp - 0x157c]
call fcn.004011c0
push 0x4e79
lea eax, [ebp - 0x157c]
push eax
call fcn.00401210
add esp, 8
xor edi, edi
mov dword [ebp - 0x1580], edi
lea ecx, [ebp - 0x1574]
test ecx, ecx
je 0x40b8bf
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 0x40b8b9
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 0x40b8b9
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 0x40b8dc
mov dword [ebp - 0x15a0], edi
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [0x416a34]
test eax, eax
je 0x40b8ee
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 0x40bc61
push 1
push 0x40b520
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x40b931
mov dword [ebp - 0xb3c], 1
jmp 0x40bc64
call fcn.00408b90
mov dword [ebp - 0xb3c], eax
jmp 0x40bc64
push 0
push 0
mov esi, 1
push esi
push 0
call edi
mov dword [0x416a3c], eax
test eax, eax
jne 0x40b963
mov dword [ebp - 0xb3c], esi
jmp 0x40bc64
push 0
push 0
push esi
push 0
call edi
mov dword [0x416a40], eax
test eax, eax
jne 0x40b980
mov dword [ebp - 0xb3c], esi
jmp 0x40bc64
push 0
push 4
push 0x4169a8
call sub.ATL.DLL_AtlModuleRegisterClassObjects
mov dword [ebp - 0xb40], eax
mov eax, dword [0x416a40]
mov dword [ebp - 0xb4c], eax
mov ecx, dword [0x416a3c]
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 0x40b9e7
call fcn.00408b90
mov ecx, dword [0x416a30]
test ecx, ecx
je 0x40b9d9
call fcn.0040cf90
push 0xffffffffffffffff
mov eax, dword [0x416a40]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x4169a8
call sub.ATL.DLL_AtlModuleRevokeClassObjects
jmp 0x40bc64
push 0
push 0
push 1
push 0x64
push 0x4169a8
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 1
push 0x4169a8
call sub.ATL.DLL_AtlModuleRegisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x40bad2
call fcn.00401170
test eax, eax
je 0x40bc64
push 0
mov ecx, 0x416988
call fcn.0040d570
mov dword [ebp - 0xb3c], eax
test eax, eax
jl 0x40bad2
mov ecx, dword [0x416988]
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 0x40ba7f
mov dword [ebp - 0xb3c], 0x8007000e
jmp 0x40bad2
lea edx, [ebp - 0xb44]
push edx
push esi
mov eax, dword [0x416988]
push eax
call dword [sym.imp.ADVAPI32.dll_MakeSelfRelativeSD]
test eax, eax
jne 0x40baa5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xb3c], eax
jmp 0x40bad2
mov ecx, dword [ebp - 0xb44]
push ecx
push esi
push str.LaunchPermission
push str.AppID090066D2_1D0C_11D2_B28E_00C04FD8EC02
push SQLAllocConnect
call fcn.00401050
add esp, 0x14
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x40bc64
mov edx, dword [ebp - 0xb3c]
push edx
push 0x4e89
lea eax, [ebp - 0xb38]
push eax
call fcn.00401210
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1584], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x40bb5f
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 0x40bb59
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 0x40bb59
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 0x40bc64
mov dword [ebp - 0x15b0], edi
jmp 0x40bc5b
push 0
push 0
push 0
push 0x64
push 0x4169a8
call sub.ATL.DLL_AtlModuleUpdateRegistryFromResourceD
push 0
push 0x4169a8
call sub.ATL.DLL_AtlModuleUnregisterServer
mov dword [ebp - 0xb3c], eax
test eax, eax
jge 0x40bc64
mov edx, eax
push edx
push 0x4e88
lea eax, [ebp - 0xb38]
push eax
call fcn.00401210
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x1588], edi
lea ecx, [ebp - 0xb30]
test ecx, ecx
je 0x40bc3c
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 0x40bc36
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 0x40bc36
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 0x40bc64
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 0x40bc7d
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 [0x416a3c]
test eax, eax
je 0x40bc97
push eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x40bc9d
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x416a34]
test eax, eax
je 0x40bca9
push eax
call esi
mov eax, dword [0x416a40]
test eax, eax
je 0x40bcb5
push eax
call esi
push 0x416a18
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
jmp 0x40bce7
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