Function at 0x2d9e3d8580
Capabilities:
Connect socket
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x2d9e415008]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r12, qword [rsp + 0xc0]
mov rbp, rcx
add rcx, 0xd0
mov rbx, r9
mov r14d, edx
call fcn.2d9e3d9710
mov edx, dword [rbp + 0x1c]
mov r8, rbx
mov rcx, rbp
mov r15, rax
mov dword [rax + 0x30], edx
mov edx, r14d
call fcn.2d9e3d6990
mov rsi, rax
lea rcx, [rax + 0x68]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call qword [sym.imp.WINMM.dll_timeGetTime]
mov rcx, qword [rsp + 0xc8]
mov edi, 0x10
mov qword [rsi + 0x28], rcx
lea rcx, [rsi + 0xc]
mov dword [rsi + 0x44], eax
mov dword [rsi + 0x48], eax
lea r13d, [rdi + 0xc]
cmp r12, rcx
je 0x2d9e3d8623
cmp word [r12], 2
mov r8d, edi
mov rdx, r12
cmovne r8d, r13d
call fcn.2d9e3e2bb0
lea rcx, [rbp + 0x1d0]
mov r10, qword [rcx + 8]
test r10, r10
je 0x2d9e3d8858
mov r8, qword [rcx + 0x48]
lea eax, [r14 - 1]
xor edx, edx
div dword [rcx]
movzx r9d, byte [r8 + rdx]
cmp eax, r9d
jne 0x2d9e3d8858
cmp qword [r10 + rdx*8], 1
jne 0x2d9e3d8858
mov r8, rsi
mov edx, r14d
call fcn.2d9e3d9800
test eax, eax
je 0x2d9e3d8858
cmp dword [rbp + 0x60], 0
mov r14d, 1
mov rcx, qword [rsi + 0xc0]
je 0x2d9e3d872c
lea r8, [rsp + 0x40]
mov dword [rsp + 0x40], r14d
mov edx, 0x8004667e
call qword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
jne 0x2d9e3d8842
mov rdx, qword [rbp + 0x68]
xor r9d, r9d
mov rcx, qword [rsi + 0xc0]
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test rax, rax
je 0x2d9e3d8721
mov rcx, qword [rsi + 0xc0]
mov edx, 0x1c
mov rax, qword [rbp + 0x48]
xor r13d, r13d
mov qword [r15 + 0x58], rcx
mov dword [r15 + 0x28], 2
cmp word [r12], 2
mov qword [rsp + 0x30], r15
cmovne edi, edx
xor edx, edx
mov qword [rsp + 0x28], rdx
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, edi
mov rdx, r12
call rax
test eax, eax
jne 0x2d9e3d870f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r13d, eax
xor edi, edi
cmp r13d, 0x3e5
cmovne edi, r13d
jmp 0x2d9e3d87ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x2d9e3d87c8
cmp word [r12], 2
mov rdx, r12
cmovne edi, r13d
mov r8d, edi
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x2d9e3d87c2
mov rcx, qword [rsi + 0xc0]
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov dword [rsp + 0x48], r14d
call qword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
jne 0x2d9e3d884d
mov rdx, qword [rbp + 0x68]
xor r9d, r9d
mov rcx, qword [rsi + 0xc0]
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test rax, rax
je 0x2d9e3d8721
mov rdx, rsi
mov dword [rsi + 0x58], r14d
mov rcx, rbp
call fcn.2d9e3d5fc0
cmp eax, 2
je 0x2d9e3d87ae
mov r8, r15
mov rdx, rsi
mov rcx, rbp
call fcn.2d9e3d7ed0
xor r14d, r14d
jmp 0x2d9e3d87c8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, 0x4c7
test edi, edi
cmove edi, eax
jmp 0x2d9e3d87ca
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
test edi, edi
je 0x2d9e3d8811
test r14d, r14d
je 0x2d9e3d8811
xor r9d, r9d
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov rdx, rsi
mov rcx, rbp
call fcn.2d9e3d6b60
lea rcx, [rbp + 0x100]
mov rdx, r15
call fcn.2d9e3cfd50
test eax, eax
jne 0x2d9e3d8811
mov rcx, qword [r15 + 0x20]
mov r8, r15
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsi + 0x68]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.2d9e3da7d0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.2d9e3b8cb0
int3
mov ecx, 0x80004005
call fcn.2d9e3b8cb0
int3
mov ecx, 0x80004005
call fcn.2d9e3b8cb0
int3