Function at 0x140232e70
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1e8
cmp qword [rcx + 0x638], 0
mov rdi, rcx
je 0x14023391c
mov ecx, 0xa0
lea rsi, [rdi + 0x90]
xor ebp, ebp
call fcn.1403cd4b0
mov rcx, qword [rdi + 0x90]
mov r9, rsi
lea r8, [0x140290ab0]
mov rbx, rax
lea rax, [0x1404ea990]
mov qword [rsp + 0x1b0], rbp
mov qword [rsp + 0x1a8], rax
lea rax, [rsp + 0x1a8]
mov rdx, rax
mov qword [rsp + 0x50], rax
call fcn.1402904f0
xor r11d, r11d
mov qword [rbx], rax
mov rcx, qword [rsp + 0x50]
mov r8, rax
mov qword [rbx + 0x18], r11
lea r12, [rbx + 0x68]
lea r9, [rbx + 8]
mov qword [rbx + 0x20], r11
call fcn.140281890
mov edx, 2
mov eax, 0x17
cmp word [rsp + 0x1a8], 2
cmove eax, edx
mov byte [rbx + 0x44], 0
lea rcx, [rbx + 0x48]
mov dword [rbx + 0x40], eax
call fcn.140281890
mov rdx, rsi
mov rcx, r12
call fcn.1402c18f0
lea rcx, [r8 + 0x28]
mov rdx, r9
call fcn.1402bacd0
jmp 0x140232f62
mov rdx, rbx
lea rcx, [rdi + 0x640]
lea rbx, [rsp + 0x90]
call fcn.140370030
mov rsi, qword [rdi + 0x640]
xor r10d, r10d
xor r9d, r9d
mov qword [rsp + 0x80], rdi
mov rbp, qword [rdi + 0x638]
cmp qword [rsi + 8], 0xffffffffffffffff
mov dword [rsp + 0x90], r9d
mov qword [rsp + 0x98], r10
mov qword [rsp + 0xa0], r10
jne 0x140233040
cmp word [rbp], 2
mov eax, 2
mov edi, 0x17
mov rcx, qword [rsp + 0x50]
cmove edi, eax
mov rax, qword [rsi]
mov qword [rsp + 0x30], rbx
lea r8, [rsi + 8]
mov dword [rsp + 0x28], 6
mov dword [rsp + 0x20], 1
lea rdx, [rax + 0x28]
mov r9d, edi
call fcn.1402baad0
mov rcx, qword [rsp + 0x50]
call fcn.1402ee430
test al, al
jne 0x14023302e
mov dword [rsi + 0x40], edi
mov rcx, qword [rsp + 0x50]
mov byte [rsi + 0x44], 0
call fcn.140281890
movups xmm0, xmmword [rsp + 0x1a8]
movups xmmword [rsi + 0x48], xmm0
movups xmm1, xmmword [rsp + 0x1b4]
movups xmmword [rsi + 0x54], xmm1
lea r8, [0x14050b5c0]
mov rdx, rbx
mov rcx, rbx
call fcn.1402c4e30
mov rcx, rbx
lea r13, [rsi + 0x68]
call fcn.1402ee430
test al, al
je 0x140233330
mov rax, qword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
lea rdi, [rsp + 0x100]
cmp qword [rsi + 0x88], 0
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xa0]
movups xmmword [rsp + 0xc8], xmm2
mov qword [rsp + 0xd8], rax
je 0x1402330bf
mov rax, qword [rsi + 0x80]
mov rdx, qword [rsi + 0x90]
mov rcx, rdi
mov qword [rsp + 0x128], rdx
mov rdx, r13
mov qword [rsp + 0x118], rax
call qword [rax + 8]
jmp 0x1402330da
xor r8d, r8d
mov qword [rsp + 0x118], r8
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x128], r8
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rsi + 0x98]
mov rcx, rdi
movups xmm3, xmmword [rsp + 0xc8]
mov qword [rsp + 0xe0], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0xf8], rdx
mov rbx, qword [rax + 0x20]
mov rax, qword [rsp + 0x118]
movups xmmword [rsp + 0xe8], xmm3
call qword [rax + 0x18]
lea r12, [rsp + 0x170]
mov rdx, rax
lea r8, [0x1404e6a00]
mov rcx, r12
call rbx
lea rsi, [rsp + 0x138]
mov rdx, r12
mov rcx, rsi
call fcn.1402c1350
mov rcx, r12
call fcn.1402c2ef0
mov rax, qword [rsp + 0x168]
mov rcx, rsi
mov rbx, qword [rax + 0x88]
mov rax, qword [rsp + 0x150]
call qword [rax + 0x18]
lea r13, [rsp + 0x88]
mov rcx, qword [rsp + 0x50]
mov rdx, rax
mov r8, r13
call rbx
mov rdx, qword [rsp + 0x50]
mov rcx, r12
call fcn.1402c1350
mov rcx, qword [rsp + 0x50]
call fcn.1402c2ef0
mov rcx, qword [rsp + 0x50]
mov rdx, r12
call fcn.1402c1350
mov rcx, r12
call fcn.1402c2ef0
cmp qword [rsp + 0x1c8], 0
je 0x1402332b7
mov rax, qword [rsp + 0x1d0]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x140233206
lea rax, [rsp + 0xe0]
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rbx, [0x1402a97f0]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rbx
call r8
jmp 0x1402332cb
mov rbx, qword [rax + 0x10]
mov rax, qword [rsp + 0xe0]
xor ecx, ecx
movups xmm4, xmmword [rsp + 0xe8]
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0xf8]
movups xmmword [rsp + 0x178], xmm4
mov qword [rsp + 0x188], rax
lea rax, [rsp + 0x7f]
mov qword [rsp + 0xa8], rax
call fcn.1402a0950
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0xa8]
mov qword [rax + 8], rdx
movups xmm5, xmmword [rsp + 0x178]
movups xmmword [rax + 0x10], xmm5
mov rdx, qword [rsp + 0x188]
mov qword [rax + 0x20], rdx
lea rdx, [0x140296850]
mov qword [rax], rdx
xor edx, edx
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0x88], rax
call fcn.140294320
mov rcx, qword [rsp + 0x50]
mov rdx, r13
call rbx
mov rcx, r13
call fcn.14029af00
jmp 0x1402332cb
lea rax, fcn.1402c22f0
mov qword [rsp + 0x170], rax
call fcn.1403db6c0
mov rcx, qword [rsp + 0x50]
call fcn.1402c2ef0
mov rcx, rsi
call fcn.1402c2ef0
mov rcx, rdi
call fcn.1402c2ef0
jmp 0x14023391c
lea rdx, [rsp + 0x80]
mov ecx, 0xb8
mov r12, qword [rsi]
mov qword [rsp + 0x138], rdx
call fcn.14027f3d0
mov rdi, qword [rsi + 8]
mov rbx, rax
mov qword [rsp + 0x140], rax
xor eax, eax
mov qword [rbx + 0x20], rax
lea rax, [0x1402b7130]
mov rcx, rbx
mov qword [rbx + 0x28], rax
call fcn.1402a05e0
xor eax, eax
mov qword [rbx + 0x68], rdi
mov rdx, r13
mov dword [rbx + 0x38], eax
xor eax, eax
lea rcx, [rbx + 0x80]
mov r13d, 0x1c
mov qword [rbx + 0x40], rax
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x50], rax
mov qword [rbx + 0x58], rax
lea rax, [0x1402bb450]
mov qword [rbx + 0x60], rax
mov rax, qword [rsp + 0x80]
mov byte [rbx + 0x70], 0
mov qword [rbx + 0x78], rax
call fcn.14029b210
mov r14d, dword [rsi + 0x40]
mov eax, 0x10
mov qword [rsp + 0x148], rbx
cmp word [rbp], 2
cmove r13, rax
lea rax, [rbx + 0x38]
cmp r14d, 2
mov qword [rsp + 0x58], rax
je 0x1402333f3
cmp r14d, 0x17
jne 0x1402335a3
lea rdi, [r12 + 0x28]
lea r15, [r12 + 0x40]
xor eax, eax
lock cmpxchg qword [r15], rax
mov qword [rsp + 0x170], rax
test rax, rax
jne 0x1402334a1
mov r8, qword [rsp + 0x50]
mov r9d, 0x10
mov edx, 0xc8000006
movabs rax, 0x4660ddf325a207b9
mov qword [rsp + 0x1a8], rax
movabs rax, 0x3e06748ce576e98e
mov qword [rsp + 0x1b0], rax
xor eax, eax
mov rcx, qword [rsi + 8]
mov dword [rsp + 0x100], eax
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x170]
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x140233496
mov qword [rsp + 0x170], rdi
mov rax, qword [rsp + 0x170]
xchg qword [r15], rax
mov r15, qword [rsp + 0x170]
cmp rdi, r15
je 0x1402335a3
test r15, r15
je 0x1402335a3
lea rdx, [rsp + 0x1aa]
xor eax, eax
mov ecx, 0x1a
cmp r14d, 2
mov rdi, rdx
mov r8d, 0x1c
mov rdx, qword [rsp + 0x50]
lea r9, [rbx + 0x38]
rep stosb byte [rdi], al
mov eax, 0x10
mov word [rsp + 0x1a8], r14w
cmove r8, rax
mov rcx, qword [rsi + 8]
call fcn.140286240
mov rcx, qword [rsp + 0x58]
call fcn.1402ee430
test al, al
je 0x14023353b
lea rdi, [rsp + 0x170]
mov edx, 0x2726
mov rcx, rdi
call fcn.1402c59f0
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call fcn.1402c7480
test al, al
je 0x14023353b
mov rcx, qword [r12 + 0x30]
jmp 0x1402338c6
mov byte [rbx + 0x70], 1
mov rcx, qword [r12 + 0x30]
xor edi, edi
call fcn.1402a0ca0
mov rcx, qword [rsi + 8]
xor esi, esi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rsi
xor r9d, r9d
mov r8d, r13d
mov rdx, rbp
mov dword [rsp + 0x20], edi
call r15
mov esi, eax
call qword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov rcx, qword [r12 + 0x30]
mov r8d, eax
test esi, esi
jne 0x140233596
cmp eax, 0x3e5
je 0x140233596
xor r9d, r9d
mov rdx, rbx
call fcn.1402a0d20
jmp 0x1402338ce
mov rdx, rbx
call fcn.1402a0a10
jmp 0x1402338ce
lea rdi, [r12 + 0x38]
xor eax, eax
lock cmpxchg qword [rdi], rax
je 0x1402335b6
mov r12, rax
jmp 0x1402335f3
mov rax, qword [r12 + 0x28]
mov rdx, qword [rsp + 0x50]
xor r11d, r11d
lea r8, [0x1402905f0]
mov rcx, qword [rax]
lea rax, [0x1404ea940]
mov qword [rsp + 0x1b0], r11
mov qword [rsp + 0x1a8], rax
mov r9, qword [rcx + 0x30]
call fcn.1402904f0
mov r12, rax
xchg qword [rdi], rax
mov rcx, qword [rsi + 8]
test byte [rsi + 0x10], 3
jne 0x14023364f
cmp rcx, 0xffffffffffffffff
jne 0x140233617
mov rcx, qword [rsp + 0x58]
mov edx, 0x2719
call fcn.1402c6200
jmp 0x1402338c1
mov dword [rsp + 0x1a8], 1
mov r8, qword [rsp + 0x50]
mov edx, 0x8004667e
call qword [sym.imp.WSOCK32.dll_ioctlsocket]
mov edx, eax
mov rcx, qword [rsp + 0x58]
mov edi, eax
shr edx, 0x1f
call fcn.140285ad0
test edi, edi
js 0x1402338c1
or byte [rsi + 0x10], 2
mov rcx, qword [rsi + 8]
lea r9, [rbx + 0x38]
mov r8, r13
mov rdx, rbp
call fcn.140287590
test eax, eax
je 0x1402338c1
lea rdi, [rsp + 0x170]
mov edx, 0x2734
mov rcx, rdi
call fcn.1402c59f0
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call fcn.1402c7400
test al, al
jne 0x1402336b6
mov rcx, qword [rsp + 0x50]
mov edx, 0x2733
call fcn.1402c59f0
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call fcn.1402c7400
test al, al
je 0x1402338c1
xor r10d, r10d
xor r9d, r9d
lea rcx, [r12 + 0x30]
mov dword [rbx + 0x38], r9d
mov qword [rbx + 0x40], r10
mov qword [rbx + 0x48], r10
mov r14, qword [rsi + 8]
mov qword [rsp + 0x100], rcx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [r12 + 0x248], 0
mov byte [rsp + 0x108], 1
je 0x140233711
mov rcx, qword [r12 + 0x28]
mov rdx, rbx
call fcn.1402a1cd0
lea rcx, [rsp + 0x100]
call fcn.140287ca0
jmp 0x1402338ce
mov rax, qword [r12 + 0x160]
xor ecx, ecx
xor r8d, r8d
mov qword [rsp + 0x1a8], r14
mov qword [rsp + 0x170], rcx
lea r15, [r12 + 0x160]
mov qword [rsp + 0x178], rcx
lea rdx, [rax + 1]
mov qword [rsp + 0x1b0], r8
mov qword [rsp + 0x1b8], r8
cmp rdx, qword [r12 + 0x1a0]
jae 0x14023378e
mov rax, r14
xor edx, edx
mov r13, qword [r12 + 0x198]
div qword [r12 + 0x1a0]
lea rax, [r12 + 0x168]
mov rsi, rdx
shl rsi, 4
add r13, rsi
mov rdx, qword [r13]
cmp rdx, rax
jne 0x1402337eb
jmp 0x1402337bd
xor eax, eax
lea r8, [0x140429d00]
mov rcx, qword [r8 + rax*8]
cmp rdx, rcx
jb 0x1402337b0
inc rax
cmp rax, 0x16
jne 0x140233797
mov rcx, qword [0x140429db0]
mov rdx, rcx
mov rcx, r15
call fcn.1402bdfa0
jmp 0x14023375c
mov r8, qword [rsp + 0x50]
mov rcx, r15
call fcn.1402bde00
add rsi, qword [r12 + 0x198]
mov qword [r13 + 8], rax
mov rax, qword [rsi + 8]
mov rdx, qword [rsi + 8]
mov qword [rsi], rax
inc qword [r12 + 0x160]
jmp 0x14023382f
mov rax, qword [r13 + 8]
mov rax, qword [rax]
cmp rax, rdx
je 0x140233806
cmp r14, qword [rdx + 0x10]
jne 0x140233801
xor esi, esi
jmp 0x140233832
mov rdx, qword [rdx]
jmp 0x1402337f2
mov r8, qword [rsp + 0x50]
mov rdx, rax
mov rcx, r15
call fcn.1402bde00
mov qword [r13 + 8], rax
mov rax, qword [r12 + 0x198]
inc qword [r12 + 0x160]
mov rdx, qword [rax + rsi + 8]
mov sil, 1
lea rcx, [rsp + 0x1b0]
mov qword [rsp + 0x50], rdx
call fcn.1402be0f0
mov rcx, rdi
call fcn.1402be0f0
xor edx, edx
mov qword [rbx + 0x20], rdx
mov rdx, qword [rsp + 0x50]
mov rax, qword [rdx + 0x20]
test rax, rax
je 0x14023386a
mov qword [rax + 0x20], rbx
mov qword [rdx + 0x20], rbx
jmp 0x140233872
mov qword [rdx + 0x20], rbx
mov qword [rdx + 0x18], rbx
mov rcx, qword [r12 + 0x28]
call fcn.1402a0ca0
test sil, sil
jne 0x1402338a0
jmp 0x1402336ff
mov rcx, qword [r12 + 0x60]
call fcn.1402b3a70
jmp 0x1402336ff
mov rcx, qword [r12 + 0x28]
mov rdx, rbx
call fcn.1402a1cd0
xor eax, eax
lea rcx, [rsp + 0x138]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x140], rax
call fcn.1402b7350
jmp 0x14023391c
add rsp, 0x1e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret