Function at 0x499f60
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
lea esi, [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x5886c0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
vxorps xmm0, xmm0, xmm0
vmovups xmmword [ebp - 0x4c], xmm0
vmovups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x48], 1
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x10], 0
je 0x499fda
call fcn.0044c120
mov dword [ebp - 0x4c], 0
mov ecx, dword [0x5c4cc8]
mov edi, dword [0x5c4ccc]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
mov edx, 4
jmp 0x49a02b
mov ecx, dword [esi]
cmp dword [ecx + 0x10], 0
je 0x499fe9
call fcn.0044c120
jmp 0x499feb
xor eax, eax
mov ecx, dword [0x5c4cc8]
mov edi, dword [0x5c4ccc]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp edi, 0xa
setl dh
test dh, dl
jne 0x49a022
xor dh, dl
jne 0x49a022
nop word cs:[eax + eax]
jmp 0x49a020
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x4c], edx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x50], edx
test ecx, ecx
sete cl
cmp edi, 0xa
setl dl
test dl, cl
jne 0x49a052
xor dl, cl
jne 0x49a052
nop word cs:[eax + eax]
jmp 0x49a050
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x68]
push eax
push ecx
call fcn.00454580
add esp, 8
mov eax, dword [0x5c4cc8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5c4ccc], 0xa
setl cl
test cl, al
mov esi, dword [ebp - 0x20]
jne 0x49a097
xor cl, al
je 0x49a0d7
lea ecx, [ebp - 0x68]
call fcn.0044c120
lea ebx, [ebp - 0x30]
lea ecx, [ebp - 0x50]
push ebx
push ecx
push eax
push esi
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov ecx, dword [0x5c4cc8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x5c4ccc], 0xa
setl dl
test dl, cl
jne 0x49a0f1
xor dl, cl
jne 0x49a0f1
lea ecx, [ebp - 0x68]
call fcn.0044c120
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x50]
push ecx
push edx
push eax
push esi
call dword [sym.imp.WS2_32.dll_getaddrinfo]
jmp 0x49a097
test eax, eax
je 0x49a181
mov edi, 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.0040ae90
lea eax, [ebp + 0x20]
mov dword [ebp - 0x50], eax
mov eax, 0x49b4c2cb
mov esi, 0x238595fb
nop word cs:[eax + eax]
cmp eax, 0x238595fb
je 0x49a16e
cmp eax, 0x6cfbc2aa
je 0x49a146
cmp eax, 0x49b4c2cb
jne 0x49a120
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x24], 0
mov eax, 0x6cfbc2aa
cmove eax, esi
jmp 0x49a120
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp dword [eax + 0x24], eax
setne dl
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x24], 0
mov eax, 0x238595fb
jmp 0x49a120
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [sym.imp.WS2_32.dll_WSASocketW]
nop word [eax + eax]
mov ebx, dword [ebx]
test ebx, ebx
je 0x49a4b2
nop word [eax + eax]
push 0x81
push 0
push 0
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
mov esi, edi
call edi
mov ecx, dword [0x5c4cc8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp dword [0x5c4ccc], 0xa
mov edi, eax
setge al
setl ah
xor ah, dl
jne 0x49a200
or al, cl
je 0x49a200
push 0x81
push 0
push 0
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
mov edi, esi
call esi
jmp 0x49a1a0
cmp edi, 0xffffffff
mov dword [ebp - 0x28], ebx
lea esi, [ebp + 8]
jne 0x49a2a4
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
mov ecx, dword [0x5c4cc8]
mov eax, dword [0x5c4ccc]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [ebp - 0x20]
cmp eax, 0xa
setl bh
setge bl
cmp bh, byte [ebp - 0x20]
jne 0x49a299
or bl, dl
test bl, 1
mov ebx, dword [ebp - 0x28]
je 0x49a29c
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
mov esi, dword [sym.imp.WS2_32.dll_socket]
call esi
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call esi
mov edi, eax
mov ecx, dword [0x5c4cc8]
mov eax, dword [0x5c4ccc]
lea edx, [ecx + 1]
imul edx, ecx
mov esi, edx
xor esi, 0xfffffffe
test esi, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x49a29c
xor dh, dl
je 0x49a250
jmp 0x49a29c
mov ebx, dword [ebp - 0x28]
cmp edi, 0xffffffff
lea esi, [ebp + 8]
je 0x49a31e
cmp byte [esi + 0x14], 0
je 0x49a2c2
mov dword [ebp - 0x2c], 1
push 4
lea eax, [ebp - 0x2c]
push eax
push 1
push 6
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp dword [esi + 0x3c], 0
mov dword [ebp - 0x20], edi
je 0x49a2e1
mov dword [ebp - 0x10], 1
lea ecx, [ebp + 0x20]
push edi
call fcn.0049a580
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
cmp dword [ebx + 4], 0x17
jne 0x49a3f0
mov eax, dword [0x5c4cc8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5c4ccc], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x49a390
or cl, al
jne 0x49a3d1
jmp 0x49a390
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne byte [ebp - 0x20]
sete bl
cmp eax, 0xa
setge byte [ebp - 0x21]
setl bh
xor bh, bl
jne 0x49a34d
movzx ebx, byte [ebp - 0x21]
or bl, byte [ebp - 0x20]
jne 0x49a4b0
and ecx, edx
mov ebx, dword [ebp - 0x28]
nop word cs:[eax + eax]
add ebx, 0x1c
test ecx, ecx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
mov edi, dword [sym.imp.WS2_32.dll_WSASocketW]
jne 0x49a190
or al, cl
je 0x49a190
jmp 0x49a490
mov dword [ebp - 0x2c], 0
push 4
lea eax, [ebp - 0x2c]
push eax
push 0x1b
push 0x29
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, dword [0x5c4cc8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5c4ccc], 0xa
setge cl
setl ch
xor ch, dl
jne 0x49a3f0
or cl, al
test cl, 1
je 0x49a3f0
mov dword [ebp - 0x2c], 0
push 4
lea eax, [ebp - 0x2c]
push eax
push 0x1b
push 0x29
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
jmp 0x49a390
mov dword [ebp - 0x10], 1
lea ecx, [ebp + 0x48]
push ebx
push edi
call fcn.0049a6e0
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [0x5c4cc8]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x5c4ccc], 0xa
setl dl
test dl, cl
jne 0x49a430
xor dl, cl
je 0x49a4a0
test al, al
jne 0x49a4c0
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
nop
mov ecx, dword [0x5c4cc8]
mov eax, dword [0x5c4ccc]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x49a360
xor dh, dl
jne 0x49a360
mov esi, dword [ebp - 0x20]
push esi
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
call edi
push esi
call edi
jmp 0x49a440
jmp 0x49a490
jmp 0x49a4a0
jmp 0x49a4b0
push dword [ebp - 0x30]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
jmp 0x49a0f9
push dword [ebp - 0x30]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov eax, dword [0x5c4cc8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5c4ccc], 0xa
setl cl
test cl, al
jne 0x49a0fe
xor cl, al
jne 0x49a0fe
mov esi, dword [sym.imp.WS2_32.dll_freeaddrinfo]
nop
push dword [ebp - 0x30]
call esi
push dword [ebp - 0x30]
call esi
mov eax, dword [0x5c4cc8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5c4ccc], 0xa
setl cl
test cl, al
jne 0x49a0fe
xor cl, al
je 0x49a500
jmp 0x49a0fe