Function at 0x14012b9e0
Capabilities:
Set socket configuration

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
xor r12d, r12d
movaps xmmword [rsp + 0x70], xmm6
mov rsi, r8
mov r15, rdx
mov rdi, rcx
mov r14b, r12b
cmp qword [rcx + 0x100], r12
jne 0x14012ba2c
cmp qword [rcx + 0x108], r12
jne 0x14012ba2c
mov rdx, rcx
lea r8d, [r12 + 7]
lea rcx, [rbp - 0x20]
call fcn.140131b40
or dword [rsi], 2
mov rbx, r12
mov rcx, qword [rdi + 0x198]
test rcx, rcx
je 0x14012ba8c
mov eax, dword [rdi + 0x688]
shr rax, 5
cmp rcx, rax
jge 0x14012bc8a
cmp byte [rdi + 0x1c9], r12b
jne 0x14012bc8a
cmp byte [rdi + 0x1c4], r12b
jne 0x14012bc8a
mov rax, qword [rdi + 0x108]
sub rax, qword [rdi + 0x120]
add rax, rcx
cmp rax, qword [rdi + 0x10c0]
je 0x14012bc8a
mov rbx, rcx
mov rcx, rdi
call fcn.14012aa00
test eax, eax
jne 0x14012be5a
test rbx, rbx
je 0x14012babc
mov rdx, qword [rdi + 0x1a0]
mov rcx, qword [rdi + 0xbe0]
cmp rdx, rcx
je 0x14012babc
mov r8, rbx
call fcn.140145200
mov rdx, qword [rdi + 0xbe0]
mov qword [rdi + 0x1a0], rdx
cmp byte [rdi + 0x1c4], r12b
jne 0x14012bb87
cmp dword [rdi + 0x168], 2
mov rcx, qword [rdi + 0x1a8]
jne 0x14012bb2f
cmp dword [rcx + 0x200], 2
jne 0x14012bb2f
and dword [rdi + 0x154], 0xfffffffd
lea rcx, [rbp - 0x20]
mov dword [rdi + 0x168], 1
call fcn.1401234a0
xor r8d, r8d
mov rcx, rdi
movups xmm0, xmmword [rax]
movdqu xmmword [rdi + 0x158], xmm0
and dword [rsi], 0xfffffffd
movsxd rdx, dword [rdi + 0x998]
call fcn.14011e3f0
jmp 0x14012be58
mov rax, qword [r15 + 0x2e0]
test dword [rax + 0x84], 0x40003
je 0x14012bb4d
cmp dword [rcx + 0x200], 1
sete r14b
lea rax, [rdx + rbx]
mov rcx, rdi
mov qword [rdi + 0x1a0], rax
lea r8, [rbp + 0x40]
mov edx, dword [rdi + 0x688]
sub rdx, rbx
call fcn.14012a260
sub qword [rdi + 0x1a0], rbx
test eax, eax
jne 0x14012be5a
mov rsi, qword [rbp + 0x40]
add rsi, rbx
je 0x14012bb8a
jmp 0x14012bb97
mov rsi, r12
test byte [rdi + 0x154], 0x20
jne 0x14012be58
test rsi, rsi
jle 0x14012be49
mov qword [rdi + 0x198], rsi
test r14b, r14b
jne 0x14012bc8a
cmp byte [rdi + 0x9de], r12b
je 0x14012bc8a
mov rax, qword [rdi + 0xc98]
test rax, rax
jne 0x14012bbfd
mov eax, dword [rdi + 0x688]
lea ecx, [rax + rax]
call qword [fcn.1401515b0]
mov qword [rdi + 0xc98], rax
test rax, rax
jne 0x14012bbfd
lea rdx, str.Failed_to_alloc_scratch_buffer
mov rcx, rdi
call fcn.140132250
mov eax, 0x1b
jmp 0x14012be5a
test rbx, rbx
je 0x14012bc14
mov rdx, qword [rdi + 0x1a0]
mov r8, rbx
mov rcx, rax
call fcn.140145200
mov rcx, rbx
jmp 0x14012bc6b
mov rax, qword [rdi + 0x1a0]
mov dl, byte [rbx + rax]
mov rax, qword [rdi + 0xc98]
cmp dl, 0xa
jne 0x14012bc62
mov byte [rcx + rax], reloc.WS2_32.dll_listen
inc rcx
mov rax, qword [rdi + 0xc98]
mov byte [rcx + rax], dl
cmp byte [rdi + 0x9de], r12b
jne 0x14012bc65
mov rax, qword [rdi + 0x10c0]
cmp rax, 0xffffffffffffffff
je 0x14012bc65
inc rax
mov qword [rdi + 0x10c0], rax
jmp 0x14012bc65
mov byte [rcx + rax], dl
inc rbx
inc rcx
cmp rbx, rsi
jl 0x14012bc19
cmp rcx, rsi
je 0x14012bc8a
mov rax, qword [rdi + 0xc98]
mov qword [rdi + 0x1a0], rax
mov qword [rdi + 0x198], rcx
mov r9, qword [rdi + 0x198]
lea rax, [rbp + 0x58]
mov r8, qword [rdi + 0x1a0]
mov rcx, rdi
mov rdx, qword [r15 + 0x308]
mov qword [rsp + 0x20], rax
call fcn.140134af0
test eax, eax
jne 0x14012be5a
lea rcx, [rbp - 0x20]
call fcn.1401234a0
movups xmm0, xmmword [rdi + 0x1b0]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x20]
movups xmm6, xmmword [rax]
movdqu xmmword [rbp - 0x30], xmm0
movdqu xmmword [rbp - 0x20], xmm6
call fcn.140123520
mov r14d, 4
cmp rax, 0x3e8
jle 0x14012bd55
mov rbx, qword [r15 + 0x308]
lea rax, [rbp + 0x50]
mov qword [rsp + 0x40], r12
xor r9d, r9d
mov qword [rsp + 0x38], r12
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov edx, 0x4004747b
lea rax, [rbp + 0x40]
mov dword [rsp + 0x28], r14d
mov rcx, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x14012bd4d
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]
movdqu xmmword [rdi + 0x1b0], xmm6
mov rax, qword [rdi + 0x120]
test rax, rax
je 0x14012bd96
mov rbx, qword [rbp + 0x58]
mov edx, 2
mov r8, qword [rdi + 0x1a0]
cmp rax, rbx
mov rcx, rdi
cmovl rbx, rax
mov r9, rbx
call fcn.140132170
mov rcx, qword [rbp + 0x58]
sub qword [rdi + 0x120], rbx
mov rsi, rcx
sub rsi, rbx
jmp 0x14012bd9d
mov rcx, qword [rbp + 0x58]
mov rsi, rcx
test rsi, rsi
je 0x14012bdd7
mov r8, qword [rdi + 0x1a0]
mov r9, rsi
sub r8, rsi
mov edx, r14d
add r8, rcx
mov rcx, rdi
call fcn.140132170
add qword [rdi + 0x108], rsi
mov rcx, rdi
mov rdx, qword [rdi + 0x108]
call fcn.140131a80
mov rcx, qword [rbp + 0x58]
cmp byte [rdi + 0x1c9], r12b
je 0x14012bde9
cmp byte [rdi + 0x1cb], r12b
je 0x14012be00
mov rax, qword [rdi + 0x10c0]
cmp qword [rdi + 0x108], rax
jne 0x14012be00
mov byte [rdi + 0x1c4], 1
mov rax, qword [rdi + 0x198]
cmp rax, rcx
je 0x14012be1f
sub rax, rcx
add qword [rdi + 0x1a0], rcx
mov qword [rdi + 0x198], rax
jmp 0x14012be58
mov rcx, rdi
call fcn.14012aa00
test eax, eax
jne 0x14012be5a
mov rax, qword [rdi + 0xbe0]
mov qword [rdi + 0x1a0], rax
mov qword [rdi + 0x198], r12
cmp byte [rdi + 0x1c4], r12b
je 0x14012be58
and dword [rdi + 0x154], 0xfffffffd
mov rcx, rdi
call fcn.14012fec0
xor eax, eax
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret