Function at 0x409bee
Capabilities:
Accept command line arguments

Disassembly:
push 0x144
mov eax, 0x4123a2
call fcn.004019d4
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x150]
mov dword [ebp - 0x140], ecx
xor ebx, ebx
push eax
mov ecx, esi
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x138], ebx
call fcn.0040839b
mov eax, dword [ebp - 0x150]
mov dword [ebp - 4], ebx
cmp eax, dword [ebp - 0x14c]
jne 0x409c4f
push 2
pop ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x150]
call fcn.00402d46
mov eax, ebx
call fcn.00401d83
ret 4
push 0x4170d4
lea ecx, [ebp - 0x48]
call fcn.004021b7
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00403093
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x48]
mov edi, eax
mov byte [ebp - 4], bl
call fcn.0040236a
cmp edi, ebx
je 0x409c9d
call fcn.00405cd7
mov ecx, eax
call fcn.00405ce9
mov ecx, eax
call fcn.0040f911
test ax, ax
je 0x409c9d
mov ebx, eax
jmp 0x409c36
mov edi, 0x416eac
push edi
lea ecx, [ebp - 0x2c]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x64]
push eax
mov byte [ebp - 4], 2
call fcn.0040759f
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.0040236a
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x64]
push eax
call fcn.00408787
test eax, eax
jne 0x409e1e
push str.ServiceType
lea ecx, [ebp - 0x80]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 5
call fcn.0040759f
push ebx
push esi
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 7
call fcn.0040236a
cmp dword [ebp - 0x34], 8
mov eax, dword [ebp - 0x48]
jae 0x409d25
lea eax, [ebp - 0x48]
push str.Daemon
push eax
call dword [sym.imp.MSVCR100.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x409d76
call fcn.00405cd7
mov ecx, eax
call fcn.00405ce9
mov ecx, eax
call fcn.0040f82e
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x64]
push eax
call fcn.00409054
mov edi, eax
lea ecx, [ebp - 0x48]
push ebx
push esi
call fcn.0040236a
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.0040236a
mov ebx, edi
jmp 0x409c36
lea ecx, [ebp - 0x134]
call fcn.00401f0f
mov byte [ebp - 4], 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004021b7
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 9
call fcn.004026ca
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040236a
push edi
lea ecx, [ebp - 0x2c]
call fcn.004021b7
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0xa
call fcn.00408329
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040236a
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x134]
call fcn.004085ee
lea ecx, [ebp - 0x64]
push ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.004091fe
pop ecx
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov edi, eax
call fcn.0040236a
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 7
call fcn.004046b0
jmp 0x409d5b
mov edi, str.Temporary
push edi
lea ecx, [ebp - 0x48]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x138], esi
call fcn.00403093
test eax, eax
je 0x409e8c
push edi
lea ecx, [ebp - 0x80]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x9c]
push eax
mov dword [ebp - 4], 0xd
mov dword [ebp - 0x138], 3
call fcn.0040759f
mov dword [ebp - 0x138], 7
cmp dword [eax + 0x10], ebx
jne 0x409e8c
mov edi, esi
jmp 0x409e8e
xor edi, edi
test byte [ebp - 0x138], 4
je 0x409eab
and dword [ebp - 0x138], 0xfffffffb
push ebx
push esi
lea ecx, [ebp - 0x9c]
call fcn.0040236a
test byte [ebp - 0x138], 2
je 0x409ec5
and dword [ebp - 0x138], 0xfffffffd
push ebx
push esi
lea ecx, [ebp - 0x80]
call fcn.0040236a
test byte [ebp - 0x138], 1
mov dword [ebp - 4], 4
je 0x409edf
push ebx
push esi
lea ecx, [ebp - 0x48]
call fcn.0040236a
cmp edi, ebx
je 0x409f03
mov ecx, dword [ebp - 0x140]
call fcn.00408e5c
test eax, eax
je 0x409f03
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.0040236a
push 0x11
jmp 0x409c35
push str.Entry
lea ecx, [ebp - 0x80]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0xb8]
push eax
mov byte [ebp - 4], 0xe
call fcn.0040759f
push ebx
push esi
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x10
call fcn.0040236a
push str.EncodePath
lea ecx, [ebp - 0x2c]
call fcn.004021b7
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x11
call fcn.00403093
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov edi, eax
mov byte [ebp - 4], 0x10
call fcn.0040236a
push str.OnlyVerifyCertSigner
lea ecx, [ebp - 0x2c]
call fcn.004021b7
cmp edi, ebx
je 0x409fde
mov eax, dword [ebp - 0x150]
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0x12
jb 0x409f8b
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.00410614
pop ecx
pop ecx
mov edi, eax
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x13
call fcn.00403093
mov ecx, dword [ebp - 0x140]
dec eax
neg eax
sbb al, al
inc al
movzx eax, al
push eax
lea eax, [ebp - 0xb8]
push eax
push edi
call fcn.00409318
push ebx
push esi
lea ecx, [ebp - 0x9c]
mov edi, eax
call fcn.0040236a
jmp 0x40a017
mov ecx, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x150]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x14
call fcn.00403093
mov ecx, dword [ebp - 0x140]
dec eax
neg eax
sbb al, al
inc al
movzx eax, al
push eax
lea eax, [ebp - 0xb8]
push eax
push edi
call fcn.00409318
mov edi, eax
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x10
call fcn.0040236a
test di, di
je 0x40a035
lea ecx, [ebp - 0xb8]
jmp 0x409d5e
mov edi, dword [ebp - 0x150]
jmp 0x40a09e
mov eax, dword [ebp - 0x140]
cmp dword [eax + 0x2c], ebx
je 0x40a068
push 0x416e24
call dword [sym.imp.MSVCR100.dll_wcslen]
pop ecx
mov ecx, dword [ebp - 0x140]
push eax
push 0x416e24
add ecx, 0x1c
call fcn.0040544b
lea eax, [ebp - 0x9c]
push edi
push eax
call fcn.0040fee9
pop ecx
pop ecx
mov ecx, dword [ebp - 0x140]
push 0xffffffffffffffff
push ebx
push eax
add ecx, 0x1c
mov byte [ebp - 4], 0x15
call fcn.004039b1
push ebx
push esi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x10
call fcn.0040236a
add edi, 0x1c
cmp edi, dword [ebp - 0x14c]
jne 0x40a03d
push dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x140]
call fcn.004096d7
push ebx
push esi
lea ecx, [ebp - 0xb8]
call fcn.0040236a
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.0040236a
jmp 0x409c36