Function at 0x4013ad
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x490880
call fcn.004903f0
sub esp, 0x834
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp + 0x10], eax
call fcn.0041af60
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push dword [ebp + 8]
mov eax, 0x4afd50
mov dword [0x4afdc0], 0x4ac9d0
mov dword [0x4afdf8], eax
push 0x4ac2b0
push eax
mov dword [0x4afd50], 0x84
mov dword [0x4afdb4], 0x300
call fcn.0040184d
mov eax, 0x49a370
mov ecx, eax
test ecx, ecx
je 0x401428
push 0x10
push eax
push 0x4afde8
call sub.MSVCRT.dll_memcpy
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x4afdd4], eax
mov esi, 0x4acaf0
lea edi, [ebp - 0x10]
lea eax, [ebp - 0x10]
movsw word es:[edi], word [esi]
push eax
mov dword [ebp - 0x14], ebx
push dword [ebp + 0x10]
movsb byte es:[edi], byte [esi]
call fcn.00401133
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x40148d
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.UnregServer
push esi
call edi
test eax, eax
je 0x401521
push str.RegServer
push esi
call edi
test eax, eax
je 0x401630
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.00401133
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jne 0x40145b
call fcn.004012df
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x23], al
mov byte [ebp - 0x1c], bl
call fcn.004028b3
push 1
lea eax, [ebp - 0x24]
pop edi
push eax
push str.qqfo.exe
mov dword [ebp - 4], edi
call fcn.0040121e
pop ecx
test al, al
pop ecx
je 0x4014cb
mov al, byte [ebp - 0x18]
mov byte [0x4affe2], al
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00401a51
mov esi, 0x4afd50
mov ecx, esi
call fcn.004010d9
push 0x4afd64
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push edi
push 4
push esi
call fcn.004018d0
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea eax, [ebp - 0x40]
push ebx
push eax
call edi
test eax, eax
je 0x40181c
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
lea eax, [ebp - 0x40]
push ebx
push eax
jmp 0x401504
push str.P2PHost.P2PHost.1
push str.P2PHost.P2PHost
push 0x49a380
call fcn.00408c18
mov ebx, closesocket
push str.AppIDP2PHost.EXE
push ebx
mov dword [ebp - 0x14], eax
call fcn.00408cc9
mov eax, dword [str.AppID_]
mov ecx, 0xfe
mov dword [ebp - 0x440], eax
mov eax, dword [0x4acab4]
mov dword [ebp - 0x43c], eax
xor eax, eax
lea edi, [ebp - 0x438]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov esi, 0x3ff
mov edi, dword [sym.imp.MSVCRT.dll_strncat]
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x440]
push ecx
push str.97CE68E3_6294_49BB_9482_BAD9604F7321
push eax
call edi
lea eax, [ebp - 0x440]
push eax
push ebx
call fcn.00408cc9
push esi
lea eax, [ebp - 0x440]
push str.Interface_
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x440]
push ecx
push str.9C11AAFA_11F3_4AAF_BF90_DE9DA1DD7E1D
push eax
call edi
add esp, 0x48
lea eax, [ebp - 0x440]
push eax
push ebx
call fcn.00408cc9
push esi
lea eax, [ebp - 0x440]
push str.TypeLib_
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
sub esi, eax
lea eax, [ebp - 0x440]
push esi
push str.1619AA66_FF6E_4CDF_BE0B_983463FF46B2
push eax
call edi
lea eax, [ebp - 0x440]
push eax
push ebx
call fcn.00408cc9
add esp, 0x2c
mov esi, 0x4afd50
jmp 0x40182d
mov esi, str.P2PHost.P2PHost
push str.P2PHost.P2PHost.1
push esi
push 0x49a390
push 0x49a380
push dword [ebp + 8]
call fcn.00408b0e
push ebx
push esi
mov edi, str.97CE68E3_6294_49BB_9482_BAD9604F7321
mov esi, str.AppID
push edi
push esi
mov dword [ebp - 0x14], eax
call fcn.00408e13
push str.APPID
push edi
push str.P2PHost.EXE
push esi
call fcn.00408e13
mov esi, 0x4aca70
lea edi, [ebp - 0x440]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xfd
xor eax, eax
lea edi, [ebp - 0x435]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov esi, 0x3ff
mov edi, dword [sym.imp.MSVCRT.dll_strncat]
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x440]
push ecx
push str.9C11AAFA_11F3_4AAF_BF90_DE9DA1DD7E1D
push eax
call edi
add esp, 0x44
lea eax, [ebp - 0x440]
push ebx
push str.00020424_0000_0000_C000_000000000046
push str.ProxyStubClsid
push eax
call fcn.00408e13
push ebx
push str.00020424_0000_0000_C000_000000000046
lea eax, [ebp - 0x440]
push str.ProxyStubClsid32
push eax
call fcn.00408e13
push ebx
push str.1619AA66_FF6E_4CDF_BE0B_983463FF46B2
lea eax, [ebp - 0x440]
push str.TypeLib
push eax
call fcn.00408e13
push str.Version
push 0x49a440
lea eax, [ebp - 0x440]
push str.TypeLib
push eax
call fcn.00408e13
add esp, 0x40
lea eax, [ebp - 0x440]
push esi
push 0x4aca08
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov ecx, esi
sub ecx, eax
push ecx
push str.1619AA66_FF6E_4CDF_BE0B_983463FF46B2
lea eax, [ebp - 0x440]
push eax
call edi
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x440]
push ecx
push 0x4aca04
push eax
call edi
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
mov ecx, esi
sub ecx, eax
lea eax, [ebp - 0x440]
push ecx
push 0x49a440
push eax
call edi
push ebx
push 0x4ac83c
lea eax, [ebp - 0x440]
push str.FLAGS
push eax
call fcn.00408e13
add esp, 0x4c
lea eax, [ebp - 0x440]
push eax
call sub.MSVCRT.dll_strlen
sub esi, eax
lea eax, [ebp - 0x440]
push esi
push 0x4ac9f8
push eax
call edi
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x83f]
mov byte [ebp - 0x840], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 0x10
stosb byte es:[edi], al
lea eax, [ebp - 0x840]
push 0x400
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x840]
push ebx
push eax
lea eax, [ebp - 0x440]
push str.win32
push eax
call fcn.00408e13
add esp, 0x10
jmp 0x401626
push esi
call fcn.00401965
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call fcn.004019a1
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10