Function at 0x409de0
Capabilities:
Delete registry key
Set current directory
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x40ddb8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x670
push ebx
push ebp
push esi
push edi
push 0x412324
push str.SetupPath
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
lea eax, [esp + 0x14c]
push eax
push str.lnk1
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
lea ecx, [esp + 0x58]
push ecx
push str.lnk2
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
lea edx, [esp + 0x464]
push edx
push str.lnk3
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
lea eax, [esp + 0x270]
push eax
push str.lnk4
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
lea ecx, [esp + 0x37c]
push ecx
push str.lnk5
push str.SOFTWAREShilingtongGnet_pppoeSetupInfo_
call fcn.004036a0
add esp, 0x48
lea edx, [esp + 0x1c]
push edx
call fcn.00409260
add esp, 4
mov eax, dword [esp + 0x1c]
xor esi, esi
push eax
mov dword [esp + 0x68c], esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x412324
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_2
push 0x412324
lea ecx, [esp + 0x1c]
mov byte [esp + 0x68c], 1
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x20]
mov byte [esp + 0x688], 2
call sub.MFC42.DLL_CStringArray::CStringArray
lea ecx, [esp + 0x20]
lea edx, [esp + 0x18]
push ecx
push edx
mov byte [esp + 0x690], 3
call fcn.00409340
add esp, 8
lea ecx, [esp + 0x38]
call fcn.0040a5ba
lea ecx, [esp + 0x14]
mov byte [esp + 0x688], 4
call fcn.0040a5ba
push 0x412324
lea ecx, [esp + 0x18]
mov byte [esp + 0x68c], 5
call sub.MFC42.DLL_CString::operator
push 0x4115b4
lea ecx, [esp + 0x18]
call fcn.0040a7ca
push str.VnetClient
lea ecx, [esp + 0x18]
call fcn.0040a7ca
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x540]
push eax
push ecx
call ebx
cmp eax, 0xffffffff
je 0x409f8a
push eax
call ebp
mov edx, dword [esp + 0x14]
push edx
call fcn.004096a0
add esp, 4
cmp eax, 1
je 0x409f8a
push 0x1f4
call edi
inc esi
cmp esi, 0x78
jl 0x409f54
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
jle 0x409fc2
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [esp + 0x24]
push 0x80
mov eax, dword [eax + esi*4]
push eax
call edi
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4]
push eax
call fcn.004096a0
mov eax, dword [esp + 0x2c]
add esp, 4
inc esi
cmp esi, eax
jl 0x409f9a
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CStringArray::SetSize
lea edx, [esp + 0x20]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.004094d0
mov eax, dword [esp + 0x30]
add esp, 8
xor esi, esi
test eax, eax
jle 0x40a004
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4]
push eax
call fcn.004096f0
mov eax, dword [esp + 0x2c]
add esp, 4
inc esi
cmp esi, eax
jl 0x409feb
lea edx, [esp + 0x140]
push edx
call fcn.004096a0
lea eax, [esp + 0x44]
push eax
call fcn.004096a0
lea ecx, [esp + 0x448]
push ecx
call fcn.004096a0
lea edx, [esp + 0x24c]
push edx
call fcn.004096a0
lea eax, [esp + 0x350]
push eax
call fcn.004096a0
push 0
call fcn.00409720
push 2
call fcn.00409720
push 7
call fcn.00409720
push 0xb
call fcn.00409720
push 0x10
call fcn.00409720
push 0x17
call fcn.00409720
push 0x18
call fcn.00409720
push 0x16
call fcn.00409720
push 0x19
call fcn.00409720
push 0x1a
call fcn.00409720
push 0x412324
call fcn.004096f0
add esp, 0x40
lea ecx, [esp + 0x10]
call fcn.0040a5ba
lea ecx, [esp + 0x40]
mov bl, 6
push ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x68c], bl
call sub.MFC42.DLL_CString::operator
push 0x5c
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::ReverseFind
push eax
lea edx, [esp + 0x40]
push 0
push edx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x68c], 7
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x688], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push eax
call fcn.004096f0
add esp, 4
push str.ADSL_GNetDial
push 0
call sub.RASAPI32.dll_RasDeleteEntryA
push str.Vnet_PPPoE
push 0
call sub.RASAPI32.dll_RasDeleteEntryA
push str.GNetPPPoE
push str.SYSTEMCurrentControlSetServices_
call fcn.00409650
mov esi, dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
add esp, 8
push str.SOFTWAREShilingtongGnet_pppoe_
push 0x80000002
call esi
push str.SOFTWAREShilingtongGnet_pppoe2_systemset_
push 0x80000002
call esi
push str.SoftWareMicrosoftWindowsCurrentVersionUninstallVnetClient
push 0x80000002
call esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x688], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x688], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x688], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x688], 2
call fcn.0040a9fe
lea ecx, [esp + 0x18]
mov byte [esp + 0x688], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x688], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov dword [esp + 0x688], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x680]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x67c
ret