Function at 0x4c1b20
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x5cdb80
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [0x60b738]
mov eax, dword [0x60b73c]
lea esi, [ecx + 1]
imul esi, ecx
mov ecx, esi
xor ecx, 0xfffffffe
and ecx, esi
mov dword [ebp - 0x20], ecx
sete ch
mov dword [ebp - 0x2c], eax
cmp eax, 0xa
setl cl
or cl, ch
vxorps xmm0, xmm0, xmm0
nop word [eax + eax]
push eax
sub esp, 0x1c
mov edi, esp
push eax
mov ebx, esp
sub esp, 0x18
mov edx, esp
push eax
mov esi, esp
push eax
mov eax, esp
vmovups ymmword [edi], ymm0
mov dword [edi + 8], 1
test cl, cl
je 0x4c1b80
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], esi
lea esi, [ebp + 8]
mov ecx, dword [esi + 4]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 0x38], ebx
je 0x4c1bf6
vzeroupper
call fcn.004730c0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 4], 0
mov ecx, dword [0x60b738]
mov edi, dword [0x60b73c]
lea esi, [ecx + 1]
imul esi, ecx
mov edx, esi
xor edx, 0xfffffffe
and edx, esi
mov ecx, 4
jmp 0x4c1cbc
mov ecx, dword [esi]
cmp dword [ecx + 0x10], 0
je 0x4c1c86
vzeroupper
call fcn.004730c0
mov edx, dword [0x60b738]
mov esi, dword [0x60b73c]
lea ecx, [edx + 1]
imul ecx, edx
mov edx, esi
mov esi, ecx
and esi, 1
mov dword [ebp - 0x20], esi
sete byte [ebp - 0x2c]
cmp edx, 0xa
setl bh
setge bl
cmp bh, byte [ebp - 0x2c]
jne 0x4c1c8b
or bl, cl
test bl, 1
je 0x4c1c8b
nop
lea esi, [ebp + 8]
mov ecx, dword [esi]
call fcn.004730c0
mov ecx, dword [esi]
call fcn.004730c0
mov ecx, dword [0x60b738]
mov edx, dword [0x60b73c]
lea esi, [ecx + 1]
imul esi, ecx
mov ecx, esi
xor ecx, 0xfffffffe
and ecx, esi
mov dword [ebp - 0x20], ecx
setne cl
sete bl
cmp edx, 0xa
setge ch
setl bh
xor bh, bl
jne 0x4c1c8b
or ch, cl
jne 0x4c1c40
jmp 0x4c1c8b
xor eax, eax
mov edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x20], 0
sete cl
cmp edx, 0xa
setl ch
test ch, cl
jne 0x4c1ca2
xor ch, cl
jne 0x4c1ca2
jmp 0x4c1ca0
mov dword [ebp - 0x2c], eax
lea esi, [ebp + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp - 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x10]
mov ebx, dword [ebp - 0x38]
mov edi, edx
mov edx, dword [ebp - 0x20]
mov dword [eax], ecx
test edx, edx
setne cl
sete dl
cmp edi, 0xa
setge al
setl ah
xor ah, dl
jne 0x4c1ce2
or al, cl
je 0x4c1ce2
nop word [eax + eax]
jmp 0x4c1ce0
lea esi, [ebp + 8]
lea eax, [esi + 0x18]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [0x60a6e0]
mov ecx, dword [0x60a6e4]
lea edx, [eax + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete byte [ebp - 0x21]
cmp ecx, 0xa
setl byte [ebp - 0x22]
lea eax, [esi + 0x40]
mov dword [ebp - 0x4c], eax
mov edi, 0x45a888c9
mov ecx, dword [ebp - 0x3c]
nop word cs:[eax + eax]
cmp edi, 0x3af7a565
jg 0x4c1d70
cmp edi, 0xb7744dc4
je 0x4c1e08
cmp edi, 0x27d96700
jne 0x4c1d30
mov dword [ebp - 0x10], 0
push dword [ebp - 0x20]
push ecx
vzeroupper
call fcn.0047a240
mov edi, 0x3af7a566
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
add esp, 8
jmp 0x4c1d30
cmp edi, 0x3af7a566
je 0x4c1da6
cmp edi, 0x45a888c9
jne 0x4c1d30
movzx eax, byte [ebp - 0x21]
mov ah, byte [ebp - 0x22]
mov edx, eax
xor dl, ah
mov edx, 0x27d96700
mov esi, 0x3af7a566
cmovne edx, esi
test ah, ah
mov edi, edx
cmovne edi, esi
test al, al
cmove edi, edx
jmp 0x4c1d30
mov dword [ebp - 0x10], 0
push dword [ebp - 0x20]
push ecx
vzeroupper
call fcn.0047a240
mov ecx, dword [ebp - 0x3c]
add esp, 8
mov edx, dword [0x60a6e0]
mov eax, dword [0x60a6e4]
mov dword [ebp - 0x34], eax
lea edi, [edx + 1]
imul edi, edx
mov edx, edi
xor edx, 0xfffffffe
test edx, edi
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov ebx, dword [ebp - 0x38]
mov esi, 0x27d96700
mov eax, 0xb7744dc4
cmovne esi, eax
test edx, edi
mov edi, esi
cmove edi, eax
cmp dword [ebp - 0x34], 0xa
cmovge edi, esi
jmp 0x4c1d30
vzeroupper
call fcn.004730c0
push ebx
push dword [ebp - 0x28]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov dword [ebp - 0x20], eax
mov edx, dword [0x60b738]
mov eax, dword [0x60b73c]
lea esi, [edx + 1]
imul esi, edx
mov edi, esi
xor edi, 0xfffffffe
test edi, esi
mov edi, ebx
setne bh
cmp eax, 0xa
setge bl
mov ecx, ebx
xor cl, bh
or bl, bh
xor bl, 1
or bl, cl
cmp dword [ebp - 0x20], 0
je 0x4c1e92
mov esi, 0xffffffff
test bl, bl
je 0x4c1e90
mov ecx, dword [ebp - 0x3c]
call fcn.0040f050
mov ecx, dword [ebp - 0x40]
call fcn.004c08f0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x4c1e90
test bl, bl
mov esi, dword [ebp - 0x48]
je 0x4c21e0
mov ecx, eax
mov ebx, dword [edi]
jmp 0x4c1eb3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x4c2212
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]
cmp eax, 0xffffffff
jne 0x4c1ee7
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], eax
mov edx, dword [0x60b738]
mov edi, dword [0x60b73c]
lea ebx, [edx + 1]
imul ebx, edx
mov eax, ebx
and eax, 1
sete cl
mov dword [ebp - 0x20], edi
cmp edi, 0xa
setl ch
setge byte [ebp - 0x34]
cmp ch, cl
lea edi, [ebp + 8]
jne 0x4c1f2a
movzx ecx, byte [ebp - 0x34]
or cl, bl
test cl, 1
jne 0x4c21f0
mov ebx, dword [ebp - 0x28]
cmp ebx, 0xffffffff
je 0x4c1fdd
cmp byte [edi + 0x14], 0
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, dword [ebp - 0x20]
je 0x4c1ff0
mov dword [esi], 1
push 4
push esi
push 1
push 6
push ebx
call edi
mov edx, dword [0x60b738]
mov eax, dword [0x60b73c]
mov dword [ebp - 0x20], eax
lea eax, [edx + 1]
imul eax, edx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
sete cl
setne al
cmp dword [ebp - 0x20], 0xa
setl ch
setge ah
cmp ch, cl
jne 0x4c1fe8
or ah, al
mov ecx, dword [ebp - 0x20]
je 0x4c1ff0
nop
mov dword [esi], 1
push 4
push esi
push 1
push 6
push ebx
call edi
mov dword [esi], 1
push 4
push esi
push 1
push 6
push ebx
call edi
mov edx, dword [0x60b738]
mov ecx, dword [0x60b73c]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp ecx, 0xa
setl ah
test ah, al
jne 0x4c1ff0
xor ah, al
je 0x4c1f90
jmp 0x4c1ff0
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
jmp 0x4c21ba
mov ecx, dword [ebp - 0x20]
nop dword [eax + eax]
mov dword [ebp - 0x20], ecx
mov ecx, dword [0x60b740]
mov esi, dword [0x60b744]
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp esi, 0xa
setl ch
xor ch, cl
mov ecx, 0x7bc1db6f
mov edi, 0x37aac64c
cmovne ecx, edi
cmp eax, 0xffffffff
sete byte [ebp - 0x2d]
mov eax, ecx
cmove eax, edi
cmp esi, 0xa
setl byte [ebp - 0x21]
lea esi, [ebp + 8]
mov esi, dword [esi + 0x3c]
mov dword [ebp - 0x34], esi
cmovge eax, ecx
mov ecx, dword [ebp - 0x20]
mov edi, 0xb6278ea8
nop dword [eax]
cmp edi, 0x37aac64b
jg 0x4c2070
cmp edi, 0xb6278ea8
je 0x4c2087
cmp edi, 0xfc6805a7
jne 0x4c2050
mov edi, eax
jmp 0x4c2050
cmp edi, 0x37aac64c
je 0x4c20c0
cmp edi, 0x7bc1db6f
jne 0x4c2050
mov edi, 0xfc6805a7
jmp 0x4c2050
movzx ecx, byte [ebp - 0x2d]
mov ch, byte [ebp - 0x21]
mov bl, ch
xor bl, cl
test ch, ch
mov edi, 0x7bc1db6f
mov esi, 0xfc6805a7
cmovne edi, esi
test cl, cl
mov ecx, 0x7bc1db6f
cmove edi, ecx
mov ecx, dword [ebp - 0x20]
test bl, bl
mov ebx, dword [ebp - 0x28]
cmovne edi, esi
jmp 0x4c2050
cmp dword [ebp - 0x34], 0
setne byte [ebp - 0x22]
cmp byte [ebp - 0x22], 0
je 0x4c2122
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0x40]
push ebx
call fcn.004c2350
mov eax, dword [0x60b738]
mov esi, dword [0x60b73c]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
setne dl
mov edi, esi
cmp esi, 0xa
setl ch
setge dh
cmp ch, cl
jne 0x4c2136
or dh, dl
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x28]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, edi
je 0x4c2144
jmp 0x4c2210
lea eax, [edx + 1]
imul eax, edx
and eax, 1
mov edx, dword [ebp - 0x44]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
jmp 0x4c2144
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x28]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, edi
test eax, eax
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x4c215b
xor cl, al
je 0x4c2200
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 4], 0x17
jne 0x4c217b
mov dword [edx], 0
push 4
push edx
push 0x1b
push 0x29
push ebx
call esi
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0x4c]
push dword [ebp - 0x2c]
push ebx
call fcn.004c25a0
test al, al
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x48]
jne 0x4c22bf
push dword [ebp - 0x28]
call dword [sym.imp.WS2_32.dll_closesocket]
mov edx, dword [0x60b738]
mov ecx, dword [0x60b73c]
lea eax, [edx - 1]
imul eax, edx
and eax, 1
test eax, eax
sete al
cmp ecx, 0xa
setl ah
test ah, al
mov ebx, dword [ebp - 0x2c]
jne 0x4c1eb0
xor ah, al
jne 0x4c1eb0
nop dword [eax + eax]
jmp 0x4c21e0
jmp 0x4c21f0
jmp 0x4c2200
jmp 0x4c2210
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp ecx, 0xa
setl cl
test cl, al
jne 0x4c2242
xor cl, al
jne 0x4c2242
nop word cs:[eax + eax]
jmp 0x4c2240
push dword [edi]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov eax, dword [0x60b738]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60b73c], 0xa
setge cl
setl ah
xor ah, dl
jne 0x4c22b5
or cl, al
je 0x4c22b5
mov esi, dword [sym.imp.WS2_32.dll_freeaddrinfo]
nop dword [eax]
push dword [edi]
call esi
push dword [edi]
call esi
mov eax, dword [0x60b738]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x60b73c], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x4c22b5
or cl, al
jne 0x4c2280
mov esi, 0xffffffff
jmp 0x4c1e5e
push dword [edi]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov ecx, dword [0x60b738]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60b73c], 0xa
setge cl
setl ch
xor ch, dl
jne 0x4c22fc
or cl, al
test cl, 1
mov esi, dword [ebp - 0x28]
jne 0x4c2240
jmp 0x4c1e5e
mov esi, dword [ebp - 0x28]
jmp 0x4c1e5e