Function at 0x180025498
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor edi, edi
lea r13, [0x18002527c]
cmp qword [0x1800290d0], rdi
lea rax, [0x180025364]
mov rbx, rcx
cmovne r13, rax
mov qword [rsp + 0x60], r13
cmp dword [rcx + 8], edi
ja 0x180025501
lea rax, [rcx + 0x20]
cmp rax, qword [rax]
jne 0x180025501
cmp qword [rcx + 0x50], rdi
jne 0x180025501
mov ecx, 0x3e8
mov r14d, edi
call fcn.18001740c
mov qword [rbx + 0x40], rax
jmp 0x180025c25
mov r14d, 1
or ebp, 0xffffffff
mov esi, 0xfffffffe
cmp dword [rbx + 0x30], edi
jne 0x180025c2a
mov ecx, 0x3e8
call fcn.18001740c
mov rcx, rbx
mov qword [rbx + 0x40], rax
call fcn.180016b58
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x180025967
mov r12, qword [rax + 0x68]
mov qword [rbx + 0x48], rdi
mov r15, r12
test r12, r12
je 0x180025967
xor r13d, r13d
mov rax, qword [r15 + 0x68]
mov rdi, r15
cmp rax, r12
mov r15, r13
mov r8d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
cmovne r15, rax
mov ecx, dword [rdi + 8]
cmp ecx, r8d
jg 0x1800259cd
je 0x180025952
sub ecx, 2
je 0x18002584c
sub ecx, r14d
je 0x18002574a
sub ecx, r14d
je 0x180025952
sub ecx, r14d
je 0x18002569e
cmp ecx, 5
jne 0x180025952
mov rsi, qword [rdi]
cmp dword [rsi + 0x10], r8d
jne 0x180025952
mov rcx, qword [rdi + 0x70]
cmp rcx, 0xffffffffffffffff
jne 0x18002561e
mov eax, dword [rsi + 0x58]
bt eax, 0xb
jae 0x18002570f
mov ecx, eax
btr ecx, 0xb
sub dword [rsi + 0x7c], r14d
mov dword [rsi + 0x58], ecx
jne 0x1800255f7
test r14b, cl
jne 0x1800255f7
test al, 0x40
je 0x1800255f7
and eax, 0xfffff7bf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x1800255f7
mov rax, qword [rsi + 8]
add dword [rax + 8], ebp
mov r9, qword [rsi + 0x100]
test r9, r9
je 0x18002570f
mov ecx, dword [rdi + 0x40]
call fcn.1800176c4
mov ecx, eax
call fcn.180012840
mov rcx, rsi
jmp 0x18002570a
cmp dword [rdi + 0x40], r13d
jl 0x180025679
lea r9, [rsi + 0x110]
mov dword [rsp + 0x20], 8
mov edx, 0xffff
mov r8d, 0x700b
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x180025679
mov rax, qword [rsi + 0x130]
mov qword [rdi + 0x1a8], rax
mov rax, qword [rsi + 0x100]
mov qword [rsi + 0x130], rdi
test rax, rax
je 0x18002570f
xor edx, edx
mov rcx, rsi
call rax
jmp 0x18002570f
mov rcx, qword [rdi + 0x70]
call qword [sym.imp.WS2_32.dll_closesocket]
or qword [rdi + 0x70], 0xffffffffffffffff
test dword [rsi + 0x58], 0x800
je 0x18002570f
mov rdx, rdi
mov rcx, rsi
call fcn.1800152c8
jmp 0x18002570f
mov rsi, qword [rdi + 0x70]
mov rax, qword [rdi + 0x60]
sub qword [rsi + 0x60], rax
dec qword [rsi + 0x68]
sub dword [rsi + 0x7c], r14d
jne 0x1800256d1
mov eax, dword [rsi + 0x58]
test r14b, al
jne 0x1800256d1
test al, 0x40
je 0x1800256d1
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x1800256d1
mov rax, qword [rsi + 8]
add dword [rax + 8], ebp
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
mov qword [rcx], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov qword [rcx + 8], rax
mov r9, qword [rdi + 0x78]
test r9, r9
je 0x18002570f
mov ecx, dword [rdi + 0x40]
mov eax, r13d
test ecx, ecx
jns 0x180025700
call fcn.1800176c4
mov ecx, eax
call fcn.180012840
mov rcx, rdi
mov edx, eax
call r9
mov ecx, dword [rsi + 0x78]
dec ecx
mov dword [rsi + 0x78], ecx
mov eax, dword [rsi + 0x58]
test r14b, al
je 0x180025952
test ecx, ecx
jne 0x180025952
test al, 8
jne 0x180025952
or eax, 8
mov dword [rsi + 0x58], eax
mov rax, qword [rbx + 0x50]
mov qword [rsi + 0x50], rax
mov qword [rbx + 0x50], rsi
jmp 0x180025952
mov rsi, qword [rdi + 0x80]
cmp dword [rsi + 0x10], r8d
jne 0x180025952
mov rax, qword [rdi + 0x60]
sub qword [rsi + 0x60], rax
sub dword [rsi + 0x7c], r14d
jne 0x180025786
mov eax, dword [rsi + 0x58]
test r14b, al
jne 0x180025786
test al, 0x40
je 0x180025786
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x180025786
mov rax, qword [rsi + 8]
add dword [rax + 8], ebp
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
mov qword [rcx], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov qword [rcx + 8], rax
test dword [rsi + 0x58], 0x100000
je 0x1800257da
mov rcx, qword [rdi + 0xa8]
cmp rcx, 0xffffffffffffffff
je 0x1800257c1
call qword [sym.imp.KERNEL32.dll_UnregisterWait]
or qword [rdi + 0xa8], 0xffffffffffffffff
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x1800257da
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0xa0], r13
mov r9, qword [rdi + 0x70]
test r9, r9
je 0x180025807
mov ecx, dword [rdi + 0x40]
call fcn.1800176c4
mov ecx, eax
call fcn.180012840
cmp eax, 0xfffff011
mov ecx, 0xfffff00f
cmove eax, ecx
mov rcx, rdi
mov edx, eax
call r9
mov eax, dword [rsi + 0x100]
dec eax
mov dword [rsi + 0x100], eax
cmp qword [rsi + 0x108], r13
je 0x18002570f
test eax, eax
jne 0x18002570f
mov eax, dword [rsi + 0x58]
test al, 8
jne 0x18002570f
or eax, 8
mov dword [rsi + 0x58], eax
mov rax, qword [rbx + 0x50]
mov qword [rsi + 0x50], rax
mov qword [rbx + 0x50], rsi
jmp 0x18002570f
mov rsi, qword [rdi + 0x78]
cmp dword [rsi + 0x10], r8d
jne 0x180025952
sub dword [rsi + 0x7c], r14d
jne 0x18002587d
mov eax, dword [rsi + 0x58]
test r14b, al
jne 0x18002587d
test al, 0x40
je 0x18002587d
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x18002587d
mov rax, qword [rsi + 8]
add dword [rax + 8], ebp
mov rcx, qword [rdi + 0x18]
mov ebp, r13d
mov rax, qword [rdi + 0x10]
mov qword [rcx], rax
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov qword [rcx + 8], rax
mov ecx, dword [rdi + 0x40]
test ecx, ecx
js 0x18002590f
mov rcx, qword [rsi + 0x110]
xor r9d, r9d
mov edx, 0xffff
mov dword [rsp + 0x20], r13d
mov r8d, 0x7010
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x180025907
or qword [rsi + 0xf8], 0xffffffffffffffff
or dword [rsi + 0x58], 0x19000
mov dword [rsi + 0x100], r13d
mov dword [rsi + 0x88], recv
mov qword [rsi + 0xc0], r13
mov qword [rsi + 0xf0], r13
mov qword [rsi + 0x80], rsi
mov qword [rsi + 0x108], r13
add dword [rbx + 0xa8], r14d
jmp 0x180025916
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x180025914
call fcn.1800176c4
mov ebp, eax
mov ecx, ebp
call fcn.180012840
mov edx, eax
mov rcx, rdi
call qword [rdi + reloc.WS2_32.dll_WSASetLastError]
mov ecx, dword [rsi + 0x78]
mov eax, dword [rsi + 0x58]
dec ecx
mov dword [rsi + 0x78], ecx
test r14b, al
je 0x18002594f
test ecx, ecx
jne 0x18002594f
test al, 8
jne 0x18002594f
or eax, 8
mov dword [rsi + 0x58], eax
mov rax, qword [rbx + 0x50]
mov qword [rsi + 0x50], rax
mov qword [rbx + 0x50], rsi
or ebp, 0xffffffff
test r15, r15
jne 0x180025552
mov r13, qword [rsp + 0x60]
xor edi, edi
mov esi, 0xfffffffe
mov rax, qword [rbx + 0x70]
mov qword [rbx + 0x88], rax
test rax, rax
je 0x180025998
mov rdx, qword [rbx + 0x88]
mov rcx, rdx
mov rax, qword [rdx + 0x68]
mov qword [rbx + 0x88], rax
call qword [rdx + reloc.WS2_32.dll_WSASetLastError]
cmp qword [rbx + 0x88], rdi
jne 0x180025977
mov rax, qword [rbx + 0x60]
mov qword [rbx + 0x78], rax
test rax, rax
je 0x1800259bd
mov rdx, qword [rbx + 0x78]
mov rcx, rdx
mov rax, qword [rdx + 0x68]
mov qword [rbx + 0x78], rax
call qword [rdx + reloc.WS2_32.dll_WSASetLastError]
cmp qword [rbx + 0x78], rdi
jne 0x1800259a5
cmp dword [rbx + 0x30], edi
je 0x180025a5d
mov eax, edi
jmp 0x180025ac5
sub ecx, 0xd
je 0x180025952
sub ecx, r14d
je 0x180025a40
sub ecx, r14d
je 0x180025a2d
cmp ecx, r14d
jne 0x180025952
mov rcx, qword [rdi]
mov eax, dword [rcx + 0x58]
mov byte [rcx + 0xd8], r13b
test r14b, al
je 0x180025a16
test al, 8
jne 0x180025952
or eax, 8
mov dword [rcx + 0x58], eax
mov rax, qword [rbx + 0x50]
mov qword [rcx + 0x50], rax
mov qword [rbx + 0x50], rcx
jmp 0x180025952
mov rax, qword [rcx + 0xd0]
test rax, rax
je 0x180025952
call rax
jmp 0x180025952
mov rdx, qword [rdi]
mov r8, rdi
mov rcx, rbx
call fcn.1800171bc
jmp 0x180025952
mov rdx, qword [rdi]
cmp dword [rdx + 0x10], r8d
jne 0x180025952
mov r8, rdi
mov rcx, rbx
call fcn.180015ccc
jmp 0x180025952
cmp dword [rbx + 8], edi
ja 0x180025a6f
lea rax, [rbx + 0x20]
cmp rax, qword [rax]
je 0x1800259c6
cmp qword [rbx + 0x48], rdi
jne 0x1800259c6
cmp qword [rbx + 0x50], rdi
jne 0x1800259c6
cmp qword [rbx + 0x70], rdi
jne 0x1800259c6
mov rax, qword [rbx + 0x58]
test rax, rax
je 0x180025ac3
mov rcx, rax
mov rax, qword [rax + 0x60]
test rax, rax
jne 0x180025a96
test rcx, rcx
je 0x180025ac3
mov rax, qword [rcx + 0x80]
sub rax, qword [rbx + 0x40]
cmp rax, rsi
jl 0x180025abb
mov eax, esi
jmp 0x180025ac5
test rax, rax
cmovs eax, edi
jmp 0x180025ac5
mov eax, ebp
mov edx, eax
mov rcx, rbx
call r13
mov rax, qword [rbx + 0x68]
mov qword [rbx + 0x80], rax
test rax, rax
je 0x180025bf6
mov rdx, qword [rbx + 0x80]
mov rcx, rdx
mov rax, qword [rdx + 0x68]
mov qword [rbx + 0x80], rax
call qword [rdx + reloc.WS2_32.dll_WSASetLastError]
cmp qword [rbx + 0x80], rdi
jne 0x180025ae1
jmp 0x180025bf6
mov rax, qword [r8 + 0x50]
mov qword [rbx + 0x50], rax
mov edx, dword [r8 + 0x58]
mov ecx, dword [r8 + 0x10]
and edx, 0xfffffff7
mov dword [r8 + 0x58], edx
cmp ecx, 9
jg 0x180025b8d
je 0x180025b4a
sub ecx, r14d
je 0x180025b5c
sub ecx, r14d
je 0x180025b4a
sub ecx, r14d
je 0x180025bf6
sub ecx, r14d
je 0x180025bf6
sub ecx, 2
jne 0x180025bf6
test r14b, dl
je 0x180025bf6
or edx, 2
mov dword [r8 + 0x58], edx
jmp 0x180025bb1
test r14b, dl
je 0x180025bf6
mov al, byte [r8 + 0xd8]
test al, al
jne 0x180025bf6
mov rdx, qword [r8 + 0x28]
mov rax, qword [r8 + 0x20]
mov qword [rdx], rax
mov rdx, qword [r8 + 0x20]
mov rax, qword [r8 + 0x28]
mov qword [rdx + 8], rax
jmp 0x180025bc8
sub ecx, 0xa
je 0x180025bf6
sub ecx, 2
je 0x180025beb
sub ecx, r14d
je 0x180025be4
sub ecx, r14d
je 0x180025bf6
cmp ecx, r14d
jne 0x180025bf6
test r14b, dl
je 0x180025bf6
cmp dword [r8 + 0x78], edi
jne 0x180025bf6
mov rcx, qword [r8 + 0x28]
mov rax, qword [r8 + 0x20]
mov qword [rcx], rax
mov rcx, qword [r8 + 0x20]
mov rax, qword [r8 + 0x28]
mov qword [rcx + 8], rax
mov rax, qword [r8 + 8]
add dword [rax + 8], ebp
or dword [r8 + 0x58], 2
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x180025bf6
mov rcx, r8
call rax
jmp 0x180025bf6
test r14b, dl
je 0x180025bf6
jmp 0x180025bb1
mov rdx, r8
mov rcx, rbx
call fcn.180014ee0
mov r8, qword [rbx + 0x50]
test r8, r8
jne 0x180025b07
cmp dword [rbx + 8], edi
ja 0x18002550f
lea rax, [rbx + 0x20]
cmp rax, qword [rax]
jne 0x18002550f
test r8, r8
jne 0x18002550f
mov r14d, edi
cmp dword [rbx + 0x30], edi
je 0x180025c2d
mov dword [rbx + 0x30], edi
mov rbx, qword [rsp + 0x68]
mov eax, r14d
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret