Function at 0x14009a370
Capabilities:
Set socket configuration

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov r14, rdx
mov rdi, rcx
mov rcx, qword [rcx]
call fcn.140099210
test al, al
jne 0x14009a7d7
xor r12d, r12d
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], socket
mov byte [rsp + 0x60], r12b
lea edx, [r12 + 1]
lea ecx, [rdx + 1]
lea r8d, [r12 + 6]
call qword [sym.imp.WS2_32.dll_socket]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14009a420
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, [rbp - 0x80]
call fcn.14009ca80
nop
mov r8, rax
lea rdx, str.socket_failed_
lea rcx, [rsp + 0x40]
call fcn.140006670
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140013320
lea rcx, [rsp + 0x40]
call fcn.140004d00
nop
lea rcx, [rbp - 0x80]
call fcn.140004d00
jmp 0x14009a875
mov qword [rbp + 0x18], r12
lea rax, [rbp]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], 0x20
xor r9d, r9d
lea r8, [rbp + 0x30]
mov rdx, rsi
mov rcx, qword [rdi + 8]
call qword [0x1401ac540]
cmp eax, 1
jne 0x14009a478
lea rdx, str.AcceptEx_returned_immediately__which_is_not_supported.
lea rcx, [rsp + 0x60]
call fcn.14009a1f0
jmp 0x14009a86c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x14009a4c1
mov edx, eax
lea rcx, [rsp + 0x40]
call fcn.14009ca80
nop
mov r8, rax
lea rdx, str.AcceptEx_failed_
lea rcx, [rbp - 0x80]
call fcn.140006670
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140013320
lea rcx, [rbp - 0x80]
call fcn.140004d00
nop
jmp 0x14009a862
mov rcx, qword [rdi]
call fcn.140099000
mov qword [rbp + 0x20], rax
mov byte [rbp + 0x28], 0
lea rax, [rbp]
mov qword [rdi + 0x10], rax
mov rcx, qword [rdi]
call fcn.140099000
lea rbx, [rax + 0x70]
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_ecd3045ae117995741eda7556b21d356___void___.0
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdi
lea rax, [rbp - 0x40]
mov qword [rbp - 8], rax
mov qword [rbp - 0x48], r12
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x40]
call qword [method.std::_Func_impl_no_alloc_class__lambda_ecd3045ae117995741eda7556b21d356___void___.virtual_0]
mov r8, rax
mov qword [rbp - 0x48], rax
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x14009a539
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov rcx, r12
mov qword [rbp - 8], rcx
mov r8, qword [rbp - 0x48]
mov r9, qword [rbx + 0x38]
test r9, r9
je 0x14009a58b
mov rcx, r9
cmp r9, rbx
jne 0x14009a583
mov rax, qword [r9]
lea rdx, [rbp - 0x40]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rcx, rax
mov qword [rbp - 8], rax
mov r8, qword [rbx + 0x38]
test r8, r8
je 0x14009a57d
mov rax, qword [r8]
cmp r8, rbx
setne dl
mov rcx, r8
call qword [rax + 0x20]
mov rcx, qword [rbp - 8]
mov r8, qword [rbp - 0x48]
jmp 0x14009a587
mov r8, qword [rbp - 0x48]
jmp 0x14009a58b
mov qword [rbp - 8], rcx
mov qword [rbx + 0x38], r12
test r8, r8
je 0x14009a5cc
lea rax, [rbp - 0x80]
cmp r8, rax
jne 0x14009a5c8
mov rax, qword [r8]
mov rdx, rbx
mov rcx, r8
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbx + 0x38], rax
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x14009a5c2
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov rcx, qword [rbp - 8]
jmp 0x14009a5cc
mov qword [rbx + 0x38], r8
test rcx, rcx
je 0x14009a5e1
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov rcx, qword [rdi]
call fcn.140098d10
mov rcx, qword [rdi]
call fcn.140099000
lea rbx, [rax + 0x70]
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x14009a60e
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov qword [rbx + 0x38], r12
mov qword [rdi + 0x10], r12
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp + 0xc8]
lea rdx, [rbp]
mov rcx, qword [rdi + 8]
call qword [sym.imp.WS2_32.dll_WSAGetOverlappedResult]
cmp eax, 1
je 0x14009a69a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e3
je 0x14009a684
mov edx, eax
lea rcx, [rsp + 0x40]
call fcn.14009ca80
nop
mov r8, rax
lea rdx, str.AcceptEx_failed_
lea rcx, [rbp - 0x80]
call fcn.140006670
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140013320
lea rcx, [rbp - 0x80]
call fcn.140004d00
nop
jmp 0x14009a862
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
test eax, eax
jne 0x14009a791
jmp 0x14009a802
mov dword [rsp + 0x20], 8
lea r9, [rdi + 8]
mov edx, 0xffff
mov r8d, 0x700b
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x14009a700
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, [rsp + 0x40]
call fcn.14009ca80
nop
mov r8, rax
lea rdx, str.setsockopt_failed_
lea rcx, [rbp - 0x80]
call fcn.140006670
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140013320
lea rcx, [rbp - 0x80]
call fcn.140004d00
nop
jmp 0x14009a862
mov rcx, qword [rdi]
call fcn.140060be0
mov rdx, rax
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov rbx, rax
mov rcx, qword [rdi]
call fcn.140060be0
cmp rbx, rax
jne 0x14009a82d
mov r8, rsi
mov rdx, qword [rdi]
mov rcx, r14
call fcn.14009abe0
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14009a776
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009a771
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009a78b
call fcn.14010bf48
mov rax, r14
add rsp, 0x170
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14011263c
nop
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
nop
mov edx, eax
lea rcx, [rbp - 0x80]
call fcn.14009ca80
nop
mov r8, rax
lea rdx, str.TcpListener::accept__closesocket_failed_
lea rcx, [rbp - 0x40]
call fcn.140006670
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.14000f4b0
lea rdx, [0x14019a638]
lea rcx, [rsp + 0x40]
call fcn.14010d400
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x40]
call fcn.140099910
lea rdx, [0x14019b2f0]
lea rcx, [rsp + 0x40]
call fcn.14010d400
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x40]
call fcn.140099910
lea rdx, [0x14019b2f0]
lea rcx, [rsp + 0x40]
call fcn.14010d400
int3
lea rcx, [rsp + 0x40]
call fcn.14009ce60
nop
mov r8, rax
lea rdx, str.CreateIoCompletionPort_failed_
lea rcx, [rbp - 0x80]
call fcn.140006670
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140013320
lea rcx, [rbp - 0x80]
call fcn.140004d00
nop
lea rcx, [rsp + 0x40]
call fcn.140004d00
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
lea r8, [rsp + 0x60]
lea rdx, str.TcpListener::accept_
lea rcx, [rbp - 0x40]
call fcn.1400066d0
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.14000f4b0
lea rdx, [0x14019a638]
lea rcx, [rsp + 0x40]
call fcn.14010d400
int3