Function at 0x4a4570
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x55cca0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x598370]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
cmp dword [0x598374], 0xa
setl al
or al, cl
vxorps xmm0, xmm0, xmm0
nop word cs:[eax + eax]
push eax
sub esp, 0x1c
mov esi, esp
push eax
mov edx, esp
sub esp, 0x18
mov ecx, esp
push eax
mov edi, esp
push eax
mov ebx, esp
vmovups ymmword [esi], ymm0
mov dword [esi + 8], 1
test al, al
je 0x4a45d0
mov dword [ebp - 0x24], esi
lea esi, [ebp + 8]
mov eax, dword [esi + 4]
cmp dword [eax + 0x10], 0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
je 0x4a4673
mov edx, ecx
mov dword [ebp - 0x20], eax
mov ecx, 0xfdfef298
mov ebx, dword [ebp - 0x20]
mov eax, 0x46eeac8f
mov edi, dword [ebp - 0x24]
jmp 0x4a4630
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx]
mov ecx, 0x2681245c
nop dword [eax]
cmp ecx, 0x46eeac8f
je 0x4a4622
cmp ecx, 0x2681245c
je 0x4a4659
cmp ecx, 0xfdfef298
jne 0x4a4630
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x14], 0x10
mov ecx, 0x2681245c
cmovae ecx, eax
jmp 0x4a4630
mov dword [ebp - 0x30], ebx
mov dword [edi + 4], 0
mov dword [ebp - 0x10], 0
mov eax, 4
mov ecx, edx
jmp 0x4a46e7
mov eax, dword [esi]
cmp dword [eax + 0x10], 0
mov edi, dword [ebp - 0x24]
je 0x4a46d0
mov edx, ecx
mov dword [ebp - 0x20], eax
mov ecx, 0xfdfef298
mov ebx, dword [ebp - 0x20]
mov eax, 0x46eeac8f
jmp 0x4a46a0
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx]
mov ecx, 0x2681245c
nop dword [eax]
cmp ecx, 0x46eeac8f
je 0x4a4692
cmp ecx, 0x2681245c
je 0x4a46c9
cmp ecx, 0xfdfef298
jne 0x4a46a0
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x14], 0x10
mov ecx, 0x2681245c
cmovae ecx, eax
jmp 0x4a46a0
mov dword [ebp - 0x30], ebx
mov ecx, edx
jmp 0x4a46d7
mov dword [ebp - 0x30], 0
mov eax, dword [esi + 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x3c], ecx
lea edx, [esi + 0x18]
mov dword [ebp - 0x34], edx
mov dword [edi], eax
push dword [esi + 8]
push ecx
vzeroupper
call fcn.0045e200
add esp, 8
lea eax, [ebp + 8]
add eax, 0x40
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
mov edx, 0xfdfef298
mov eax, dword [ebp - 0x20]
mov ecx, 0x46eeac8f
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x30]
jmp 0x4a4740
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov edx, 0x2681245c
nop word cs:[eax + eax]
cmp edx, 0x46eeac8f
je 0x4a4728
cmp edx, 0x2681245c
je 0x4a4769
cmp edx, 0xfdfef298
jne 0x4a4740
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x14], 0x10
mov edx, 0x2681245c
cmovae edx, ecx
jmp 0x4a4740
push esi
push dword [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x4a49c3
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [0x598370]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x598374], 0xa
setl cl
test cl, al
jne 0x4a47b0
xor cl, al
je 0x4a48bd
mov ecx, dword [ebp - 0x3c]
call fcn.0040e680
mov eax, dword [0x5982d8]
mov ecx, dword [0x5982dc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [ebp - 0x28]
cmp ecx, 0xa
setl byte [ebp - 0x20]
mov eax, 0x184569cd
mov esi, 0xe1c97483
mov edi, 0x9f524f24
mov ebx, 0x565f2d3f
cmp eax, 0x184569cc
jg 0x4a4810
cmp eax, 0x9f524f24
je 0x4a4840
cmp eax, 0xe1c97483
jne 0x4a47f0
jmp 0x4a488c
cmp eax, 0x565f2d3f
je 0x4a484f
cmp eax, 0x184569cd
jne 0x4a47f0
movzx ecx, byte [ebp - 0x28]
movzx eax, byte [ebp - 0x20]
mov edx, ecx
xor dl, al
mov edx, 0x9f524f24
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x4a47f0
mov ecx, dword [ebp - 0x34]
call fcn.004a2cc0
mov eax, 0x565f2d3f
jmp 0x4a47f0
mov ecx, dword [ebp - 0x34]
call fcn.004a2cc0
mov eax, dword [0x5982d8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x9f524f24
cmove eax, esi
cmp dword [0x5982dc], 0xa
cmovge eax, edi
setl dl
xor dl, cl
cmovne eax, esi
jmp 0x4a47f0
mov ecx, dword [0x598370]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x598374], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x4a49af
or cl, al
test cl, 1
je 0x4a49af
mov ecx, dword [ebp - 0x3c]
call fcn.0040e680
mov eax, dword [0x5982d8]
mov ecx, dword [0x5982dc]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [ebp - 0x28]
cmp ecx, 0xa
setl byte [ebp - 0x20]
mov eax, 0x184569cd
mov esi, 0xe1c97483
mov edi, 0x9f524f24
mov ebx, 0x565f2d3f
jmp 0x4a4950
mov ecx, dword [ebp - 0x34]
call fcn.004a2cc0
mov edx, dword [0x5982d8]
mov ecx, dword [0x5982dc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x9f524f24
cmovne edx, esi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, esi
cmp ecx, 0xa
cmovge eax, edx
nop word cs:[eax + eax]
cmp eax, 0x184569cc
jg 0x4a4970
cmp eax, 0x9f524f24
je 0x4a49a0
cmp eax, 0xe1c97483
jne 0x4a4950
jmp 0x4a47b0
cmp eax, 0x565f2d3f
je 0x4a48ff
cmp eax, 0x184569cd
jne 0x4a4950
movzx ecx, byte [ebp - 0x28]
movzx eax, byte [ebp - 0x20]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x9f524f24
cmovne eax, ebx
test cl, cl
cmove eax, edi
test dl, dl
cmovne eax, ebx
jmp 0x4a4950
mov ecx, dword [ebp - 0x34]
call fcn.004a2cc0
mov eax, 0x565f2d3f
jmp 0x4a4950
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp - 0x24]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esi]
nop word cs:[eax + eax]
mov eax, dword [0x598370]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmp dword [0x598374], 0xa
setl al
or al, cl
test ebx, ebx
je 0x4a4de2
test al, al
je 0x4a4a43
nop
push 0x81
push 0
push 0
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov dword [ebp - 0x24], eax
mov eax, dword [0x598370]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x598374], 0xa
setl cl
test cl, al
jne 0x4a4a60
xor cl, al
jne 0x4a4a60
push 0x81
push 0
push 0
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_WSASocketW]
jmp 0x4a4a00
cmp dword [ebp - 0x24], 0xffffffff
jne 0x4a4a81
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
je 0x4a4d75
mov dword [ebp - 0x30], ebx
mov ecx, dword [0x598370]
mov eax, dword [0x598374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
setne dl
sete bl
cmp eax, 0xa
setge dh
setl bh
xor bh, bl
jne 0x4a4ab7
or dh, dl
jne 0x4a4dc0
lea esi, [ebp + 8]
cmp byte [esi + 0x14], 0
je 0x4a4b70
mov dword [edi], 1
push 4
push edi
push 1
push 6
push dword [ebp - 0x24]
call dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, dword [0x598370]
mov eax, dword [0x598374]
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 0x4a4b70
xor dh, dl
jne 0x4a4b70
nop word cs:[eax + eax]
mov dword [edi], 1
push 4
push edi
push 1
push 6
mov ebx, dword [ebp - 0x24]
push ebx
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
call esi
mov dword [edi], 1
push 4
push edi
push 1
push 6
push ebx
call esi
mov ecx, dword [0x598370]
mov eax, dword [0x598374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
cmp bh, bl
jne 0x4a4b70
or dh, dl
jne 0x4a4b10
nop dword [eax + eax]
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x4a4b87
xor al, cl
je 0x4a4dd0
lea eax, [ebp + 8]
cmp dword [eax + 0x3c], 0
je 0x4a4bf8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
mov eax, 0x97dff171
nop word cs:[eax + eax]
cmp eax, 0x97dff171
je 0x4a4bca
cmp eax, 0x35b31959
je 0x4a4be0
cmp eax, 0x52e31880
jne 0x4a4bb0
jmp 0x4a4df8
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x24], 0
mov eax, 0x35b31959
mov ecx, 0x52e31880
cmove eax, ecx
jmp 0x4a4bb0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x24]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov dword [ebp - 0x10], 1
lea edx, [ebp - 0x28]
push edx
call eax
mov esi, dword [ebp - 0x30]
cmp dword [esi + 4], 0x17
jne 0x4a4c21
mov eax, dword [ebp - 0x44]
mov dword [eax], 0
push 4
push eax
push 0x1b
push 0x29
push dword [ebp - 0x24]
call dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0x48]
push esi
push dword [ebp - 0x24]
call fcn.004a4fc0
test al, al
mov edi, dword [ebp - 0x40]
jne 0x4a4de8
mov eax, dword [0x5982f8]
mov ecx, dword [0x5982fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [ebp - 0x29]
cmp ecx, 0xa
setl byte [ebp - 0x28]
mov ecx, 0xb740d05c
mov ebx, dword [ebp - 0x30]
nop word [eax + eax]
cmp ecx, 0xbb4761a2
jle 0x4a4c90
cmp ecx, 0xbb4761a3
je 0x4a4cd0
cmp ecx, 0x109e100c
jne 0x4a4c70
jmp 0x4a4d40
cmp ecx, 0xb61f34e9
je 0x4a4ce0
cmp ecx, 0xb740d05c
jne 0x4a4c70
mov dh, byte [ebp - 0x29]
movzx ecx, byte [ebp - 0x28]
mov dl, dh
xor dl, cl
test cl, cl
mov ecx, 0xbb4761a3
mov eax, 0xb61f34e9
cmovne ecx, eax
test dh, dh
mov eax, 0xbb4761a3
cmove ecx, eax
test dl, dl
mov eax, 0xb61f34e9
cmovne ecx, eax
jmp 0x4a4c70
push dword [ebp - 0x24]
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, 0xb61f34e9
jmp 0x4a4c70
push dword [ebp - 0x24]
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, dword [0x5982f8]
mov edx, dword [0x5982fc]
lea ecx, [esi + 1]
imul ecx, esi
mov esi, ecx
xor esi, 0xfffffffe
test esi, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov edi, 0xbb4761a3
mov ebx, 0x109e100c
cmovne edi, ebx
test esi, ecx
mov ecx, edi
cmove ecx, ebx
mov esi, eax
cmp edx, 0xa
cmovge ecx, edi
mov edi, dword [ebp - 0x40]
jmp 0x4a4c67
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x20]
mov edx, dword [0x598370]
mov eax, dword [0x598374]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
jne 0x4a4d70
xor dh, dl
mov esi, dword [ebp - 0x38]
jne 0x4a4d90
jmp 0x4a4de0
mov esi, dword [ebp - 0x38]
jmp 0x4a4d90
mov ecx, dword [0x598370]
mov eax, dword [0x598374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
nop dword [eax]
test ecx, ecx
setne cl
sete dl
cmp eax, 0xa
setge al
setl ah
xor ah, dl
or al, cl
xor al, 1
or al, ah
cmp al, 1
jne 0x4a4dbb
nop dword [eax]
mov ebx, dword [ebx + 0x1c]
test al, al
jne 0x4a49d0
mov ebx, dword [ebx + 0x1c]
jmp 0x4a4db0
jmp 0x4a4dc0
jmp 0x4a4dd0
jmp 0x4a4de0
test al, al
jne 0x4a4e04
jmp 0x4a4e3c
mov eax, dword [ebp - 0x38]
push dword [eax]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
jmp 0x4a4784
mov dword [ebp - 0x10], 1
call fcn.0055e636
push dword [esi]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov eax, dword [0x598370]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x598374], 0xa
setl cl
test cl, al
jne 0x4a477d
xor cl, al
jne 0x4a477d
push dword [esi]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
jmp 0x4a4e04