Function at 0x509d14
Capabilities:
Set socket configuration

Disassembly:
mov eax, 0x56f247
call fcn.0053c1d0
sub esp, 0x140
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x14], esi
cmp dword [0x5b21d4], esi
push edi
jne 0x509d46
mov ecx, dword [ebp + 8]
push 0x572aed
call fcn.00405500
jmp 0x50a017
xor ebx, ebx
inc ebx
push ebx
push 2
lea ecx, [ebp - 0xcc]
call fcn.00404a20
lea eax, [ebp - 0x10]
push eax
push esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], esi
call dword [0x5b21d4]
cmp eax, 0x6f
jne 0x509fc5
push dword [ebp - 0x10]
lea ecx, [ebp - 0x2c]
call fcn.00402b40
mov edi, dword [ebp - 0x2c]
cmp edi, esi
mov byte [ebp - 4], 2
jne 0x509f46
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push ebx
push 2
lea ecx, [ebp - 0x14c]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push 0x572aa0
push 0x572a4c
push eax
push 0x572a48
push 0x10000000
push 0x572a40
push dword [ebp - 0x18]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x1a]
mov edx, 0x572a38
push eax
push dword [ebp - 0x1c]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x1e]
mov byte [ebp - 4], 3
push ecx
push dword [ebp - 0x22]
push ecx
push dword [ebp - 0x24]
push edx
push 0x858
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x30], esp
push 0x57ea88
call fcn.00405500
lea eax, [ebp - 0x4c]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 4
jb 0x509e23
mov eax, dword [eax + 4]
jmp 0x509e26
add eax, 4
push eax
lea eax, [ebp - 0x14c]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov byte [ebp - 4], 3
push esi
push ebx
lea ecx, [ebp - 0x4c]
call fcn.00402c50
lea eax, [ebp - 0x14c]
push eax
call fcn.00407930
pop ecx
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 2
call fcn.004028d0
mov esi, 0x572840
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x100], esi
call fcn.0054dfcb
mov ecx, dword [ebp + 8]
push 0x572aed
call fcn.00405500
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x14], ebx
mov byte [ebp - 4], 0
call fcn.004028d0
mov dword [ebp - 0x80], esi
jmp 0x50a00f
lea eax, [ebp - 0x10]
push eax
push edi
call dword [0x5b21d4]
test eax, eax
jne 0x509fb7
lea eax, [ebp - 0xcc]
push str.DNS
push eax
call fcn.00403980
pop ecx
add edi, 0x10c
pop ecx
mov esi, edi
je 0x509fb7
lea eax, [esi + 4]
push eax
call sub.WSOCK32.dll_inet_addr
push eax
call fcn.00503ddc
add esp, 4
test al, al
je 0x509fb1
cmp esi, edi
je 0x509f9f
lea eax, [ebp - 0xcc]
push 0x572bf4
push eax
call fcn.00403980
pop ecx
pop ecx
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00403980
pop ecx
pop ecx
mov esi, dword [esi]
test esi, esi
jne 0x509f72
push dword [ebp - 0x2c]
mov byte [ebp - 4], bl
call fcn.0055047a
pop ecx
xor esi, esi
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xcc]
call fcn.00407320
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 5
jb 0x509fe3
mov eax, dword [eax + 4]
jmp 0x509fe6
add eax, 4
mov ecx, dword [ebp + 8]
push eax
call fcn.00405500
push esi
push ebx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.00402c50
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0
call fcn.004028d0
mov dword [ebp - 0x80], 0x572840
lea ecx, [ebp - 0x80]
call fcn.0054dfcb
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret