Function at 0x100272a0
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x38]
push ebp
push esi
mov esi, dword [esp + 0x38]
xor ebp, ebp
or dword [ebx], 2
push edi
mov byte [esp + 0x13], 0
mov edi, dword [esi + 0x114]
mov dword [esp + 0x3c], ebp
test edi, edi
je 0x1002732b
mov eax, dword [esi + 0x4ac]
shr eax, 5
cmp edi, eax
jge 0x1002731f
cmp byte [esi + 0x145], 0
jne 0x1002731f
cmp byte [esi + 0x140], 0
jne 0x1002731f
mov ecx, dword [esi + 0xa0]
mov eax, edi
sub ecx, dword [esi + 0xa8]
mov ebx, dword [esi + 0xa4]
sbb ebx, dword [esi + 0xac]
cdq
add ecx, eax
adc ebx, edx
cmp ecx, dword [esi + 0xc70]
jne 0x10027315
cmp ebx, dword [esi + 0xc74]
je 0x1002731b
mov ebp, edi
mov dword [esp + 0x3c], edi
mov ebx, dword [esp + 0x44]
test edi, edi
je 0x1002732b
test ebp, ebp
je 0x10027577
cmp dword [esi + 0x8c0], 0
jne 0x10027351
push dword [esi + 0x4ac]
call dword [0x100b9034]
add esp, 4
mov dword [esi + 0x8c0], eax
test eax, eax
je 0x10027498
test ebp, ebp
je 0x10027370
mov eax, dword [esi + 0x118]
mov ecx, dword [esi + 0x8c0]
cmp eax, ecx
je 0x10027370
push ebp
push eax
push ecx
call fcn.10066800
add esp, 0xc
cmp byte [esi + 0x140], 0
mov edx, dword [esi + 0x8c0]
mov dword [esi + 0x118], edx
jne 0x1002779e
cmp dword [esi + 0xf0], 2
mov ecx, dword [esi + 0x11c]
jne 0x100273e6
cmp dword [ecx + 0x30], 2
jne 0x100273e6
and dword [esi + 0xdc], 0xfffffffd
lea eax, [esp + 0x18]
push eax
mov dword [esi + 0xf0], 1
call fcn.10013520
push 0
movdqu xmm0, xmmword [eax]
movdqu xmmword [esi + 0xe0], xmm0
and dword [ebx], 0xfffffffd
mov eax, dword [esi + 0x678]
cdq
push edx
push eax
push esi
call fcn.1000d700
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x200]
test dword [eax + 0x44], 0x40003
je 0x10027402
cmp dword [ecx + 0x30], 1
sete bl
jmp 0x10027406
mov bl, byte [esp + 0x13]
lea eax, [edx + ebp]
mov dword [esi + 0x118], eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [esi + 0x4ac]
sub eax, ebp
push eax
push esi
call fcn.100257d0
sub dword [esi + 0x118], ebp
add esp, 0xc
test eax, eax
jne 0x100277b9
mov edi, dword [esp + 0x14]
add edi, ebp
mov dword [esp + 0x14], edi
je 0x1002779e
test edi, edi
jle 0x100277a7
mov dword [esi + 0x114], edi
test bl, bl
jne 0x1002754d
cmp byte [esi + 0x6b3], bl
je 0x1002754d
cmp dword [esi + 0x938], eax
jne 0x100274a5
mov eax, dword [esi + 0x4ac]
add eax, eax
push eax
call dword [0x100b9034]
add esp, 4
mov dword [esi + 0x938], eax
test eax, eax
jne 0x100274a5
push str.Failed_to_alloc_scratch_buffer
push esi
call fcn.10020190
add esp, 8
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test ebp, ebp
je 0x100274be
push ebp
push dword [esi + 0x118]
push dword [esi + 0x938]
call fcn.10067bf0
add esp, 0xc
mov edx, ebp
mov ecx, ebp
cmp ebp, edi
jge 0x10027535
mov ebp, dword [esp + 0x14]
lea ebx, [ebx]
mov eax, dword [esi + 0x118]
mov bl, byte [edx + eax]
mov eax, dword [esi + 0x938]
cmp bl, 0xa
jne 0x10027524
mov byte [ecx + eax], 0xd
inc ecx
mov eax, dword [esi + 0x938]
mov byte [ecx + eax], bl
cmp byte [esi + 0x6b3], 0
jne 0x10027527
mov edi, dword [esi + 0xc70]
mov eax, edi
mov ebx, dword [esi + 0xc74]
and eax, ebx
cmp eax, 0xffffffff
je 0x10027527
add edi, 1
mov dword [esi + 0xc70], edi
adc ebx, 0
mov dword [esi + 0xc74], ebx
jmp 0x10027527
mov byte [ecx + eax], bl
inc edx
inc ecx
cmp edx, ebp
jl 0x100274d0
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
cmp ecx, edi
je 0x1002754d
mov eax, dword [esi + 0x938]
mov edi, ecx
mov dword [esi + 0x118], eax
mov dword [esi + 0x114], ecx
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x200]
test dword [eax + 0x44], 0x30000
je 0x1002757b
push ebp
push edi
push esi
call fcn.10040740
add esp, 0xc
test eax, eax
je 0x1002757b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0x44]
push eax
push dword [esi + 0x114]
push dword [esi + 0x118]
push dword [ebx + 0x21c]
push esi
call fcn.10020dc0
add esp, 0x14
test eax, eax
jne 0x100277b9
lea eax, [esp + 0x28]
push eax
call fcn.10013520
sub esp, 0xc
mov ecx, esp
sub esp, 0x10
movdqu xmm0, xmmword [eax]
movdqu xmmword [esp + 0x38], xmm0
movdqu xmm0, xmmword [esi + 0x128]
movdqu xmmword [ecx], xmm0
mov ecx, esp
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx], xmm0
call fcn.100135c0
add esp, 0x20
test edx, edx
jl 0x1002763a
jg 0x100275ea
cmp eax, 0x3e8
jbe 0x1002763a
mov edi, dword [ebx + 0x21c]
lea eax, [esp + 0x14]
push 0
push 0
push eax
push 4
lea eax, [esp + 0x4c]
push eax
push 0
push 0
push 0x4004747b
push edi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x1002762c
push 4
lea eax, [esp + 0x40]
push eax
push 0x1001
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
movdqu xmm0, xmmword [esp + 0x18]
movdqu xmmword [esi + 0x128], xmm0
mov ebp, dword [esi + 0xa8]
mov eax, ebp
mov ebx, dword [esi + 0xac]
or eax, ebx
mov dword [esp + 0x3c], ebx
je 0x1002769c
mov eax, dword [esp + 0x44]
cdq
cmp ebx, edx
jg 0x1002765f
jl 0x10027667
cmp ebp, eax
jb 0x10027667
mov ebp, eax
mov dword [esp + 0x3c], edx
mov ebx, edx
push ebp
push dword [esi + 0x118]
push 2
push esi
call fcn.10020100
mov edi, dword [esp + 0x54]
add esp, 0x10
sub dword [esi + 0xa8], ebp
mov eax, edi
cdq
sbb dword [esi + 0xac], ebx
mov ebx, eax
sub ebx, ebp
mov eax, edx
sbb eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
jmp 0x100276ab
mov edi, dword [esp + 0x44]
mov eax, edi
cdq
mov ebx, eax
mov dword [esp + 0x3c], edx
mov eax, edx
mov ecx, ebx
or ecx, eax
je 0x100276ee
mov eax, dword [esi + 0x118]
sub eax, ebx
push ebx
add eax, edi
push eax
push 4
push esi
call fcn.10020100
add dword [esi + 0xa0], ebx
mov eax, dword [esp + 0x4c]
adc dword [esi + 0xa4], eax
push dword [esi + 0xa4]
push dword [esi + 0xa0]
push esi
call fcn.10031a20
mov edi, dword [esp + 0x60]
add esp, 0x1c
cmp byte [esi + 0x145], 0
je 0x10027700
cmp byte [esi + 0x147], 0
je 0x10027735
mov eax, dword [esi + 0xa0]
cmp eax, dword [esi + 0xc70]
jne 0x10027735
mov eax, dword [esi + 0xa4]
cmp eax, dword [esi + 0xc74]
jne 0x10027735
push str.We_are_completely_uploaded_and_fine
push esi
mov byte [esi + 0x140], 1
call fcn.10020260
mov edi, dword [esp + 0x4c]
add esp, 8
mov eax, dword [esi + 0x114]
cmp eax, edi
je 0x10027757
add dword [esi + 0x118], edi
sub eax, edi
mov dword [esi + 0x114], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
cmp dword [esi + 0x8c0], 0
jne 0x1002777d
push dword [esi + 0x4ac]
call dword [0x100b9034]
add esp, 4
mov dword [esi + 0x8c0], eax
test eax, eax
je 0x10027498
cmp byte [esi + 0x140], 0
mov eax, dword [esi + 0x8c0]
mov dword [esi + 0x118], eax
mov dword [esi + 0x114], 0
je 0x100277b7
jmp 0x100277a7
test byte [esi + 0xdc], 0x20
jne 0x100277b7
and dword [esi + 0xdc], 0xfffffffd
push esi
call fcn.1001f800
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret