Function at 0x1401513d8
Capabilities:
Set socket configuration

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
xor r12d, r12d
mov rsi, r8
mov r15, rdx
mov rdi, rcx
mov r14b, r12b
cmp qword [rcx + 0xf8], r12
jne 0x14015141c
cmp qword [rcx + 0x100], r12
jne 0x14015141c
mov rdx, rcx
lea r8d, [r12 + 7]
lea rcx, [rbp - 0x10]
call fcn.140157e9c
or dword [rsi], 2
mov rbx, r12
mov rcx, qword [rdi + 0x1a0]
test rcx, rcx
je 0x14015147c
mov eax, dword [rdi + 0x6b8]
shr rax, 5
cmp rcx, rax
jge 0x14015167a
cmp byte [rdi + 0x1c9], r12b
jne 0x14015167a
cmp byte [rdi + 0x1c4], r12b
jne 0x14015167a
mov rax, qword [rdi + 0x100]
sub rax, qword [rdi + 0x118]
add rax, rcx
cmp rax, qword [rdi + 0x1100]
je 0x14015167a
mov rbx, rcx
mov rcx, rdi
call fcn.1401503a8
test eax, eax
jne 0x140151823
test rbx, rbx
je 0x1401514ac
mov rdx, qword [rdi + 0x1a8]
mov rcx, qword [rdi + 0xc38]
cmp rdx, rcx
je 0x1401514ac
mov r8, rbx
call fcn.140172530
mov rdx, qword [rdi + 0xc38]
mov qword [rdi + 0x1a8], rdx
cmp byte [rdi + 0x1c4], r12b
jne 0x140151577
cmp dword [rdi + 0x170], 2
mov rcx, qword [rdi + 0x1b0]
jne 0x14015151f
cmp dword [rcx + 0x200], 2
jne 0x14015151f
and dword [rdi + 0x15c], 0xfffffffd
lea rcx, [rbp - 0x10]
mov dword [rdi + 0x170], 1
call fcn.140140d04
xor r8d, r8d
mov rcx, rdi
movups xmm0, xmmword [rax]
movdqu xmmword [rdi + 0x160], xmm0
and dword [rsi], 0xfffffffd
movsxd rdx, dword [rdi + 0x9d0]
call fcn.14013bb34
jmp 0x140151821
mov rax, qword [r15 + 0x2e8]
test dword [rax + 0x84], 0x40003
je 0x14015153d
cmp dword [rcx + 0x200], 1
sete r14b
lea rax, [rdx + rbx]
mov rcx, rdi
mov qword [rdi + 0x1a8], rax
lea r8, [rbp + 0x40]
mov edx, dword [rdi + 0x6b8]
sub rdx, rbx
call fcn.14014fb28
sub qword [rdi + 0x1a8], rbx
test eax, eax
jne 0x140151823
mov rsi, qword [rbp + 0x40]
add rsi, rbx
je 0x14015157a
jmp 0x140151587
mov rsi, r12
test byte [rdi + 0x15c], 0x20
jne 0x140151821
test rsi, rsi
jle 0x140151812
mov qword [rdi + 0x1a0], rsi
test r14b, r14b
jne 0x14015167a
cmp byte [rdi + 0xa1d], r12b
je 0x14015167a
mov rax, qword [rdi + 0xcf0]
test rax, rax
jne 0x1401515ed
mov eax, dword [rdi + 0x6b8]
lea ecx, [rax + rax]
call qword [fcn.1401787a4]
mov qword [rdi + 0xcf0], rax
test rax, rax
jne 0x1401515ed
lea rdx, [0x14000bca8]
mov rcx, rdi
call fcn.14014ba60
mov eax, 0x1b
jmp 0x140151823
test rbx, rbx
je 0x140151604
mov rdx, qword [rdi + 0x1a8]
mov r8, rbx
mov rcx, rax
call fcn.140172530
mov rcx, rbx
jmp 0x14015165b
mov rax, qword [rdi + 0x1a8]
mov dl, byte [rbx + rax]
mov rax, qword [rdi + 0xcf0]
cmp dl, 0xa
jne 0x140151652
mov byte [rcx + rax], recv
inc rcx
mov rax, qword [rdi + 0xcf0]
mov byte [rcx + rax], dl
cmp byte [rdi + 0xa1d], r12b
jne 0x140151655
mov rax, qword [rdi + 0x1100]
cmp rax, 0xffffffffffffffff
je 0x140151655
inc rax
mov qword [rdi + 0x1100], rax
jmp 0x140151655
mov byte [rcx + rax], dl
inc rbx
inc rcx
cmp rbx, rsi
jl 0x140151609
cmp rcx, rsi
je 0x14015167a
mov rax, qword [rdi + 0xcf0]
mov qword [rdi + 0x1a8], rax
mov qword [rdi + 0x1a0], rcx
mov r9, qword [rdi + 0x1a0]
lea rax, [rbp + 0x58]
mov r8, qword [rdi + 0x1a8]
mov rcx, rdi
mov rdx, qword [r15 + 0x310]
mov qword [rsp + 0x20], rax
call fcn.14014bc58
test eax, eax
jne 0x140151823
mov rbx, qword [r15 + 0x310]
lea rax, [rbp + 0x50]
mov qword [rsp + 0x40], r12
mov r14d, 4
mov qword [rsp + 0x38], r12
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
lea rax, [rbp + 0x40]
mov dword [rsp + 0x28], r14d
mov edx, 0x4004747b
mov qword [rsp + 0x20], rax
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x14015170b
lea r9, [rbp + 0x40]
mov dword [rsp + 0x20], r14d
mov edx, 0xffff
mov r8d, 0x1001
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rax, qword [rdi + 0x118]
test rax, rax
je 0x14015174c
mov rbx, qword [rbp + 0x58]
mov edx, 2
mov r8, qword [rdi + 0x1a8]
cmp rax, rbx
mov rcx, rdi
cmovl rbx, rax
mov r9, rbx
call fcn.14014b984
mov rcx, qword [rbp + 0x58]
sub qword [rdi + 0x118], rbx
mov rsi, rcx
sub rsi, rbx
jmp 0x140151753
mov rcx, qword [rbp + 0x58]
mov rsi, rcx
test rsi, rsi
je 0x14015178d
mov r8, qword [rdi + 0x1a8]
mov r9, rsi
sub r8, rsi
mov edx, r14d
add r8, rcx
mov rcx, rdi
call fcn.14014b984
add qword [rdi + 0x100], rsi
mov rcx, rdi
mov rdx, qword [rdi + 0x100]
call fcn.140157de4
mov rcx, qword [rbp + 0x58]
cmp byte [rdi + 0x1c9], r12b
je 0x14015179f
cmp byte [rdi + 0x1cb], r12b
je 0x1401517c9
mov rax, qword [rdi + 0x1100]
cmp qword [rdi + 0x100], rax
jne 0x1401517c9
lea rdx, [0x14000bcc8]
mov byte [rdi + 0x1c4], 1
mov rcx, rdi
call fcn.14014bb34
mov rcx, qword [rbp + 0x58]
mov rax, qword [rdi + 0x1a0]
cmp rax, rcx
je 0x1401517e8
sub rax, rcx
add qword [rdi + 0x1a8], rcx
mov qword [rdi + 0x1a0], rax
jmp 0x140151821
mov rcx, rdi
call fcn.1401503a8
test eax, eax
jne 0x140151823
mov rax, qword [rdi + 0xc38]
mov qword [rdi + 0x1a8], rax
mov qword [rdi + 0x1a0], r12
cmp byte [rdi + 0x1c4], r12b
je 0x140151821
and dword [rdi + 0x15c], 0xfffffffd
mov rcx, rdi
call fcn.14014b5e4
xor eax, eax
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret