Function at 0x42b751
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
mov ebx, ecx
mov byte [ebp - 5], 0
push esi
push edi
mov esi, edx
lea edi, [ebx + 0x80]
mov dword [ebp - 0x10], esi
mov eax, dword [edi + 0x10]
or eax, dword [edi + 0x14]
jne 0x42b788
mov eax, dword [edi + 0x18]
or eax, dword [edi + 0x1c]
jne 0x42b788
lea eax, [ebp - 0x2c]
push eax
push 7
pop edx
call fcn.0042f716
pop ecx
mov eax, dword [ebp + 8]
or dword [eax], 2
cmp dword [edi + 0xac], 0
jne 0x42b995
mov ecx, ebx
call fcn.0042aa41
test eax, eax
jne 0x42bb1e
cmp byte [edi + 0xbe], 0
mov eax, dword [ebx + 0x908]
mov dword [edi + 0xb0], eax
jne 0x42b862
cmp dword [edi + 0x88], 2
mov ecx, dword [edi + 0xb4]
jne 0x42b81b
cmp dword [ecx + 0x1a0], 2
jne 0x42b81b
and dword [edi + 0x74], 0xfffffffd
lea eax, [ebp - 0x2c]
push eax
mov dword [edi + 0x88], 1
call fcn.0043480b
add edi, 0x78
mov esi, eax
mov eax, dword [ebp + 8]
pop ecx
mov ecx, ebx
movsd dword es:[edi], dword [esi]
and dword [eax], 0xfffffffd
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x6d4]
cdq
push edx
push eax
xor edx, edx
call fcn.0041941d
pop ecx
pop ecx
jmp 0x42bb1c
mov eax, dword [esi + 0x2b8]
test dword [eax + 0x44], 0x40003
je 0x42b836
cmp dword [ecx + 0x1a0], 1
sete al
jmp 0x42b839
mov al, byte [ebp - 5]
mov edx, dword [ebx + 0x4ec]
mov ecx, ebx
mov byte [ebp - 5], al
lea eax, [ebp - 0x18]
push eax
call fcn.0042aac7
pop ecx
test eax, eax
jne 0x42bb1e
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x42b873
jmp 0x42b867
xor edx, edx
mov dword [ebp - 0x14], edx
test byte [edi + 0x74], 0x20
jne 0x42bb1c
test edx, edx
jg 0x42b88b
mov edx, edi
mov ecx, ebx
call fcn.0042b733
test eax, eax
je 0x42bb1c
jmp 0x42bb1e
cmp byte [ebp - 5], 0
mov dword [edi + 0xac], edx
jne 0x42b977
cmp byte [ebx + 0x70a], 0
je 0x42b977
cmp dword [ebx + 0x974], 0
jne 0x42b8ea
mov eax, dword [ebx + 0x4ec]
mov esi, dword [0x46f048]
add eax, eax
push eax
mov ecx, esi
call dword [0x4553fc]
call esi
mov dword [ebx + 0x974], eax
pop ecx
test eax, eax
jne 0x42b8ea
push str.Failed_to_alloc_scratch_buffer
push ebx
call fcn.0041d6ad
pop ecx
pop ecx
push 0x1b
pop eax
jmp 0x42bb1e
xor ecx, ecx
xor esi, esi
mov eax, dword [edi + 0xb0]
mov al, byte [esi + eax]
mov byte [ebp - 5], al
mov dl, al
mov eax, dword [ebx + 0x974]
cmp dl, 0xa
jne 0x42b950
mov byte [eax + ecx], 0xd
inc ecx
mov eax, dword [ebx + 0x974]
mov byte [ecx + eax], dl
cmp byte [ebx + 0x70a], 0
jne 0x42b953
mov edi, dword [ebx + 0xc64]
mov eax, dword [ebx + 0xc60]
and eax, edi
mov dword [ebp - 0x18], edi
lea edi, [ebx + 0x80]
cmp eax, 0xffffffff
je 0x42b953
add dword [ebx + 0xc60], 1
adc dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xc64], eax
jmp 0x42b953
mov byte [eax + ecx], dl
mov edx, dword [ebp - 0x14]
inc esi
inc ecx
cmp esi, edx
jl 0x42b8ee
mov esi, dword [ebp - 0x10]
cmp ecx, edx
je 0x42b977
mov eax, dword [ebx + 0x974]
mov edx, ecx
mov dword [edi + 0xb0], eax
mov dword [edi + 0xac], ecx
mov eax, dword [esi + 0x2b8]
test dword [eax + 0x44], 0x30000
je 0x42b995
mov ecx, ebx
call fcn.004373ca
test eax, eax
jne 0x42bb1e
mov edx, dword [esi + 0x2d4]
lea eax, [ebp - 0x18]
push eax
push dword [edi + 0xac]
mov ecx, ebx
push dword [edi + 0xb0]
call fcn.0041d75c
add esp, 0xc
test eax, eax
jne 0x42bb1e
mov esi, dword [esi + 0x2d4]
lea eax, [ebp - 0x10]
xor ecx, ecx
push ecx
push ecx
push eax
push 4
lea eax, [ebp - 0x14]
push eax
push ecx
push ecx
push 0x4004747b
push esi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x42b9fa
push 4
lea eax, [ebp - 0x14]
push eax
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
or eax, ecx
mov eax, esi
mov dword [ebp - 0x14], ecx
cdq
mov dword [ebp - 0xc], eax
je 0x42ba5b
mov ecx, edx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x14], ecx
jg 0x42ba26
mov edx, dword [ebp - 0x10]
jl 0x42ba2e
cmp edx, eax
jb 0x42ba2e
mov edx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
push edx
push dword [edi + 0xb0]
mov ecx, ebx
push 2
pop edx
call fcn.0041dc17
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
sub dword [edi + 0x30], ecx
sbb dword [edi + 0x34], eax
mov eax, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0xc], eax
sbb edx, dword [ebp - 0x14]
mov ecx, eax
mov dword [ebp - 0x18], edx
or ecx, edx
je 0x42ba9b
push eax
mov eax, dword [edi + 0xb0]
mov ecx, ebx
sub eax, dword [ebp - 0xc]
add eax, esi
push eax
push 4
pop edx
call fcn.0041dc17
mov eax, dword [ebp - 0xc]
add dword [edi + 0x18], eax
mov eax, dword [ebp - 0x18]
adc dword [edi + 0x1c], eax
mov eax, dword [edi + 0x18]
pop ecx
pop ecx
mov ecx, dword [edi + 0x1c]
mov dword [ebx + 0x770], eax
mov dword [ebx + 0x774], ecx
cmp byte [edi + 0xc3], 0
je 0x42baad
cmp byte [edi + 0xc5], 0
je 0x42bad7
mov eax, dword [edi + 0x18]
cmp eax, dword [ebx + 0xc60]
jne 0x42bad7
mov eax, dword [edi + 0x1c]
cmp eax, dword [ebx + 0xc64]
jne 0x42bad7
push str.We_are_completely_uploaded_and_fine
push ebx
mov byte [edi + 0xbe], 1
call fcn.0041d632
pop ecx
pop ecx
mov eax, dword [edi + 0xac]
cmp eax, esi
je 0x42baf1
sub eax, esi
add dword [edi + 0xb0], esi
mov dword [edi + 0xac], eax
jmp 0x42bb1c
mov ecx, ebx
call fcn.0042aa41
test eax, eax
jne 0x42bb1e
mov eax, dword [ebx + 0x908]
and dword [edi + 0xac], 0
cmp byte [edi + 0xbe], 0
mov dword [edi + 0xb0], eax
jne 0x42b875
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret