Function at 0x451e10
Capabilities:
Check os version
Get common file path
Set socket configuration

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x480630]
xor eax, esp
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c8]
push edi
mov dword [esp + 0xc], eax
mov dword [eax], 0
xor eax, eax
mov ecx, 0x25
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x451e6d
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x451e85
xor eax, eax
pop edi
mov ecx, dword [esp + 0x3bc]
xor ecx, esp
call fcn.004570de
add esp, 0x3c0
ret
push 0x208
lea edx, [esp + 0x1bc]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp dword [esp + 0x24], 1
jne 0x451eae
push str.hosts
lea eax, [esp + eax + 0x1bc]
push eax
jmp 0x451ebb
push str._system32driversetchosts
lea ecx, [esp + eax + 0x1bc]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
lea edx, [esp + 0x1bc]
push 0x47590c
push edx
call fcn.00459111
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0xc], ebx
jne 0x451ef8
pop ebx
pop edi
mov ecx, dword [esp + 0x3bc]
xor ecx, esp
call fcn.004570de
add esp, 0x3c0
ret
push ebp
push esi
mov esi, 0x400
push esi
mov dword [esp + 0x14], esi
call fcn.00457b3b
add esp, 4
mov ebp, eax
test ebp, ebp
push ebx
jne 0x451f22
call fcn.00459064
add esp, 4
xor eax, eax
jmp 0x452117
xor eax, eax
push 0x400
mov ecx, 0x100
mov edi, ebp
push ebp
rep stosd dword es:[edi], eax
call fcn.00459700
add esp, 0xc
test eax, eax
je 0x452103
mov al, byte [esi + ebp - 2]
xor ebx, ebx
test al, al
je 0x451fac
jmp 0x451f53
mov esi, dword [esp + 0x10]
cmp al, 0xa
je 0x451fac
add esi, 0x400
push esi
push ebp
mov dword [esp + 0x18], esi
call fcn.00458304
add esp, 8
test eax, eax
je 0x451fac
mov ebp, eax
inc ebx
sub eax, ebx
lea esi, [eax + esi - 0x400]
xor eax, eax
mov ecx, 0x100
lea edi, [esi + ebx]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
push eax
push 0x400
push esi
call fcn.00459700
add esp, 0xc
test eax, eax
je 0x451fa8
mov al, byte [esi + 0x3fe]
test al, al
jne 0x451f4f
mov esi, dword [esp + 0x10]
cmp byte [ebp], 0x23
je 0x4520e8
push 0x475908
push ebp
call fcn.004596c0
add esp, 8
test eax, eax
je 0x451fcb
mov byte [eax], 0
movsx ecx, byte [ebp]
push ecx
mov edi, ebp
call fcn.00458ee9
add esp, 4
test eax, eax
je 0x451ff2
mov edi, edi
movsx edx, byte [edi + 1]
inc edi
push edx
call fcn.00458ee9
add esp, 4
test eax, eax
jne 0x451fe0
push 0x471390
push edi
call fcn.004596c0
mov esi, eax
add esp, 8
test esi, esi
je 0x45200a
mov byte [esi], 0
inc esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
call ebx
test eax, eax
jle 0x4520e4
cmp eax, 0xf
jg 0x4520e4
push edi
call sub.WSOCK32.dll_inet_addr
cmp eax, 0xffffffff
je 0x4520e4
test eax, eax
jne 0x45204f
push 0xf
push str.255.255.255.255
push edi
call fcn.00459680
add esp, 0xc
test eax, eax
jne 0x4520e4
push edi
lea eax, [esp + 0xb8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
test esi, esi
je 0x4520e4
mov al, byte [esi]
test al, al
je 0x4520e4
movsx ecx, al
push ecx
call fcn.00458ee9
add esp, 4
test eax, eax
je 0x452092
lea esp, [esp]
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.00458ee9
add esp, 4
test eax, eax
jne 0x452080
push 0x471390
push esi
mov edi, esi
call fcn.004596c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4520ac
mov byte [esi], 0
inc esi
push edi
call ebx
test eax, eax
jle 0x4520e0
cmp eax, 0xff
jg 0x4520e0
push edi
lea eax, [esp + 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00451dd0
mov eax, dword [esp + 0x18]
inc dword [eax]
test esi, esi
jne 0x452066
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push edx
push esi
push ebp
call fcn.00459700
add esp, 0xc
test eax, eax
jne 0x451f43
mov ebx, dword [esp + 0x14]
push ebp
call fcn.004572ea
push ebx
call fcn.00459064
add esp, 8
mov eax, 1
mov ecx, dword [esp + 0x3cc]
pop esi
pop ebp
pop ebx
pop edi
xor ecx, esp
call fcn.004570de
add esp, 0x3c0
ret