Function at 0x4078a0
Capabilities:
Set socket configuration

Disassembly:
mov eax, 0x1058
call fcn.00420ca0
mov eax, dword [0x44f874]
xor eax, esp
mov dword [esp + 0x1054], eax
mov eax, dword [esp + 0x105c]
mov ecx, dword [esp + 0x1060]
mov edx, dword [esp + 0x1064]
mov dword [esp + 4], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
push ebx
mov ebx, dword [esp + 0x1070]
mov dword [esp + 0x14], ebx
push esi
mov esi, dword [esp + 0x1070]
mov dword [esp + 0x38], esi
cmp eax, 2
jne 0x407921
push esi
push edx
push ecx
push 0x44e0a8
call fcn.00409990
add esp, 0x10
test eax, eax
je 0x40793e
pop esi
pop ebx
mov ecx, dword [esp + 0x1054]
xor ecx, esp
call fcn.00420c8f
add esp, 0x1058
ret
cmp eax, 0x17
jne 0x40793e
push esi
push edx
push ecx
push 0x44e0cc
call fcn.00409990
add esp, 0x10
test eax, eax
jne 0x4081fb
push ebp
mov ebp, dword [esp + 0x107c]
mov ecx, 0x10
mov edx, 0x4515e4
push edi
test ebp, ebp
je 0x4079c5
cmp word [0x4515e0], 0x17
mov esi, 4
cmove esi, ecx
mov ecx, 0x4515e8
cmovne ecx, edx
mov edx, dword [0x44f1d8]
sub esi, 4
jb 0x407989
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40798e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407978
cmp esi, 0xfffffffc
je 0x4079c5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4079bb
cmp esi, 0xfffffffd
je 0x4079c5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4079bb
cmp esi, 0xfffffffe
je 0x4079c5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4079bb
cmp esi, 0xffffffff
je 0x4079c5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4079c5
mov dword [esp + 0x24], 1
jmp 0x4079d6
mov eax, dword [0x450430]
mov dword [esp + 0x24], eax
test eax, eax
jle 0x4081f7
mov dword [esp + 0x30], 0x450310
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x62]
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x407a04
test ebp, ebp
jne 0x407a04
lea edi, [ebx + 0x148]
add ebx, 0x164
jmp 0x407a1e
lea edi, [esp + 0x44]
test ebx, ebx
je 0x407a18
test ebp, ebp
jne 0x407a18
add ebx, 0x164
jmp 0x407a1e
lea ebx, [esp + 0x44]
mov edi, ebx
mov dword [esp + 0x1c], ebx
xorps xmm0, xmm0
movups xmmword [edi], xmm0
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], 0
movups xmmword [ebx], xmm0
movq qword [ebx + 0x10], xmm0
mov dword [ebx + 0x18], 0
test ebp, ebp
je 0x407ad1
mov bp, word [0x4515e0]
mov eax, 0x10
mov edx, dword [0x44f1d8]
cmp bp, 0x17
mov esi, 4
mov ecx, 0x4515e8
cmove esi, eax
mov eax, 0x4515e4
cmovne ecx, eax
sub esi, 4
jb 0x407a91
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x407a96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407a80
cmp esi, 0xfffffffc
je 0x407ad1
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407ac3
cmp esi, 0xfffffffd
je 0x407ad1
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407ac3
cmp esi, 0xfffffffe
je 0x407ad1
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407ac3
cmp esi, 0xffffffff
je 0x407ad1
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x407ad1
mov edx, dword [0x4515fc]
mov word [edi], bp
movzx ecx, bp
jmp 0x407ae0
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x1c]
movzx eax, word [eax]
mov word [edi], ax
mov ecx, eax
test edx, edx
mov dword [esp + 0x18], edx
mov eax, 0x11
mov ebp, 6
cmovne eax, ebp
neg edx
push eax
sbb eax, eax
add eax, 2
cmp cx, 0x17
push eax
mov ecx, 0x17
mov eax, 2
cmove eax, ecx
push eax
call dword [0x44f1e0]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4081f7
cmp word [edi], 0x17
mov eax, 0x1c
mov ecx, 0x10
cmove ecx, eax
push ecx
push edi
push ebp
call dword [0x44f1e8]
test eax, eax
jne 0x4081e7
cmp dword [esp + 0x1080], eax
je 0x407be1
cmp word [0x4515e0], 0x17
mov ecx, 0x10
mov edx, dword [0x44f1d8]
mov esi, 4
cmove esi, ecx
mov eax, 0x4515e4
mov ecx, 0x4515e8
cmovne ecx, eax
sub esi, 4
jb 0x407b91
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x407b96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407b80
cmp esi, 0xfffffffc
je 0x407be1
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407bc3
cmp esi, 0xfffffffd
je 0x407be1
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407bc3
cmp esi, 0xfffffffe
je 0x407be1
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407bc3
cmp esi, 0xffffffff
je 0x407be1
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x407be1
movups xmm0, xmmword [0x4515e0]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x4515f0]
movq qword [ebx + 0x10], xmm0
mov eax, dword [0x4515f8]
jmp 0x407bf8
mov eax, dword [esp + 0x30]
movups xmm0, xmmword [eax]
movups xmmword [ebx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebx + 0x10], xmm0
mov eax, dword [eax + 0x18]
mov edi, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
test edi, edi
je 0x407c43
cmp word [ebx], 0x17
mov ecx, 0x1c
push 8
mov eax, 0x10
cmove eax, ecx
push eax
push ebx
push ebp
call fcn.00419a90
add esp, 0x10
test eax, eax
jne 0x4081e7
push 4
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 1
push eax
push 1
push 6
push ebp
call dword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, dword [esp + 0x28]
mov esi, ebx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x407c50
sub esi, ecx
push esi
push ebx
call fcn.00419b20
movzx eax, ax
cmp esi, 0xff
mov dword [esp + 0x34], eax
mov word [esp + 0x6a], ax
mov eax, 0xff
cmovg esi, eax
mov dword [esp + 0x6c], 0x1000001
push esi
lea eax, [esp + 0x7b]
mov dword [esp + 0x74], 0
push ebx
push eax
mov word [esp + 0x80], 0
call fcn.00421e80
lea eax, [esi + 0xd]
mov byte [esp + esi + 0x83], 0
mov dword [esp + 0x4c], eax
lea ebx, [esp + 0x82]
lea eax, [esp + 0x83]
push 0x2e
push eax
call fcn.00421ae0
add esp, 0x1c
test eax, eax
je 0x407cea
nop dword [eax]
mov cl, al
sub cl, bl
dec cl
mov byte [ebx], cl
mov ebx, eax
inc eax
push 0x2e
push eax
call fcn.00421ae0
add esp, 8
test eax, eax
jne 0x407cd0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
sub al, bl
dec dl
add al, dl
cmp dword [esp + 0x1080], 1
mov byte [ebx], al
mov byte [esp + esi + 0x70], 0
jne 0x407d10
mov eax, 0xc
jmp 0x407d22
cmp dword [esp + 0x14], 0x17
mov eax, 1
mov ecx, 0x1c
cmove eax, ecx
mov byte [esp + esi + 0x71], al
mov word [esp + esi + 0x72], 0x100
add esi, 0x12
test edi, edi
je 0x407d4d
lea ebx, [esp + 0x60]
push esi
mov dword [esp + 0x14], ebx
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x60], ax
add esi, 2
jmp 0x407d51
mov ebx, dword [esp + 0x10]
imul eax, dword [0x44f244], 0x3e8
mov edi, dword [esp + 0x1c]
push eax
push esi
push ebx
push edi
push ebp
call fcn.004185b0
add esp, 0x14
cmp eax, esi
je 0x407d85
push 2
push ebp
call dword [0x44f218]
push ebp
call dword [0x44f21c]
jmp 0x40814c
cmp dword [esp + 0x20], 0
je 0x407da1
mov eax, esi
mov esi, dword [esp + 0x20]
cdq
add dword [esi + 0x1a0], eax
adc dword [esi + 0x1a4], edx
jmp 0x407da5
mov esi, dword [esp + 0x20]
imul eax, dword [0x44f258], 0x3e8
push eax
push 0x1000
push ebx
push edi
push ebp
call fcn.00418680
add esp, 0x14
mov edi, eax
push 2
push ebp
call dword [0x44f218]
push ebp
call dword [0x44f21c]
cmp edi, 0xd
jle 0x40814c
test esi, esi
je 0x407dee
mov eax, edi
cdq
add dword [esi + 0x1a8], eax
adc dword [esi + 0x1ac], edx
cmp dword [esp + 0x18], 0
je 0x407e51
movzx eax, word [ebx]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
add ebx, 2
mov ecx, 0x1000
mov dword [esp + 0x10], ebx
add edi, 0xfffffffe
cmp ax, cx
ja 0x40814c
mov esi, eax
cmp esi, edi
jl 0x40814c
jle 0x407e51
imul eax, dword [0x44f258], 0x3e8
push eax
mov eax, esi
sub eax, edi
push eax
lea eax, [edi + ebx]
push eax
push dword [esp + 0x28]
push ebp
call fcn.00418680
sub esi, edi
add esp, 0x14
cmp eax, esi
jne 0x40814c
mov eax, dword [esp + 0x2c]
cmp word [ebx], ax
jne 0x40814c
movzx ecx, byte [ebx + 6]
mov edx, 0x100
movzx eax, byte [ebx + 7]
imul ecx, edx
add cx, ax
movzx esi, cx
cmp esi, 1
jb 0x4081f7
movzx ecx, byte [ebx + 4]
movzx eax, byte [ebx + 5]
imul ecx, edx
add cx, ax
cmp cx, 1
jne 0x40814c
mov edx, 0xd
cmp edi, edx
jle 0x407eab
nop
cmp byte [edx + ebx], 0
je 0x407eab
inc edx
cmp edx, edi
jl 0x407ea0
add edx, 5
cmp edx, edi
jge 0x40814c
mov eax, 0xff
mov dword [esp + 0x1c], 0
cmp si, ax
cmova esi, eax
movzx eax, si
mov dword [esp + 0x2c], eax
test eax, eax
je 0x40814c
cmp dword [esp + 0x14], 0x17
mov ecx, 0x10
mov eax, 0x1c
cmove ecx, eax
mov dword [esp + 0x18], ecx
nop
mov al, byte [edx + ebx]
cmp al, 0xc0
jae 0x407f15
test al, al
je 0x407f11
movzx ecx, al
lea eax, [edx + 0xe]
add eax, ecx
cmp eax, edi
jge 0x407f11
inc edx
add edx, ecx
mov al, byte [edx + ebx]
cmp al, 0xc0
jb 0x407ef7
mov ecx, dword [esp + 0x18]
cmp byte [edx + ebx], 0
jne 0x407f1c
dec edx
lea eax, [ecx + edx]
cmp eax, edi
jg 0x40814c
movzx eax, byte [edx + ebx + 0xb]
lea esi, [edx + ebx]
movzx ebx, byte [esi + 0xa]
lea ebp, [edx + 0xc]
shl ebx, 8
add ebx, eax
add ebp, ebx
cmp ebp, edi
jg 0x40814c
cmp dword [esp + 0x1080], 1
mov al, byte [esi + 2]
je 0x408125
test al, al
jne 0x40812f
cmp dword [esp + 0x14], 0x17
mov eax, 0x1c
mov ecx, 1
cmove ecx, eax
movzx eax, byte [esi + 3]
cmp eax, ecx
jne 0x40812f
cmp dword [esp + 0x14], 0x17
mov eax, 4
mov ecx, 0x10
cmove eax, ecx
cmp ebx, eax
jne 0x40812f
mov esi, dword [esp + 0x10]
add esi, edx
push dword [esi + 6]
call dword [sym.imp.WS2_32.dll_ntohl]
mov edi, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x24], eax
cmp edi, 0x17
mov ecx, 0x10
mov eax, 4
cmove eax, ecx
lea ecx, [esi + 0xc]
push eax
push ecx
push dword [esp + 0x3c]
call fcn.00421e80
add esp, 0xc
cmp ebx, 0x3c
jb 0x407fdd
cmp ebx, 0xa8c0
jbe 0x407fe6
mov ebx, 0x12c
mov dword [esp + 0x24], ebx
mov esi, ebx
xor ebp, ebp
add esi, dword [0x44f380]
mov eax, 0x44e0a8
mov ebx, 0x44e0cc
adc ebp, dword [0x44f384]
cmp edi, 0x17
push 0x451380
cmovne ebx, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x34], 0
je 0x408102
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x408102
cmp dword [ebx + 0x18], 0
je 0x408102
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x28], edi
test edi, edi
je 0x408102
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x20], eax
lea eax, [ebx + 8]
push eax
push edi
push ecx
call fcn.00409850
push dword [ebx + 4]
lea eax, [edi + 0x1c]
push dword [esp + 0x44]
push eax
call fcn.00421e80
push edi
push ebx
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebp
mov dword [edi + 0x18], 0
call fcn.004098f0
mov ecx, dword [ebx + 0x18]
add esp, 0x20
lea edx, [eax*4]
mov esi, dword [edx + ecx]
lea ebp, [edx + ecx]
mov dword [esp + 0x2c], edx
test esi, esi
je 0x4080f6
mov eax, dword [esi + 0x14]
cmp eax, dword [0x44f384]
jl 0x4080c7
jg 0x4080a9
mov eax, dword [esi + 0x10]
cmp eax, dword [0x44f380]
jb 0x4080c7
mov ecx, edi
mov edx, esi
mov edi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x408174
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4080b2
mov eax, dword [esi + 0x18]
mov dword [ebp], eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x18], eax
mov dword [ebx + 0x20], esi
mov esi, dword [ebp]
mov edi, dword [esp + 0x28]
test esi, esi
jne 0x408091
mov ecx, dword [ebx + 0x18]
mov edx, dword [esp + 0x2c]
mov eax, dword [ecx + edx]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [edx + eax], edi
push 0x451380
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x40811b
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, 1
jmp 0x4081f9
test al, al
jne 0x40812f
cmp byte [esi + 3], 0xc
je 0x40817c
mov ecx, dword [esp + 0x1c]
mov edx, ebp
mov ebx, dword [esp + 0x10]
inc ecx
cmp ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
jl 0x407ef0
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], 0x20
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x24]
jge 0x4081f7
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1080]
jmp 0x4079e6
lea ebp, [esi + 0x18]
jmp 0x4080e4
lea eax, [edx + edi]
mov edx, dword [esp + 0x10]
add edx, 0xc
lea ecx, [esi + 0xc]
add edx, eax
cmp ecx, edx
jae 0x4081a5
nop
mov al, byte [ecx]
test al, al
je 0x4081a5
movzx eax, al
inc eax
mov byte [ecx], 0x2e
add eax, ecx
mov ecx, eax
cmp eax, edx
jb 0x408190
mov ebx, dword [esp + 0x20]
mov byte [ecx], 0
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x4081bf
push eax
call fcn.00429c66
add esp, 4
lea eax, [esi + 0xd]
push eax
call fcn.00431b5e
push 2
push 0
push 0
push dword [esp + 0x44]
mov dword [ebx + 0xc8], eax
push eax
push dword [esp + 0x2c]
call fcn.004078a0
add esp, 0x1c
jmp 0x4081f9
push 2
push ebp
call dword [0x44f218]
push ebp
call dword [0x44f21c]
xor eax, eax
pop edi
pop ebp
mov ecx, dword [esp + 0x105c]
pop esi
pop ebx
xor ecx, esp
call fcn.00420c8f
add esp, 0x1058
ret