Function at 0x4078f0
Capabilities:
Set socket configuration

Disassembly:
mov eax, 0x1058
call fcn.00420cd0
mov eax, dword [0x44f8e4]
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 0x407971
push esi
push edx
push ecx
push 0x44e118
call fcn.004099e0
add esp, 0x10
test eax, eax
je 0x40798e
pop esi
pop ebx
mov ecx, dword [esp + 0x1054]
xor ecx, esp
call fcn.00420cbf
add esp, 0x1058
ret
cmp eax, 0x17
jne 0x40798e
push esi
push edx
push ecx
push 0x44e13c
call fcn.004099e0
add esp, 0x10
test eax, eax
jne 0x40824b
push ebp
mov ebp, dword [esp + 0x107c]
mov ecx, 0x10
mov edx, 0x451644
push edi
test ebp, ebp
je 0x407a15
cmp word [0x451640], 0x17
mov esi, 4
cmove esi, ecx
mov ecx, 0x451648
cmovne ecx, edx
mov edx, dword [0x44f248]
sub esi, 4
jb 0x4079d9
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4079de
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4079c8
cmp esi, 0xfffffffc
je 0x407a15
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407a0b
cmp esi, 0xfffffffd
je 0x407a15
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407a0b
cmp esi, 0xfffffffe
je 0x407a15
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407a0b
cmp esi, 0xffffffff
je 0x407a15
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x407a15
mov dword [esp + 0x24], 1
jmp 0x407a26
mov eax, dword [0x450490]
mov dword [esp + 0x24], eax
test eax, eax
jle 0x408247
mov dword [esp + 0x30], 0x450370
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x62]
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x407a54
test ebp, ebp
jne 0x407a54
lea edi, [ebx + 0x148]
add ebx, 0x164
jmp 0x407a6e
lea edi, [esp + 0x44]
test ebx, ebx
je 0x407a68
test ebp, ebp
jne 0x407a68
add ebx, 0x164
jmp 0x407a6e
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 0x407b21
mov bp, word [0x451640]
mov eax, 0x10
mov edx, dword [0x44f248]
cmp bp, 0x17
mov esi, 4
mov ecx, 0x451648
cmove esi, eax
mov eax, 0x451644
cmovne ecx, eax
sub esi, 4
jb 0x407ae1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x407ae6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407ad0
cmp esi, 0xfffffffc
je 0x407b21
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407b13
cmp esi, 0xfffffffd
je 0x407b21
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407b13
cmp esi, 0xfffffffe
je 0x407b21
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407b13
cmp esi, 0xffffffff
je 0x407b21
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x407b21
mov edx, dword [0x45165c]
mov word [edi], bp
movzx ecx, bp
jmp 0x407b30
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 [0x44f250]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x408247
cmp word [edi], 0x17
mov eax, 0x1c
mov ecx, 0x10
cmove ecx, eax
push ecx
push edi
push ebp
call dword [0x44f258]
test eax, eax
jne 0x408237
cmp dword [esp + 0x1080], eax
je 0x407c31
cmp word [0x451640], 0x17
mov ecx, 0x10
mov edx, dword [0x44f248]
mov esi, 4
cmove esi, ecx
mov eax, 0x451644
mov ecx, 0x451648
cmovne ecx, eax
sub esi, 4
jb 0x407be1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x407be6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407bd0
cmp esi, 0xfffffffc
je 0x407c31
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407c13
cmp esi, 0xfffffffd
je 0x407c31
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407c13
cmp esi, 0xfffffffe
je 0x407c31
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407c13
cmp esi, 0xffffffff
je 0x407c31
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x407c31
movups xmm0, xmmword [0x451640]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x451650]
movq qword [ebx + 0x10], xmm0
mov eax, dword [0x451658]
jmp 0x407c48
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 0x407c93
cmp word [ebx], 0x17
mov ecx, 0x1c
push 8
mov eax, 0x10
cmove eax, ecx
push eax
push ebx
push ebp
call fcn.00419ae0
add esp, 0x10
test eax, eax
jne 0x408237
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 0x407ca0
sub esi, ecx
push esi
push ebx
call fcn.00419b70
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.00421eb0
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.00421b10
add esp, 0x1c
test eax, eax
je 0x407d3a
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.00421b10
add esp, 8
test eax, eax
jne 0x407d20
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 0x407d60
mov eax, 0xc
jmp 0x407d72
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 0x407d9d
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 0x407da1
mov ebx, dword [esp + 0x10]
imul eax, dword [0x44f2b4], 0x3e8
mov edi, dword [esp + 0x1c]
push eax
push esi
push ebx
push edi
push ebp
call fcn.00418600
add esp, 0x14
cmp eax, esi
je 0x407dd5
push 2
push ebp
call dword [0x44f288]
push ebp
call dword [0x44f28c]
jmp 0x40819c
cmp dword [esp + 0x20], 0
je 0x407df1
mov eax, esi
mov esi, dword [esp + 0x20]
cdq
add dword [esi + 0x1a0], eax
adc dword [esi + 0x1a4], edx
jmp 0x407df5
mov esi, dword [esp + 0x20]
imul eax, dword [0x44f2c8], 0x3e8
push eax
push 0x1000
push ebx
push edi
push ebp
call fcn.004186d0
add esp, 0x14
mov edi, eax
push 2
push ebp
call dword [0x44f288]
push ebp
call dword [0x44f28c]
cmp edi, 0xd
jle 0x40819c
test esi, esi
je 0x407e3e
mov eax, edi
cdq
add dword [esi + 0x1a8], eax
adc dword [esi + 0x1ac], edx
cmp dword [esp + 0x18], 0
je 0x407ea1
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 0x40819c
mov esi, eax
cmp esi, edi
jl 0x40819c
jle 0x407ea1
imul eax, dword [0x44f2c8], 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.004186d0
sub esi, edi
add esp, 0x14
cmp eax, esi
jne 0x40819c
mov eax, dword [esp + 0x2c]
cmp word [ebx], ax
jne 0x40819c
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 0x408247
movzx ecx, byte [ebx + 4]
movzx eax, byte [ebx + 5]
imul ecx, edx
add cx, ax
cmp cx, 1
jne 0x40819c
mov edx, 0xd
cmp edi, edx
jle 0x407efb
nop
cmp byte [edx + ebx], 0
je 0x407efb
inc edx
cmp edx, edi
jl 0x407ef0
add edx, 5
cmp edx, edi
jge 0x40819c
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 0x40819c
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 0x407f65
test al, al
je 0x407f61
movzx ecx, al
lea eax, [edx + 0xe]
add eax, ecx
cmp eax, edi
jge 0x407f61
inc edx
add edx, ecx
mov al, byte [edx + ebx]
cmp al, 0xc0
jb 0x407f47
mov ecx, dword [esp + 0x18]
cmp byte [edx + ebx], 0
jne 0x407f6c
dec edx
lea eax, [ecx + edx]
cmp eax, edi
jg 0x40819c
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 0x40819c
cmp dword [esp + 0x1080], 1
mov al, byte [esi + 2]
je 0x408175
test al, al
jne 0x40817f
cmp dword [esp + 0x14], 0x17
mov eax, 0x1c
mov ecx, 1
cmove ecx, eax
movzx eax, byte [esi + 3]
cmp eax, ecx
jne 0x40817f
cmp dword [esp + 0x14], 0x17
mov eax, 4
mov ecx, 0x10
cmove eax, ecx
cmp ebx, eax
jne 0x40817f
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.00421eb0
add esp, 0xc
cmp ebx, 0x3c
jb 0x40802d
cmp ebx, 0xa8c0
jbe 0x408036
mov ebx, 0x12c
mov dword [esp + 0x24], ebx
mov esi, ebx
xor ebp, ebp
add esi, dword [0x44f3f0]
mov eax, 0x44e118
mov ebx, 0x44e13c
adc ebp, dword [0x44f3f4]
cmp edi, 0x17
push 0x4513e0
cmovne ebx, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x34], 0
je 0x408152
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x408152
cmp dword [ebx + 0x18], 0
je 0x408152
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x28], edi
test edi, edi
je 0x408152
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x20], eax
lea eax, [ebx + 8]
push eax
push edi
push ecx
call fcn.004098a0
push dword [ebx + 4]
lea eax, [edi + 0x1c]
push dword [esp + 0x44]
push eax
call fcn.00421eb0
push edi
push ebx
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebp
mov dword [edi + 0x18], 0
call fcn.00409940
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 0x408146
mov eax, dword [esi + 0x14]
cmp eax, dword [0x44f3f4]
jl 0x408117
jg 0x4080f9
mov eax, dword [esi + 0x10]
cmp eax, dword [0x44f3f0]
jb 0x408117
mov ecx, edi
mov edx, esi
mov edi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4081c4
add ecx, 4
add edx, 4
sub edi, 4
jae 0x408102
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 0x4080e1
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 0x4513e0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x40816b
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, 1
jmp 0x408249
test al, al
jne 0x40817f
cmp byte [esi + 3], 0xc
je 0x4081cc
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 0x407f40
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], 0x20
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x24]
jge 0x408247
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1080]
jmp 0x407a36
lea ebp, [esi + 0x18]
jmp 0x408134
lea eax, [edx + edi]
mov edx, dword [esp + 0x10]
add edx, 0xc
lea ecx, [esi + 0xc]
add edx, eax
cmp ecx, edx
jae 0x4081f5
nop
mov al, byte [ecx]
test al, al
je 0x4081f5
movzx eax, al
inc eax
mov byte [ecx], 0x2e
add eax, ecx
mov ecx, eax
cmp eax, edx
jb 0x4081e0
mov ebx, dword [esp + 0x20]
mov byte [ecx], 0
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x40820f
push eax
call fcn.00429c96
add esp, 4
lea eax, [esi + 0xd]
push eax
call fcn.00431b8e
push 2
push 0
push 0
push dword [esp + 0x44]
mov dword [ebx + 0xc8], eax
push eax
push dword [esp + 0x2c]
call fcn.004078f0
add esp, 0x1c
jmp 0x408249
push 2
push ebp
call dword [0x44f288]
push ebp
call dword [0x44f28c]
xor eax, eax
pop edi
pop ebp
mov ecx, dword [esp + 0x105c]
pop esi
pop ebx
xor ecx, esp
call fcn.00420cbf
add esp, 0x1058
ret