Function at 0x40c858
Capabilities:
Accept command line arguments

Disassembly:
push ebp
lea ebp, [esp - 0xa0]
sub esp, 0x120
mov eax, dword [0x49ab28]
xor eax, ebp
mov dword [ebp + 0x9c], eax
push esi
mov esi, dword [ebp + 0xa8]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x6c], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
jns 0x40c89d
mov byte [0x49c4c8], 1
mov byte [0x49c4c9], 0
jmp 0x40c8ab
mov byte [0x49c4c8], 0
mov byte [0x49c4c9], 1
push str._filguard
push dword [ebp - 0x6c]
call fcn.0046e7b0
pop ecx
pop ecx
test eax, eax
je 0x40c8c6
xor eax, eax
inc eax
jmp 0x40c9f9
push ebx
mov byte [0x49c4cb], 0
call fcn.00401100
call fcn.00406dbb
call fcn.00406f7d
push 0x485868
push 0x64
push esi
mov ebx, 0x49c498
push 0x49c470
mov ecx, ebx
call fcn.00409d40
push str.K7TS10UpgradeInProgress
push 0
push 0x1f0001
mov byte [0x49c4ca], 1
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x40c921
push eax
mov byte [0x49c494], 1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
mov esi, 0x485ddc
lea edi, [ebp - 0x74]
lea eax, [ebp - 0x74]
movsw word es:[edi], word [esi]
push eax
push dword [ebp - 0x6c]
movsb byte es:[edi], byte [esi]
call fcn.00408ee2
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x40c9c7
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.UnregServer
push edi
call esi
test eax, eax
je 0x40ca11
push str.RegServer
push edi
call esi
test eax, eax
je 0x40ca1f
push str.Service
push edi
call esi
test eax, eax
jne 0x40c98c
call fcn.00467c9a
push 1
push 1
mov ecx, ebx
call fcn.0040c6d5
call fcn.00467cc2
push str.StartUp
push edi
call esi
test eax, eax
jne 0x40c99f
mov byte [0x49c4cb], 1
push str.Debug
push edi
call esi
test eax, eax
jne 0x40c9b5
call fcn.00467c9a
call fcn.00467cc2
lea eax, [ebp - 0x74]
push eax
push edi
call fcn.00408ee2
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x40c94b
and dword [ebp - 0x70], 0
and dword [ebp - 0x6c], 0
mov esi, 0x20019
push esi
push str.AppID
push SysReAllocString
lea ecx, [ebp - 0x70]
call fcn.00409726
mov edi, eax
test edi, edi
je 0x40ca45
lea ecx, [ebp - 0x70]
call fcn.0040970b
mov eax, edi
pop edi
pop ebx
mov ecx, dword [ebp + 0x9c]
xor ecx, ebp
pop esi
call fcn.0046c1d2
add ebp, 0xa0
leave
ret 0x10
call fcn.00467c9a
mov ecx, ebx
call fcn.0040c7d7
jmp 0x40ca3c
call fcn.00467c9a
cmp byte [0x49c4c8], 0
mov ecx, ebx
je 0x40ca33
push 0
jmp 0x40ca35
push 1
push 1
call fcn.0040c6d5
mov esi, eax
call fcn.00467cc2
jmp 0x40ca74
and dword [ebp - 0x7c], 0
and dword [ebp - 0x78], 0
push esi
push str.737F2D62_A93E_11D7_B0FE_00C026A19B93
push dword [ebp - 0x70]
lea ecx, [ebp - 0x7c]
call fcn.00409726
test eax, eax
je 0x40ca7b
mov esi, eax
lea ecx, [ebp - 0x7c]
call fcn.0040970b
lea ecx, [ebp - 0x70]
call fcn.0040970b
mov eax, esi
jmp 0x40c9f7
lea eax, [ebp - 0x80]
push eax
push str.LocalService
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x80], 0x104
call fcn.00409767
mov byte [0x49c4ca], 0
test eax, eax
jne 0x40caa9
mov byte [0x49c4ca], 1
push str.IDS_ModuleK7RTScan
push 0xa28
call fcn.0040f8cf
pop ecx
pop ecx
cmp eax, 1
je 0x40cac3
xor esi, esi
jmp 0x40ca64
mov ecx, ebx
call fcn.0040c80e
mov esi, dword [0x49c5dc]
jmp 0x40ca64