Function at 0x140099870
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
cmp dword [rcx + 0xce18], 0
mov rbx, rcx
jne 0x1400998a4
mov r9, qword [rcx + 0xe8]
lea r8, str.Freeing_session_resource
mov edx, 2
call fcn.140091868
mov dword [rcx + 0xce18], edx
cmp dword [rcx + 0xce18], 2
mov edi, 0xffffffdb
jne 0x1400998dd
mov rax, qword [rcx + 0x1e0]
jmp 0x1400998ce
mov rcx, rax
call fcn.140092f94
cmp eax, edi
je 0x1400998e8
mov rax, qword [rbx + 0x1e0]
test rax, rax
jne 0x1400998bb
mov dword [rbx + 0xce18], 3
cmp dword [rbx + 0xce18], 3
jne 0x140099911
jmp 0x1400998fb
mov eax, edi
jmp 0x140099d24
mov rcx, rax
call fcn.140091e48
cmp eax, edi
je 0x1400998e8
mov rax, qword [rbx + 0x1f8]
test rax, rax
jne 0x1400998ef
mov dword [rbx + 0xce18], 4
test byte [rbx + 0x68], 2
je 0x140099a22
mov rax, qword [rbx + 0xa0]
test rax, rax
je 0x14009993d
mov r8, qword [rax + 0x38]
test r8, r8
je 0x14009993d
lea rdx, [rbx + 0xa8]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x170]
test rax, rax
je 0x14009995f
mov r8, qword [rax + 0x28]
test r8, r8
je 0x14009995f
lea rdx, [rbx + 0x178]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x198]
test rax, rax
je 0x140099986
mov r9, qword [rax + 0x28]
test r9, r9
je 0x140099986
lea r8, [rbx + 0x1a0]
mov edx, 1
mov rcx, rbx
call r9
mov rax, qword [rbx + 0x180]
test rax, rax
je 0x1400999a8
mov r8, qword [rax + 0x20]
test r8, r8
je 0x1400999a8
lea rdx, [rbx + 0x190]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x100]
test rax, rax
je 0x1400999ca
mov r8, qword [rax + 0x28]
test r8, r8
je 0x1400999ca
lea rdx, [rbx + 0x108]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x128]
test rax, rax
je 0x1400999ee
mov r9, qword [rax + 0x28]
test r9, r9
je 0x1400999ee
lea r8, [rbx + 0x130]
xor edx, edx
mov rcx, rbx
call r9
mov rax, qword [rbx + 0x110]
test rax, rax
je 0x140099a10
mov r8, qword [rax + 0x20]
test r8, r8
je 0x140099a10
lea rdx, [rbx + 0x120]
mov rcx, rbx
call r8
mov rcx, qword [rbx + 0x88]
test rcx, rcx
je 0x140099a22
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xe8]
test rcx, rcx
je 0x140099a34
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x158]
test rcx, rcx
je 0x140099a46
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x140099a55
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x140099a64
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x160]
test rcx, rcx
je 0x140099a76
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x1a8]
test rcx, rcx
je 0x140099a88
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x1b0]
test rcx, rcx
je 0x140099a9a
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x1b8]
test rcx, rcx
je 0x140099aac
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x1c0]
test rcx, rcx
je 0x140099abe
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xf0]
test rcx, rcx
je 0x140099ad0
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x138]
test rcx, rcx
je 0x140099ae2
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x140]
test rcx, rcx
je 0x140099af4
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x148]
test rcx, rcx
je 0x140099b06
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0x150]
test rcx, rcx
je 0x140099b18
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcc58]
test rcx, rcx
je 0x140099b2a
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcc70]
test rcx, rcx
je 0x140099b3c
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcf48]
test rcx, rcx
je 0x140099b4e
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcf68]
test rcx, rcx
je 0x140099b60
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcf80]
test rcx, rcx
je 0x140099b72
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcfb0]
test rcx, rcx
je 0x140099b84
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcfc0]
test rcx, rcx
je 0x140099b96
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcfa0]
test rcx, rcx
je 0x140099ba8
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcfe8]
test rcx, rcx
je 0x140099bba
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xcff8]
test rcx, rcx
je 0x140099bcc
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd008]
test rcx, rcx
je 0x140099bde
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd038]
test rcx, rcx
je 0x140099bf0
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd048]
test rcx, rcx
je 0x140099c02
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd070]
test rcx, rcx
je 0x140099c14
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd0b0]
test rcx, rcx
je 0x140099c26
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd0c0]
test rcx, rcx
je 0x140099c38
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd0d8]
test rcx, rcx
je 0x140099c4a
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd100]
test rcx, rcx
je 0x140099c5c
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd130]
test rcx, rcx
je 0x140099c6e
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd270]
test rcx, rcx
je 0x140099c80
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd3a8]
test rcx, rcx
je 0x140099c92
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rbx + 0xd248]
test rcx, rcx
je 0x140099ca4
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
cmp qword [rbx + 0x4250], 0
je 0x140099cd8
mov rcx, qword [rbx + 0x4258]
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
jmp 0x140099cd8
mov rcx, rdi
call fcn.1400968c4
mov rcx, qword [rdi + 0x18]
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rdx, rbx
mov rcx, rdi
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rdi, qword [rbx + 0x1d0]
test rdi, rdi
jne 0x140099cbd
cmp dword [rbx + 0x210], edi
je 0x140099d07
mov rcx, qword [rbx + 0x200]
and dword [rsp + 0x30], edi
lea r8, [rsp + 0x30]
mov edx, 0x8004667e
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov rcx, qword [rbx + 0xb0]
test rcx, rcx
je 0x140099d19
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rdx, rbx
mov rcx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret