Function at 0x40fd5e
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x520
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x520]
push 0x400
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor esi, esi
lea eax, [ebp - 0x120]
push esi
push eax
push esi
lea eax, [ebp - 0x520]
push esi
push eax
call fcn.004169a8
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.gwkrnl32.dll_GW_LoadResourceLibrary]
add esp, 0x18
mov dword [0x422a50], eax
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
push dword [ebp + 8]
mov ebx, 0x422990
mov dword [0x422a00], 0x421370
mov dword [0x42251c], ebx
push 0x421228
push ebx
mov dword [0x422990], 0x84
mov dword [0x4229f4], 0x300
call fcn.0041397f
mov eax, 0x41e688
mov ecx, eax
test ecx, ecx
je 0x40fe0e
push 0x10
push eax
push 0x422980
call fcn.004165a0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x422a20], esi
mov esi, 0x421398
lea edi, [ebp - 4]
mov dword [0x422a14], eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 4]
xor esi, esi
push eax
mov dword [ebp + 8], esi
push dword [ebp + 0x10]
call fcn.0040fd1d
mov edi, eax
pop ecx
cmp edi, esi
pop ecx
je 0x40ff40
push str.UnregServer
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40fe6e
push 0x421380
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40fed9
lea eax, [ebp - 4]
push eax
push edi
jmp 0x40fe36
push esi
push esi
push 0x64
push ebx
call fcn.00411d90
push esi
push esi
push 0x6c
push ebx
call fcn.00411d90
push esi
push esi
push 0x70
push ebx
call fcn.00411d90
push esi
push esi
push 0x65
push ebx
call fcn.00411d90
push esi
push esi
push 0x6d
push ebx
call fcn.00411d90
push esi
push esi
push 0x6f
push ebx
call fcn.00411d90
push esi
push esi
push 0x69
push ebx
call fcn.00411d90
push esi
push esi
push 0x74
push ebx
call fcn.00411d90
push esi
push esi
push 0x75
push ebx
call fcn.00411d90
push esi
push 1
push ebx
call fcn.00413e52
mov dword [ebp + 8], eax
jmp 0x40ff88
push esi
push 1
pop edi
push edi
push 0x64
push ebx
call fcn.00411d90
push esi
push edi
push 0x6c
push ebx
call fcn.00411d90
push esi
push edi
push 0x70
push ebx
call fcn.00411d90
push esi
push edi
push 0x65
push ebx
call fcn.00411d90
push esi
push edi
push 0x6d
push ebx
call fcn.00411d90
push esi
push edi
push 0x6f
push ebx
call fcn.00411d90
push esi
push edi
push 0x69
push ebx
call fcn.00411d90
push esi
push edi
push 0x74
push ebx
call fcn.00411d90
push esi
push edi
push 0x75
push ebx
call fcn.00411d90
push esi
push edi
push ebx
call fcn.00413cd9
jmp 0x40fed1
mov ecx, ebx
call fcn.0040fcd2
push 1
push 4
push ebx
call fcn.00413a7a
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push esi
push esi
lea eax, [ebp - 0x20]
push esi
push eax
call edi
test eax, eax
je 0x40ff77
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push esi
push esi
lea eax, [ebp - 0x20]
push esi
push eax
jmp 0x40ff5e
push ebx
call fcn.00413b57
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [0x422a20]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push ebx
call fcn.00413c01
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [0x422a20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret 0x10