Function at 0x5bcd40
Capabilities:
Connect socket
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x918
mov r12, rdx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0xc8], r9
mov r13, qword [rdx + 0x68]
mov esi, dword [r13 + 0x18]
cmp esi, 0x3b9aca00
jne 0x5bcd8f
mov rax, qword [r12 + 0x58]
mov qword [rsp + 0xb8], rax
mov ebp, dword [r12 + 0x60]
jmp 0x5bcde0
mov rdi, qword [r13 + 0x10]
call fcn.00588510
mov ebp, 0x3b9aca00
add rax, rdi
mov qword [rsp + 0xb8], rax
jae 0x5bcdac
jmp 0x5bcde0
add edx, esi
cmp edx, 0x3b9aca00
jb 0x5bcdc6
inc qword [rsp + 0xb8]
je 0x5bcde0
add edx, 0xc4653600
mov eax, edx
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub edx, eax
mov ebp, edx
cmp byte [r13 + 0x9c], 4
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x138], r12
mov qword [rsp + 0x68], r13
jne 0x5bcec2
mov byte [rsp + 0x134], 4
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x460], rax
lea rax, [0x0044ed80]
mov qword [rsp + 0x468], rax
lea rax, [rsp + 0x980]
mov qword [rsp + 0x470], rax
lea rax, [0x00453300]
mov qword [rsp + 0x478], rax
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], 2
mov qword [rsp + 0x160], 0
lea rax, [rsp + 0x460]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 2
lea rcx, [rsp + 0x350]
lea rdx, [rsp + 0x140]
call fcn.0044e7f0
movups xmm0, xmmword [rsp + 0x350]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x360]
mov qword [rsp + 0xe0], rax
jmp 0x5bd160
mov rbx, qword [r13 + 0x50]
mov rsi, qword [r13 + 0x60]
test rsi, rsi
je 0x5bcf1d
js 0x5be684
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x5bcefc
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x5bcf0e
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapAlloc
mov rdi, rax
test rax, rax
jne 0x5bcf22
mov ecx, 1
mov rdx, rsi
call fcn.0044dfd0
ud2
mov edi, 1
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov ebp, dword [r13 + 0x98]
mov r15, qword [r13 + 0x68]
test r15, r15
je 0x5bcf97
mov rbx, qword [r13 + 0x78]
test rbx, rbx
je 0x5bcfae
js 0x5be684
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x5bcf76
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x5bcf88
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x5bcfb4
mov ecx, 1
mov rdx, rbx
call fcn.0044dfd0
ud2
xor r14d, r14d
mov r12, qword [r13 + 0x80]
test r12, r12
jne 0x5bcfce
xor r13d, r13d
jmp 0x5bd03c
mov r14d, 1
mov rcx, r14
mov rdx, r15
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r12, qword [r13 + 0x80]
test r12, r12
je 0x5bcfa6
mov r15, qword [r13 + 0x90]
test r15, r15
je 0x5bd028
js 0x5be684
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x5bd007
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x5bd019
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapAlloc
mov r13, rax
test rax, rax
jne 0x5bd02e
mov ecx, 1
mov rdx, r15
call fcn.0044dfd0
ud2
mov r13d, 1
mov rcx, r13
mov rdx, r12
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 0x9c]
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x120], r15
mov qword [rsp + 0x128], r15
mov qword [rsp + 0x100], r14
mov qword [rsp + 0x118], r13
lea rcx, [rsp + 0x130]
mov dword [rsp + 0x130], ebp
mov byte [rsp + 0x134], al
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x460], rax
lea rax, [0x0046e900]
mov qword [rsp + 0x468], rax
mov qword [rsp + 0x470], rcx
lea rax, [0x00453400]
mov qword [rsp + 0x478], rax
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], 2
mov qword [rsp + 0x160], 0
lea rax, [rsp + 0x460]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 2
lea rcx, [rsp + 0x350]
lea rdx, [rsp + 0x140]
call fcn.0044e7f0
movups xmm0, xmmword [rsp + 0x350]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x360]
mov qword [rsp + 0xe0], rax
mov r12, qword [rsp + 0x138]
mov ebp, dword [rsp + 0x50]
mov rax, qword [r12 + 0x70]
mov rdi, qword [rax + 0x10]
mov rsi, qword [rax + 0x18]
lock inc qword [rdi]
jle 0x5be6f0
mov rax, qword [rsi + 0x10]
dec rax
and rax, 0xfffffffffffffff0
lea rdx, [rax + rdi]
add rdx, 0x10
mov r8, qword [rsp + 0xd0]
mov r9, qword [rsp + 0xe0]
lea rcx, [rsp + 0x668]
call qword [rsi + 0x18]
cmp qword [rsp + 0x668], 0
je 0x5bd1d5
mov rax, qword [rsp + 0x678]
mov qword [rsp + 0x478], rax
movups xmm0, xmmword [rsp + 0x668]
movups xmmword [rsp + 0x468], xmm0
jmp 0x5bd2a6
mov rbx, qword [rsp + 0x670]
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x80], rax
lea rax, [0x0046e900]
mov qword [rsp + 0x88], rax
lea rax, str.resolve_dns_name_
mov qword [rsp + 0x350], rax
mov qword [rsp + 0x358], 2
mov qword [rsp + 0x370], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x360], rax
mov qword [rsp + 0x368], 1
lea rcx, [rsp + 0x1a0]
lea rdx, [rsp + 0x350]
call fcn.0044e7f0
mov dword [rsp + 0x148], 2
mov qword [rsp + 0x1b8], 0
mov byte [rsp + 0x1c8], 2
mov dword [rsp + 0x140], 2
lea rcx, [rsp + 0x460]
lea rdx, [rsp + 0x140]
mov r8, rbx
call fcn.005cee20
mov ebx, dword [rsp + 0x460]
cmp ebx, 3
jne 0x5bde01
mov rbx, qword [rsp + 0x468]
mov r14, qword [rsp + 0x470]
mov r15, qword [rsp + 0x478]
lock dec qword [rdi]
jne 0x5bd2cf
mov rcx, rdi
mov rdx, rsi
call fcn.0046e3b0
test r15, r15
je 0x5bdbb9
mov rcx, r15
mov qword [rsp + 0xa8], r14
lea rax, [r12 + 0x68]
mov qword [rsp + 0x348], rax
movzx eax, byte [rsp + 0x134]
mov dword [rsp + 0x64], eax
shl rcx, 5
add rcx, rbx
mov qword [rsp + 0xa0], rbx
mov r12, rbx
xor ebx, ebx
mov r14, rcx
mov qword [rsp + 0xb0], rcx
jmp 0x5bd35d
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x460], rax
lea rax, [0x0044ed80]
mov qword [rsp + 0x468], rax
lea rax, [0x00936e80]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], 1
mov qword [rsp + 0x160], 0
lea rax, [rsp + 0x460]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 1
mov rsi, qword [rsp + 0x40]
lea rcx, [rsi + 0x60]
lea rdx, [rsp + 0x140]
call fcn.0044e7f0
mov dword [rsi], 2
mov dword [rsi + 8], 2
mov qword [rsi + 0x78], 0
mov byte [rsi + 0x88], 2
test r14, r14
je 0x5bdd54
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x5bdd54
mov ebp, dword [rsp + 0x464]
mov r14, qword [rsp + 0x468]
lea rdx, [rsp + 0x480]
mov r15, qword [rsp + 0x40]
lea rcx, [r15 + 0x20]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x470]
mov dword [r15 + 4], ebp
mov qword [r15 + 8], r14
movups xmmword [r15 + 0x10], xmm0
mov dword [r15], ebx
lock dec qword [rdi]
jne 0x5bdd54
mov rcx, rdi
mov rdx, rsi
call fcn.0046e3b0
jmp 0x5bdd54
ud2