Function at 0x4246b1
Capabilities:
Read .ini file
Reference google public dns server

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4644af
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x481028]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov edi, dword [ebp + 8]
cmp edi, 7
jne 0x4246f4
and dword [esi + 8], 0
jmp 0x424caf
cmp edi, 6
je 0x42471b
cmp edi, 5
je 0x42471b
cmp edi, 0xa
je 0x42471b
cmp edi, 8
je 0x42471b
cmp edi, 9
je 0x42471b
cmp edi, 0xd
je 0x42471b
cmp edi, 0xe
jne 0x424c59
mov eax, dword [0x4838cc]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x1c], edi
mov ebx, 0x4833bc
je 0x424c03
cmp dword [eax + 8], edi
je 0x424c03
mov eax, dword [eax + 8]
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push dword [ebp + 0xc]
mov ecx, eax
call dword [edx + 0x20]
test eax, eax
jl 0x424c03
push dword [esp + 0x1c]
lea eax, [esp + 0x34]
push eax
call fcn.00405099
mov dword [esp + 0x48], edi
push dword [esp + 0x1c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea esi, [esp + 0x34]
call fcn.00424658
mov byte [esp + 0x48], 1
push 0x5c
push dword [esp + 0x34]
call dword [sym.imp.MSVCR80.dll_wcsrchr]
pop ecx
cmp eax, edi
mov edi, dword [esp + 0x3c]
pop ecx
je 0x424bde
inc eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov esi, 0x46b504
push esi
mov byte [esp + 0x4c], 2
call dword [sym.imp.MSVCR80.dll_wcslen]
pop ecx
push eax
push esi
push dword [esp + 0x18]
call dword [sym.imp.MSVCR80.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4247e8
push esi
call dword [sym.imp.MSVCR80.dll_wcslen]
pop ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*2]
push eax
jmp 0x4247ec
push dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
call fcn.00405232
mov eax, dword [ebp + 8]
cmp eax, 6
je 0x424a4e
cmp eax, 5
je 0x424a4e
cmp eax, 0xd
je 0x424a4e
cmp eax, 0xe
je 0x424a4e
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x48], 4
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
push str.vulfix.ini
lea esi, [esp + 0x28]
mov byte [esp + 0x4c], 5
call fcn.00424222
pop ecx
push dword [ebp + 0xc]
lea eax, [esp + 0x2c]
push str.KB__d
call fcn.00404ecc
pop ecx
pop ecx
push dword [esp + 0x24]
push 0
push dword [esp + 0x30]
push str.hotfix_error
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
mov eax, dword [0x4833bc]
mov ecx, ebx
inc esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
push dword [ebp + 0xc]
lea eax, [esp + 0x14]
push 0x46b660
mov byte [esp + 0x50], 6
call fcn.00404ecc
test edi, edi
pop ecx
pop ecx
je 0x4248cc
mov eax, dword [edi]
push str.ksafe_leak_install
mov ecx, edi
call dword [eax + 0xc]
push dword [esp + 0x10]
mov eax, dword [edi]
push 0x46b534
mov ecx, edi
call dword [eax + 0x18]
test edi, edi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x128]
je 0x4248fb
mov eax, dword [edi]
push ecx
push 0x46b53c
mov ecx, edi
call dword [eax + 0x14]
push dword [esp + 0x14]
mov eax, dword [edi]
push str.name
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [ebp + 8], 9
jne 0x42497b
xor ecx, ecx
cmp dword [eax + 8], ecx
setne cl
test edi, edi
mov eax, ecx
je 0x424956
mov edx, dword [edi]
push eax
push str.smart
mov ecx, edi
call dword [edx + 0x14]
mov eax, dword [edi]
push 0
push str.result
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi]
push 0
push str.err_code
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi]
push 0x467710
push str.install_code
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [edi]
push esi
push str.number
mov ecx, edi
call dword [eax + 0x14]
push dword [esp + 0x10]
mov esi, str.installed
push esi
xor ecx, ecx
call fcn.00424141
inc eax
push eax
push dword [esp + 0x1c]
push esi
call fcn.0042419b
add esp, 0x14
jmp 0x424a24
cmp dword [ebp + 8], 8
je 0x42498e
cmp dword [eax + 8], 0
je 0x42498e
and dword [esp + 0x2c], 0
jmp 0x424996
mov dword [esp + 0x2c], 1
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
push dword [ebp + 0x14]
lea eax, [esp + 0x24]
push 0x4675e8
mov byte [esp + 0x50], 7
call fcn.00404ecc
test edi, edi
pop ecx
pop ecx
je 0x424a13
mov eax, dword [edi]
xor ecx, ecx
cmp dword [esp + 0x2c], ecx
sete cl
push ecx
push str.smart
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi]
push 1
push str.result
mov ecx, edi
call dword [eax + 0x14]
push dword [ebp + 0x10]
mov eax, dword [edi]
push str.err_code
mov ecx, edi
call dword [eax + 0x14]
push dword [esp + 0x20]
mov eax, dword [edi]
push str.install_code
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [edi]
push esi
push str.number
mov ecx, edi
call dword [eax + 0x14]
mov byte [esp + 0x48], 6
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.00404929
test edi, edi
je 0x424a31
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x20]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.00404929
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.00404929
jmp 0x424bc6
mov ecx, dword [ebp + 0x14]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x24], eax
mov eax, ecx
and eax, 0x400
mov dword [esp + 0x2c], eax
mov esi, ecx
mov eax, ecx
and eax, 0x1000
and esi, 0x800
test edi, edi
mov dword [esp + 0x20], eax
je 0x424a8a
mov eax, dword [edi]
push str.ksafe_leak_down
mov ecx, edi
call dword [eax + 0xc]
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
push dword [ebp + 0xc]
lea eax, [esp + 0x2c]
push 0x46b660
mov byte [esp + 0x50], 3
call fcn.00404ecc
test edi, edi
pop ecx
pop ecx
je 0x424ac7
push dword [esp + 0x28]
mov eax, dword [edi]
push 0x46b534
mov ecx, edi
call dword [eax + 0x18]
test edi, edi
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x128]
je 0x424b06
mov edx, dword [edi]
push eax
push 0x46b53c
mov ecx, edi
call dword [edx + 0x14]
push dword [esp + 0x14]
mov eax, dword [edi]
push str.name
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [edi]
xor ecx, ecx
test esi, esi
setne cl
push ecx
push 0x46b550
mov ecx, edi
call dword [eax + 0x14]
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x2c], ecx
je 0x424b11
inc eax
cmp dword [esp + 0x24], ecx
je 0x424b1a
push 2
pop eax
cmp dword [esp + 0x20], ecx
je 0x424b23
push 3
pop eax
cmp edi, ecx
je 0x424b34
mov edx, dword [edi]
push eax
push 0x46b558
mov ecx, edi
call dword [edx + 0x14]
mov eax, dword [ebp + 8]
cmp eax, 6
jne 0x424b78
cmp dword [ebp + 0x10], 0
jne 0x424bc6
mov ecx, str.8.8.8.8
call fcn.0042425c
mov esi, eax
cmp esi, 1
je 0x424b63
mov ecx, 0x46b568
call fcn.0042425c
mov esi, eax
test edi, edi
je 0x424bc6
mov eax, dword [edi]
push 2
push str.down_result
mov ecx, edi
call dword [eax + 0x14]
push esi
jmp 0x424bb1
cmp eax, 5
jne 0x424b8b
test byte [ebp + 0x14], 2
je 0x424bc6
test edi, edi
je 0x424bc6
push 0
jmp 0x424ba3
cmp eax, 0xd
jne 0x424b98
test edi, edi
je 0x424bc6
push 1
jmp 0x424ba3
cmp eax, 0xe
jne 0x424bc6
test edi, edi
je 0x424bc6
push 3
mov eax, dword [edi]
push str.down_result
mov ecx, edi
call dword [eax + 0x14]
push 1
mov eax, dword [edi]
push str.network
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x20]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.00404929
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.00404929
test edi, edi
mov byte [esp + 0x48], 0
je 0x424bee
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
or dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.00404929
mov esi, dword [esp + 0x18]
cmp dword [ebp + 8], 0xa
jne 0x424c4a
cmp dword [ebp + 0x10], 8
jne 0x424c8d
mov eax, dword [0x4833bc]
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x4c], 8
call fcn.00445cca
test eax, eax
pop ecx
jne 0x424c3e
mov dword [ebp + 0x10], 3
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.00404929
mov edi, dword [ebp + 8]
cmp edi, 8
jne 0x424c59
mov dword [esi + 8], 1
cmp edi, 9
jne 0x424c6b
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x609
jmp 0x424c7b
cmp edi, 0xf
jne 0x424c86
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x60f
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x424cc5
cmp edi, 0xa
jne 0x424caf
jmp 0x424c90
mov edi, dword [ebp + 8]
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push 0x702
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp + 0x10]
add edi, 0x600
push dword [ebp + 0xc]
push edi
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10