Function at 0x1400038bc
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rax, qword [0x14003b008]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14, rcx
call fcn.1400036c4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x14003d958], eax
mov edi, eax
mov dword [rbp - 0x31], eax
jbe 0x140003919
mov rax, qword [0x14003d350]
jmp 0x140003914
and dword [rax + 0x18], 0
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14000390c
mov rbx, qword [0x14003d350]
mov esi, 1
mov dword [0x14003d958], edi
test rbx, rbx
je 0x1400039a4
cmp dword [rbx + 0x18], 0
mov rsi, qword [rbx + 0x20]
jne 0x140003941
mov ecx, dword [rbx]
add ecx, edi
mov dword [rbx + 0x18], ecx
cmp dword [rbx + 0x18], edi
ja 0x140003999
mov rcx, qword [rbx + 0x10]
call qword [rbx + VariantCopy]
mov ecx, dword [rbx]
mov eax, edi
mov edx, dword [rbx + 0x18]
sub eax, edx
cmp eax, ecx
lea eax, [rcx + rdi]
ja 0x140003960
lea eax, [rcx + rdx]
test byte [rbx + 4], 1
mov dword [rbx + 0x18], eax
jne 0x140003999
cmp qword [0x14003d350], 0
lea rcx, [0x14003d350]
je 0x14000398c
mov rax, qword [rcx]
cmp rax, rbx
je 0x14000398c
lea rcx, [rax + 0x20]
cmp qword [rcx], 0
jne 0x14000397a
cmp qword [rcx], 0
je 0x140003999
mov rax, qword [rbx + 0x20]
mov qword [rcx], rax
mov rbx, rsi
test rsi, rsi
jne 0x140003930
lea esi, [rbx + 1]
mov rbx, qword [r14]
test rbx, rbx
je 0x140003d23
mov r13d, 0x800
mov r15, qword [rbx]
lea r8, [rbp - 0x31]
mov edx, esi
mov rcx, rbx
call fcn.140002558
mov eax, dword [rbx + 0xd0]
test eax, 0x808
jne 0x140003a30
test sil, al
je 0x140003b02
test al, al
js 0x140003b02
bt eax, 0xc
jae 0x140003a30
mov rcx, qword [rbx + 0x30]
lea r8, [rbp - 0x39]
lea rdx, [rbp - 9]
mov dword [rbp - 0x39], reloc.WS2_32.dll_recv
call qword [sym.imp.WS2_32.dll_accept]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140003a2b
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.140003080
mov rdi, rax
test rax, rax
jne 0x140003a62
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
mov esi, 1
mov eax, dword [rbx + 0xd0]
bt eax, 0xa
jae 0x140003a4c
cmp qword [rbx + 0x68], 0
jne 0x140003a4c
or eax, r13d
mov dword [rbx + 0xd0], eax
test dword [rbx + 0xd0], r13d
je 0x140003d17
mov rcx, qword [rbx + 8]
jmp 0x140003c62
movzx eax, word [rbp - 7]
lea rdx, [rbp + 7]
mov word [rdi + 0x10], ax
mov rcx, rdi
mov eax, dword [rbp - 5]
mov dword [rdi + 0x14], eax
call fcn.140002c14
mov rcx, qword [rdi + 0x30]
lea r8, [rbp - 0x35]
mov esi, 1
mov edx, 0x8004667e
mov dword [rbp - 0x35], esi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov rcx, rdi
call fcn.140003408
mov rax, qword [r14]
lea edx, [rsi + 3]
mov qword [rdi], rax
mov qword [r14], rdi
or dword [rdi + 0xd0], 4
mov eax, dword [rdi + 0xd0]
mov ecx, eax
xor ecx, dword [rbx + 0xd0]
and ecx, 0x200
xor ecx, eax
mov dword [rdi + 0xd0], ecx
mov rcx, rdi
mov rax, qword [rbx + 0x80]
mov qword [rdi + 0x80], rax
mov rax, qword [rbx + 0x88]
mov qword [rdi + 0x88], rax
mov rax, qword [rbx + 0x70]
mov qword [rdi + 0x70], rax
mov rax, qword [rbx + 0x78]
mov qword [rdi + 0x78], rax
jmp 0x140003b92
test al, 0x10
je 0x140003b9f
test eax, 0x3000
je 0x140003a30
mov rcx, qword [rbx + 0x30]
lea rax, [rbp - 0x35]
and dword [rbp - 0x39], 0
lea r9, [rbp - 0x39]
mov edx, 0xffff
mov qword [rsp + 0x20], rax
mov r8d, 0x1007
mov dword [rbp - 0x35], 4
call qword [sym.imp.WS2_32.dll_getsockopt]
mov ecx, dword [rbp - 0x39]
test eax, eax
cmovne ecx, esi
mov dword [rbp - 0x39], ecx
cmp ecx, 0xb
je 0x140003b5a
cmp ecx, 0x8c
jne 0x140003b5f
xor ecx, ecx
mov dword [rbp - 0x39], ecx
and dword [rbx + 0xd0], 0xffffffef
test ecx, ecx
mov rcx, rbx
je 0x140003b8d
lea rdx, [rbp + 7]
call fcn.140002c14
mov r8, rax
lea rdx, str.error_connecting_to__s
mov rcx, rbx
call fcn.1400025ac
jmp 0x140003a30
mov edx, 3
xor r8d, r8d
call fcn.140002558
jmp 0x140003a30
test al, 0x40
jne 0x140003a30
bt eax, 0xc
jae 0x140003c42
mov rdx, qword [rbx + 0x48]
mov rax, rdx
sub rax, qword [rbx + 0x50]
cmp rax, 0x200
jae 0x140003be8
cmp rdx, 0x300000
jae 0x140003be8
add rdx, 0x200
lea rcx, [rbx + 0x40]
call fcn.140002b48
test eax, eax
jne 0x140003be8
or dword [rbx + 0xd0], r13d
mov rdi, qword [rbx + 0x40]
lea r9, [rbp - 0x2d]
add rdi, qword [rbx + 0x50]
mov rcx, rbx
mov r8d, dword [rbx + 0x48]
mov rdx, rdi
sub r8d, dword [rbx + 0x50]
call fcn.1400030e8
test eax, eax
jle 0x140003c35
cdqe
lea r8, [rbp - 0x19]
add qword [rbx + 0x50], rax
mov edx, 5
mov qword [rbp - 0x21], rax
mov rcx, rbx
mov qword [rbp - 0x29], rdi
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x19], xmm0
call fcn.140002558
jmp 0x140003c42
cmp dword [rbp - 0x2d], 0
je 0x140003c42
or dword [rbx + 0xd0], r13d
test dword [rbx + 0xd0], 0x2000
je 0x140003a30
mov rcx, rbx
call fcn.140003384
jmp 0x140003a30
mov rcx, qword [rcx]
cmp qword [rcx], rbx
jne 0x140003c5f
mov rax, qword [rbx]
mov qword [rcx], rax
mov rdx, qword [0x14003d940]
mov rcx, rdx
test rdx, rdx
je 0x140003cb0
mov rdi, qword [rcx]
cmp qword [rcx + 8], rbx
jne 0x140003ca8
lea rax, [0x14003d940]
cmp rdx, rcx
je 0x140003c99
mov rax, qword [rax]
cmp qword [rax], rcx
jne 0x140003c91
mov qword [rax], rdi
call fcn.140019e44
mov rdx, qword [0x14003d940]
mov rcx, rdi
test rdi, rdi
jne 0x140003c7c
mov rax, qword [rbx + 8]
cmp rbx, qword [rax + 0x10]
jne 0x140003cbf
and qword [rax + 0x10], 0
mov rax, qword [rbx + 8]
cmp rbx, qword [rax + 0x20]
jne 0x140003cce
and qword [rax + 0x20], 0
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 7]
call fcn.140002558
mov rcx, qword [rbx + 0x30]
cmp rcx, 0xffffffffffffffff
je 0x140003ced
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rbx + 0x40]
call fcn.140019e44
mov rcx, qword [rbx + 0x58]
call fcn.140019e44
xor edx, edx
mov r8d, 0xd8
mov rcx, rbx
call fcn.140015d40
mov rcx, rbx
call fcn.140019e44
mov rbx, r15
test r15, r15
jne 0x1400039b6
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.140012de0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret