Function at 0x4026a1
Capabilities:
Accept command line arguments

Disassembly:
push ebp
lea ebp, [esp - 0x120]
sub esp, 0x1a0
mov eax, dword [0x4393f0]
xor eax, ebp
mov dword [ebp + 0x11c], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 0
mov dword [ebp - 0x50], eax
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jge 0x4026ef
push str.SUCCEEDED_hRes_
push 0
push 0x6f
push str..PzDlgs.cpp
push 2
call fcn.004084a0
add esp, 0x14
cmp eax, 1
jne 0x4026ef
int3
push ebx
push esi
push edi
push 0x42a510
push dword [ebp + 0x128]
mov ebx, 0x43a744
push 0x439020
mov ecx, ebx
call fcn.004018bf
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, 0x42aed0
lea edi, [ebp - 0x60]
movsw word es:[edi], word [esi]
mov dword [0x43a774], eax
lea eax, [ebp - 0x60]
movsb byte es:[edi], byte [esi]
xor esi, esi
push eax
push dword [ebp - 0x50]
mov dword [ebp - 0x58], esi
jmp 0x402757
push str.UnregServer
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4027a5
push str.RegServer
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4027c1
lea eax, [ebp - 0x60]
push eax
push edi
call fcn.00401700
mov edi, eax
cmp edi, esi
pop ecx
pop ecx
jne 0x402732
mov ecx, ebx
call fcn.00401b71
push 1
push 4
mov ecx, ebx
call fcn.0040191b
test eax, eax
jge 0x40279a
push str.SUCCEEDED_hRes_
push esi
push 0xab
push str..PzDlgs.cpp
push 2
call fcn.004084a0
add esp, 0x14
cmp eax, 1
jne 0x40279a
int3
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x402913
push esi
push esi
push 0x64
push ebx
call fcn.00401ef4
push esi
push 1
mov ecx, ebx
call fcn.00401d2d
mov dword [ebp - 0x58], eax
jmp 0x402932
push esi
push 1
push 0x64
push ebx
call fcn.00401ef4
push esi
push 1
mov ecx, ebx
call fcn.00401cc0
push 0x104
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x58], eax
mov eax, dword [0x43a858]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jbe 0x402932
push 0x32
lea eax, [ebp + 0xb8]
push eax
push 0x42aea8
call dword [sym.imp.ole32.dll_StringFromGUID2]
push str.CLSID_
lea ecx, [ebp - 0x64]
call fcn.004012b3
lea eax, [ebp + 0xb8]
push eax
lea ecx, [ebp - 0x54]
call fcn.00401300
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040144f
mov ecx, dword [ebp - 0x54]
cmp ecx, esi
je 0x40283e
call fcn.0040140c
mov ecx, dword [ebp - 0x64]
cmp ecx, esi
mov dword [ebp - 0x54], esi
je 0x40284f
call fcn.00401053
jmp 0x402851
xor eax, eax
push esi
push esi
push 0x2001f
push esi
push esi
push eax
push SysReAllocString
lea ecx, [ebp - 0x54]
call fcn.00401190
test eax, eax
jne 0x4028f3
push 0x42ae9c
lea ecx, [ebp - 0x5c]
call fcn.004012b3
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x50]
call fcn.004012b3
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040144f
mov ecx, dword [ebp - 0x50]
cmp ecx, esi
je 0x4028a1
call fcn.0040140c
push str.__21
lea ecx, [ebp - 0x50]
call fcn.004012b3
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040144f
mov ecx, dword [ebp - 0x50]
cmp ecx, esi
je 0x4028c6
call fcn.0040140c
mov edi, dword [ebp - 0x5c]
cmp edi, esi
je 0x4028d6
mov ecx, edi
call fcn.00401053
jmp 0x4028d8
xor eax, eax
push 2
push eax
push 0x42ae84
lea ecx, [ebp - 0x54]
call fcn.00401206
cmp edi, esi
je 0x4028f3
mov ecx, edi
call fcn.0040140c
lea ecx, [ebp - 0x54]
call fcn.00401179
mov ecx, dword [ebp - 0x64]
cmp ecx, esi
je 0x402932
call fcn.0040140c
jmp 0x402932
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push esi
push esi
push esi
lea eax, [ebp - 0x80]
push eax
call edi
test eax, eax
jne 0x402909
mov ecx, ebx
call fcn.0040195e
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, ebx
call fcn.00402276
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp + 0x11c]
mov eax, dword [ebp - 0x58]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00409130
add ebp, 0x120
leave
ret 0x10