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

Disassembly:
push ebp
lea ebp, [esp - 0x344]
sub esp, 0x3c4
mov eax, dword [0x46a470]
xor eax, ebp
mov dword [ebp + 0x340], eax
mov eax, dword [ebp + 0x34c]
push ebx
push esi
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x350]
xor ebx, ebx
mov esi, 0x94
push esi
mov dword [ebp - 0x80], eax
mov dword [eax], ebx
lea eax, [ebp + 0xa4]
push ebx
push eax
call fcn.00429d40
add esp, 0xc
lea eax, [ebp + 0xa4]
push eax
mov dword [ebp + 0xa4], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x402d63
xor eax, eax
mov ecx, dword [ebp + 0x340]
pop esi
xor ecx, ebp
pop ebx
call fcn.00429649
add ebp, 0x344
leave
ret
cmp dword [ebp + 0xb4], ebx
je 0x402d4a
push 0x208
lea eax, [ebp + 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp dword [ebp + 0xb4], 1
lea eax, [ebp + eax + 0x138]
jne 0x402d94
push str.hosts
jmp 0x402d99
push str._system32driversetchosts
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x138]
push 0x45d5f4
push eax
call fcn.0042ac8a
pop ecx
pop ecx
mov dword [ebp - 0x74], eax
cmp eax, ebx
je 0x402d4a
mov esi, 0x400
push edi
push esi
mov dword [ebp - 0x70], esi
call fcn.0042aafc
mov edi, eax
pop ecx
mov dword [ebp - 0x78], edi
cmp edi, ebx
jne 0x402de6
xor esi, esi
push dword [ebp - 0x74]
call fcn.0042a9b7
pop ecx
mov eax, esi
pop edi
jmp 0x402d4c
push esi
push ebx
push edi
call fcn.00429d40
push dword [ebp - 0x74]
push esi
push edi
call fcn.0042a7f8
add esp, 0x18
jmp 0x402f65
mov eax, dword [ebp - 0x70]
lea eax, [edi + eax - 2]
mov al, byte [eax]
xor ebx, ebx
test al, al
je 0x402e64
jmp 0x402e14
mov edi, dword [ebp - 0x78]
cmp al, 0xa
je 0x402e64
add dword [ebp - 0x70], esi
push dword [ebp - 0x70]
push edi
call fcn.0042a5dd
pop ecx
pop ecx
test eax, eax
je 0x402e64
mov ecx, dword [ebp - 0x70]
inc ebx
mov dword [ebp - 0x78], eax
sub eax, ebx
lea edi, [eax + ecx - 0x400]
push esi
lea eax, [edi + ebx]
push 0
push eax
call fcn.00429d40
push dword [ebp - 0x74]
push esi
push edi
call fcn.0042a7f8
add esp, 0x18
test eax, eax
je 0x402e61
mov al, byte [edi + 0x3fe]
test al, al
jne 0x402e11
mov edi, dword [ebp - 0x78]
cmp byte [edi], 0x23
je 0x402f56
push 0x45d5f0
push edi
call fcn.00429ae0
pop ecx
pop ecx
test eax, eax
je 0x402e84
mov byte [eax], 0
jmp 0x402e84
inc edi
movsx eax, byte [edi]
push eax
call fcn.0042a27a
pop ecx
test eax, eax
jne 0x402e83
push 0x45d5ec
push edi
mov ebx, edi
call fcn.00429ae0
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x402eab
mov byte [edi], 0
inc edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
cmp eax, 0xe
ja 0x402f53
push ebx
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
je 0x402f53
test eax, eax
jne 0x402ee4
push 0xf
push str.255.255.255.255
push ebx
call fcn.00429e48
add esp, 0xc
test eax, eax
jne 0x402f53
push ebx
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x402f4f
mov al, byte [edi]
test al, al
je 0x402f53
movsx eax, al
jmp 0x402f00
inc edi
movsx eax, byte [edi]
push eax
call fcn.0042a27a
pop ecx
test eax, eax
jne 0x402efc
push 0x45d5ec
push edi
mov ebx, edi
call fcn.00429ae0
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x402f24
mov byte [edi], 0
inc edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
cmp eax, 0xfe
ja 0x402f4f
push ebx
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 0x7c]
lea eax, [ebp - 0x6c]
push eax
call fcn.00402cc1
mov eax, dword [ebp - 0x80]
inc dword [eax]
test edi, edi
jne 0x402ef1
mov edi, dword [ebp - 0x78]
push dword [ebp - 0x74]
push dword [ebp - 0x70]
push edi
call fcn.0042a7f8
add esp, 0xc
test eax, eax
jne 0x402e00
push edi
call fcn.00429dba
xor esi, esi
pop ecx
inc esi
jmp 0x402dd5