Function at 0x418d10
Capabilities:
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
sub esp, 0x10
push ebp
push esi
push edi
mov edi, dword [esp + 0x20]
mov ebp, 4
movzx eax, word [edi + 0x110]
lea edx, [ebp + 0xc]
movzx ecx, word [edi + 0x180]
cmp ax, cx
jne 0x418dc8
cmp ecx, 0x17
mov esi, ebp
cmove esi, edx
xor edx, edx
cmp ecx, 0x17
sete dl
xor ecx, ecx
lea edx, [edx*4 + 0x184]
add edx, edi
cmp eax, 0x17
sete cl
lea ecx, [ecx*4 + 0x114]
add ecx, edi
sub esi, ebp
jb 0x418d75
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x418d7a
add ecx, ebp
add edx, ebp
sub esi, ebp
jae 0x418d67
cmp esi, 0xfffffffc
je 0x418da7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x418dc3
cmp esi, 0xfffffffd
je 0x418da7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x418dc3
cmp esi, 0xfffffffe
je 0x418da7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x418dc3
cmp esi, 0xffffffff
je 0x418da7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x418dc3
mov ax, word [edi + 0x112]
cmp ax, word [edi + 0x182]
jne 0x418dc3
pop edi
pop esi
mov eax, 0x207
pop ebp
add esp, 0x10
ret
mov edx, 0x10
mov eax, dword [edi + 0x6c]
push ebx
cmp eax, 0x1000000
je 0x4191ef
cmp eax, 0x100000
je 0x4191ef
cmp eax, 2
je 0x4191ef
cmp eax, 4
je 0x4191ef
mov eax, dword [edi + 0x3c]
lea ecx, [edi + 0x164]
cmp eax, 0xffffffff
je 0x418e2d
lea edx, [esp + 0x24]
mov dword [esp + 0x24], 0x1c
push edx
push ecx
push eax
call dword [0x44f1f4]
cmp eax, 0xffffffff
jne 0x4191ef
pop ebx
pop edi
pop esi
mov eax, 0xe
pop ebp
add esp, 0x10
ret
mov ebx, dword [0x44f1d8]
mov eax, 1
mov word [esp + 0x10], ax
mov esi, ebp
mov ax, word [0x44f240]
mov word [esp + 0x12], ax
movzx eax, word [ecx]
cmp eax, 0x17
movzx ecx, ax
mov dword [esp + 0x14], ecx
cmove esi, edx
mov dword [esp + 0x24], eax
xor ecx, ecx
mov edx, ebx
cmp eax, 0x17
sete cl
lea ecx, [ecx*4 + 0x168]
add ecx, edi
sub esi, ebp
jb 0x418e83
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x418e88
add ecx, ebp
add edx, ebp
sub esi, ebp
jae 0x418e75
cmp esi, 0xfffffffc
je 0x418ebc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x418eb5
cmp esi, 0xfffffffd
je 0x418ebc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x418eb5
cmp esi, 0xfffffffe
je 0x418ebc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x418eb5
cmp esi, 0xffffffff
je 0x418ebc
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x418ebc
sbb eax, eax
or eax, 1
jmp 0x418ebe
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
movzx ecx, cx
movzx edx, dx
test eax, eax
jne 0x418f8f
movzx ecx, word [edi + 0x180]
mov esi, ebp
cmp ecx, 0x17
sete al
lea eax, [eax*4 + 0x184]
add eax, edi
cmp ecx, 0x17
mov ecx, 0x10
mov dword [esp + 0x24], eax
cmove esi, ecx
mov ecx, eax
mov edx, esi
sub edx, ebp
jb 0x418f11
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x418f1a
add ecx, ebp
add ebx, ebp
sub edx, ebp
jae 0x418f03
cmp edx, 0xfffffffc
je 0x418fe1
mov al, byte [ecx]
cmp al, byte [ebx]
jne 0x418f57
cmp edx, 0xfffffffd
je 0x418fe1
mov al, byte [ecx + 1]
cmp al, byte [ebx + 1]
jne 0x418f57
cmp edx, 0xfffffffe
je 0x418fe1
mov al, byte [ecx + 2]
cmp al, byte [ebx + 2]
jne 0x418f57
cmp edx, 0xffffffff
je 0x418fe1
mov al, byte [ecx + 3]
cmp al, byte [ebx + 3]
je 0x418fe1
movzx ecx, word [edi + 0x180]
xor eax, eax
cmp ecx, 0x17
mov word [edi + 0x164], cx
push esi
push dword [esp + 0x28]
sete al
lea eax, [eax*4 + 0x168]
add eax, edi
push eax
call fcn.00421e80
movzx eax, word [edi + 0x164]
add esp, 0xc
mov ecx, eax
mov edx, eax
cmp word [edi + 0x166], 0
movzx edx, dx
movzx ecx, cx
jne 0x418faf
mov ax, word [edi + 0x182]
mov ecx, edx
mov word [edi + 0x166], ax
mov edx, 0x17
mov eax, 2
push 6
cmp cx, dx
push 1
cmove eax, edx
push eax
call dword [0x44f1e0]
mov ecx, eax
mov dword [edi + 0x3c], ecx
cmp ecx, 0xffffffff
jne 0x418fee
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
add esp, 0x10
ret
pop ebx
pop edi
pop esi
mov eax, 0x64
pop ebp
add esp, 0x10
ret
mov eax, dword [edi + 8]
push dword [eax + 0x78]
push ecx
call fcn.00403a80
add esp, 8
lea eax, [esp + 0x10]
push 4
push eax
push 0x80
push 0xffff
push dword [edi + 0x3c]
call dword [0x44f200]
movzx eax, word [edi + 0x148]
lea ebx, [edi + 0x148]
mov edx, dword [0x44f1d8]
cmp eax, 0x17
mov esi, 0x10
cmove ebp, esi
xor ecx, ecx
cmp eax, 0x17
sete cl
lea ecx, [ecx*4 + 0x14c]
add ecx, edi
sub ebp, 4
jb 0x419061
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x419066
add ecx, 4
add edx, 4
sub ebp, 4
jae 0x419050
cmp ebp, 0xfffffffc
je 0x419097
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4190ee
cmp ebp, 0xfffffffd
je 0x419097
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4190ee
cmp ebp, 0xfffffffe
je 0x419097
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4190ee
cmp ebp, 0xffffffff
je 0x419097
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4190ee
cmp word [edi + 0x164], 0x17
lea ebp, [edi + 0x164]
mov eax, dword [edi + 8]
jne 0x4190cc
movups xmm0, xmmword [eax + 0xb0]
movups xmmword [ebx], xmm0
movq xmm0, qword [eax + 0xc0]
movq qword [ebx + 0x10], xmm0
mov eax, dword [eax + 0xc8]
mov dword [ebx + 0x18], eax
jmp 0x4190f4
movups xmm0, xmmword [eax + 0xcc]
movups xmmword [ebx], xmm0
movq xmm0, qword [eax + 0xdc]
movq qword [ebx + 0x10], xmm0
mov eax, dword [eax + 0xe4]
mov dword [ebx + 0x18], eax
jmp 0x4190f4
lea ebp, [edi + 0x164]
xor eax, eax
mov ecx, 0x1c
mov word [edi + 0x14a], ax
mov eax, esi
cmp word [ebx], 0x17
cmove eax, ecx
push eax
push ebx
push dword [edi + 0x3c]
call dword [0x44f1e8]
cmp eax, 0xffffffff
jne 0x419128
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
add esp, 0x10
ret
mov eax, dword [edi + 0x6c]
cmp eax, 0x100
jge 0x41913a
test al, 1
je 0x4191c6
cmp word [ebp], 0x17
mov eax, 0x1c
mov ebp, dword [edi + 0x3c]
cmove esi, eax
mov dword [esp + 0x14], 1
lea eax, [esp + 0x14]
push eax
push 0x8004667e
push ebp
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push esi
lea eax, [edi + 0x164]
push eax
push ebp
call dword [0x44f1f0]
test eax, eax
je 0x41918c
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
cmp eax, 0x2733
je 0x41918c
call esi
cmp eax, 0x70
jne 0x4191b9
push 0x1f40
xorps xmm0, xmm0
lea eax, [esp + 0x1c]
push 1
movlpd qword [esp + 0x20], xmm0
mov ecx, 0x10
push eax
mov dword [esp + 0x24], ebp
mov word [esp + 0x28], cx
call dword [0x44f204]
test eax, eax
jg 0x4191c6
pop ebx
pop edi
pop esi
mov eax, 0xd
pop ebp
add esp, 0x10
ret
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x1c
push eax
push ebx
push dword [edi + 0x3c]
call dword [0x44f1f8]
cmp eax, 0xffffffff
jne 0x4191ef
pop ebx
pop edi
pop esi
mov eax, 0xf
pop ebp
add esp, 0x10
ret
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x10
ret