Function at 0x40d810
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
mov eax, dword [0x4b6e40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push edi
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 0x14]
xor edi, edi
push ecx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xd4], ecx
push edx
test eax, eax
jne 0x40d850
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call fcn.0040d6a0
add esp, 0xc
test eax, eax
je 0x40dad0
mov eax, dword [ebp - 0xd4]
push ebx
xor ebx, ebx
cmp dword [eax], ebx
jle 0x40dacf
push esi
mov esi, eax
jmp 0x40d880
mov eax, dword [ebp - 0xd0]
push 0x4974c0
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
jne 0x40d8be
test edi, edi
je 0x40d8b4
cmp edi, 3
je 0x40d8b4
cmp edi, 1
jne 0x40dac5
lea edi, [eax + 2]
jmp 0x40dac5
mov edi, 1
jmp 0x40dac5
mov eax, dword [ebp - 0xd0]
push str._BroadcastSettingChange
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
je 0x40db00
mov eax, dword [ebp - 0xd0]
push str._runkey
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
mov eax, dword [ebp - 0xd0]
jne 0x40d911
mov eax, dword [eax + ebx*4]
mov dword [0x4bb1a4], 1
mov byte [eax], 0
jmp 0x40dac5
push str._nodebug
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
jne 0x40d92d
lea edi, [eax + 3]
jmp 0x40dac5
mov eax, dword [ebp - 0xd0]
push str._delete_service
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
jne 0x40d958
mov eax, dword [ebp - 0xd8]
mov dword [eax], 2
jmp 0x40dac5
mov eax, dword [ebp - 0xd0]
push str._force_update
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
je 0x40dae1
mov eax, dword [ebp - 0xd0]
push str._stop
push dword [eax + ebx*4]
call fcn.00438210
add esp, 8
test eax, eax
jne 0x40dac5
mov eax, dword [ebp - 0xd8]
mov dword [eax], 3
test edi, edi
jle 0x40d9b1
push str.stopping_n
call fcn.0041bca0
add esp, 4
inc ebx
cmp ebx, dword [esi]
jge 0x40dac5
push 0x64
lea eax, [ebp - 0xcc]
push eax
push str.WINRSH_SERVER
push 0
call fcn.004017d5
add esp, 0x10
test eax, eax
jne 0x40dac5
lea eax, [ebp - 0xcc]
push eax
call fcn.004014b5
mov esi, eax
push 0x20
push esi
call fcn.00401082
push 9
push esi
call fcn.00401082
mov eax, dword [ebp - 0xd0]
push 0x64
push dword [eax + ebx*4]
push 0x4bb1a8
call fcn.004014ec
push 0x64
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.004018f7
add esp, 0x2c
test eax, eax
jns 0x40da33
push 0x64
lea eax, [ebp - 0x68]
push str.STOP
push eax
call fcn.004014ec
add esp, 0xc
push 0x4bb1a8
call fcn.00401334
lea eax, [ebp - 0x68]
push eax
call fcn.00401334
push 0x64
push 0x4bb1a8
call fcn.00401037
add esp, 0x10
test eax, eax
je 0x40daa7
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.00401037
add esp, 8
test eax, eax
je 0x40daa7
mov ecx, 0x4bb1a8
lea eax, [ebp - 0x68]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40da93
test dl, dl
je 0x40da8f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40da93
add eax, 2
add ecx, 2
test dl, dl
jne 0x40da73
xor eax, eax
jmp 0x40da98
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40daa7
test edi, edi
jle 0x40dabf
push str.Valid_password_n
jmp 0x40dab7
mov byte [0x4bb1a8], 0
test edi, edi
jle 0x40dabf
push str.no_valid_passord_n
call fcn.0041bca0
add esp, 4
mov esi, dword [ebp - 0xd4]
inc ebx
cmp ebx, dword [esi]
jl 0x40d880
pop esi
pop ebx
mov ecx, dword [ebp - 4]
mov eax, edi
xor ecx, ebp
pop edi
call fcn.0041c3d0
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
mov dword [0x4bb1a0], 0
call fcn.004013fc
add esp, 0xc
push 0
call fcn.00420610
push 0
push 0x64
push 1
push str.Environment
push 0
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push 0
call fcn.00420610
int3