Function at 0x140003bf4
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, 0x138
mov rbp, r8
mov rsi, rdx
mov r14, rcx
movzx eax, byte [rdx + 0x68]
test eax, eax
je 0x140003c77
cmp eax, 3
jne 0x1400045a8
lea r13, [rsi + 0x60]
movzx eax, byte [rsi + 0x60]
lea r12, [rsi + 0x20]
test eax, eax
je 0x140003d1a
cmp eax, 3
jne 0x1400045a8
mov rax, qword [rsi + 0x58]
mov rdx, qword [rax + 0x10]
lea rbx, [rsp + 0x68]
mov rcx, rbx
mov r8, rbp
mov r9b, 1
call fcn.140056aa8
mov al, byte [rbx + 9]
cmp al, 3
jne 0x140003d46
mov byte [r13], 3
mov qword [r14], 3
mov al, 3
jmp 0x1400042e5
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x38], r14
movzx r13d, word [rsi]
mov r12d, dword [rsi + 2]
movzx eax, word [rsi + 6]
mov qword [rsp + 0x30], rax
mov r14d, dword [rsi + 8]
mov rax, qword [rsi + 0xc]
mov qword [rsp + 0x40], rax
mov edi, dword [rsi + 0x14]
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x50], eax
movzx ebp, word [rsi + 0x1c]
test r13w, r13w
mov eax, 2
mov ebx, 0x17
cmove ebx, eax
mov eax, dword [0x14008fb00]
cmp eax, 3
jne 0x1400040dd
mov ecx, ebx
mov edx, 1
xor r8d, r8d
call qword [sym.imp.ws2_32.dll_socket]
cmp rax, 0xffffffffffffffff
je 0x140003d27
mov r15, rax
lea r8, [rsp + 0x68]
mov dword [r8], 1
mov rcx, rax
mov edx, 0x8004667e
call qword [sym.imp.ws2_32.dll_ioctlsocket]
test eax, eax
je 0x140003d54
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebp, eax
mov rcx, r15
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140003d2f
mov r15, qword [rsi + 0x20]
mov rdi, qword [rsi + 0x28]
jmp 0x140003eb5
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebp, eax
shl rbp, 0x20
or rbp, 2
mov edi, 2
mov r14, qword [rsp + 0x38]
jmp 0x1400042c3
cmp al, 2
jne 0x140003d9a
mov rbp, qword [rsp + 0x68]
jmp 0x140004268
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0xd8], 0
test r13w, r13w
je 0x140003e03
shr r12d, 0x10
mov r8d, 0x1c
mov cx, 0x17
mov rax, r12
mov r12d, edi
mov r9, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x50]
mov r11, qword [rsp + 0x30]
jmp 0x140003e26
mov rcx, qword [rsi + 0x48]
cmp rcx, 0xffffffffffffffff
je 0x1400045a8
lea r9, [rsp + 0xa0]
mov dword [r9], 0
mov dword [rsp + 0x68], 4
mov qword [rsp + 0x20], rbx
mov edx, 0xffff
mov r8d, 0x1007
call qword [sym.imp.ws2_32.dll_getsockopt]
cmp eax, 0xffffffff
je 0x140004258
movsxd rax, dword [rsp + 0xa0]
test rax, rax
je 0x140004324
shl rax, 0x20
lea rbp, [rax*2 + 2]
sub rbp, rax
jmp 0x140004268
xor eax, eax
mov r8d, 0x10
mov cx, 2
mov rdx, qword [rsp + 0x30]
mov ebp, edx
xor r11d, r11d
xor r14d, r14d
mov r9, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x50]
rol bp, 8
lea rdx, [rsp + 0x68]
mov word [rdx], cx
mov word [rdx + 2], bp
mov dword [rdx + 4], r12d
shl r14, 0x20
movzx ecx, r11w
shl rcx, 0x10
or rcx, r14
or rcx, rax
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], r9
mov dword [rdx + 0x18], r10d
mov rcx, r15
call qword [sym.imp.ws2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x140003e8e
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebp, eax
shl rbp, 0x20
or rbp, 2
mov rcx, rbp
call fcn.14003ebb8
cmp al, 0xd
jne 0x1400042fc
mov rcx, rbp
call fcn.140040de6
lea r12, [rsi + 0x20]
mov qword [rsi + 0x20], r15
mov qword [rsi + 0x28], 0
lea r13, [rsi + 0x60]
mov byte [rsi + 0x60], 0
xor edi, edi
mov r14, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x88]
mov qword [rsp + 0x40], r13
lea rbx, [rsp + 0x68]
mov rcx, rbx
call fcn.1400599c8
mov rax, qword [rbx]
cmp rax, 2
je 0x1400045a8
mov r13, qword [rsp + 0x70]
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], r13
lea rcx, [r13 + 0x120]
add r13, 0xc0
test rax, rax
cmovne r13, rcx
cmp qword [r13], 0
je 0x1400045a8
lea rbx, [r13 + 0x20]
mov cl, 1
xor eax, eax
lock cmpxchg byte [r13 + 0x20], cl
jne 0x140004317
lea rdi, [rsp + 0x60]
cmp byte [r13 + 0x50], 0
je 0x140003f62
lea rdx, [0x14007f464]
mov r8d, 0x38
mov cl, 0x27
call fcn.14003d438
mov rbp, rax
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x140004357
mov r13, qword [rsp + 0x40]
jmp 0x140004236
mov al, byte [0x14008fbb8]
mov edx, 0x180
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x1400045a8
mov r15, rax
mov rcx, rax
xor rcx, 0xffffffffffffff80
mov rdx, rax
or rdx, 0x7f
and rdx, rcx
sub r15, rdx
neg rdx
mov qword [r15 + 0x78], rax
mov ecx, 1
mov qword [r15 + 0x80], rcx
mov qword [r15 + 0x88], rcx
xor ecx, ecx
mov qword [r15 + 0x140], rcx
xorps xmm0, xmm0
movaps xmmword [r15 + 0x100], xmm0
movups xmmword [r15 + 0x109], xmm0
movaps xmmword [r15 + 0x120], xmm0
mov qword [r15 + 0x130], rcx
lock inc qword [rax + rdx + 0x80]
jle 0x1400045a8
lea rcx, [r15 + 0x80]
add r15, 0x100
mov rax, qword [r13 + 0x40]
test rax, rax
je 0x14000401f
cmp rax, r15
je 0x1400045a8
mov qword [rcx + 0x88], rax
mov qword [rcx + 0x80], 0
mov qword [rax], r15
jmp 0x140004023
movups xmmword [r15], xmm0
mov qword [rsp + 0x50], rcx
mov qword [r13 + 0x40], r15
cmp qword [r13 + 0x48], 0
jne 0x140004037
mov qword [r13 + 0x48], r15
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x14000454c
cmp qword [rsp + 0x60], 0
je 0x14000405c
movabs rbp, 0xc00000003
jmp 0x1400041f6
mov qword [rsp + 0x48], rbx
mov rbx, qword [rsp + 0x58]
mov r8, qword [r13]
lea rcx, [r8 + 0x20]
mov dl, 1
xor eax, eax
lock cmpxchg byte [r8 + 0x20], dl
mov qword [rsp + 0x30], r8
jne 0x14000457d
mov qword [rsp + 0x88], rbp
mov rax, qword [r8 + 0x38]
test rax, rax
je 0x1400040a6
mov rdx, qword [r8 + 0x30]
mov rax, qword [rdx + rax*8 - 8]
mov rax, qword [rax]
cmp rax, 0x20
jbe 0x14000410a
mov rbp, rcx
lea rdx, [r8 + 0x28]
mov rcx, qword [r8 + 0x18]
call fcn.14003e291
mov rcx, rbp
mov r8, qword [rsp + 0x30]
mov rbp, rax
test rax, rax
je 0x14000410a
xor eax, eax
xchg byte [rcx], al
cmp al, 2
jne 0x1400041f1
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
jmp 0x1400041f1
lea rax, [rsp + 0xd0]
mov byte [rax], 1
lea r8, [rsp + 0x68]
mov qword [r8], rax
lea rcx, [0x14008fb00]
lea r9, [0x14007e128]
xor edx, edx
call fcn.140073b6b
jmp 0x140003cd0
mov rax, qword [r8 + 0x38]
test rax, rax
je 0x1400045a8
mov rdx, qword [r8 + 0x30]
mov rdi, qword [rdx + rax*8 - 8]
lock inc qword [rdi]
jle 0x1400045a8
xor eax, eax
xchg byte [rcx], al
cmp al, 2
jne 0x140004138
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov qword [rsp + 0x98], r12
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0xf8], rdi
lea rbp, [rsp + 0xa0]
mov rcx, rbp
mov rdx, rbx
mov r8d, 0x48000022
call fcn.14003e441
cmp dword [rbp], 0
je 0x140004364
xor r14d, r14d
lea r12, [0x14007e15c]
lea rbp, [rsp + 0x68]
mov r8d, dword [r14 + r12]
mov rcx, rbp
mov rdx, rbx
call fcn.14003e441
cmp dword [rsp + 0x68], 0
jne 0x1400041ab
mov rdi, qword [rsp + 0x70]
cmp rdi, rbx
jne 0x14000436c
add r14, 4
cmp r14, 0xc
jne 0x140004187
mov ebp, dword [rsp + 0xa4]
shl rbp, 0x20
or rbp, 2
mov rax, qword [rsp + 0x90]
lock dec qword [rax]
jne 0x1400041df
lea rcx, [rsp + 0xf8]
call fcn.14003e7e8
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x98]
lea rdi, [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
add r13, 0x28
mov cl, 1
xor eax, eax
lock cmpxchg byte [rbx], cl
jne 0x140004559
mov rcx, r13
mov rdx, r15
call fcn.140052fbd
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x140004566
mov rcx, qword [rsp + 0x50]
lock dec qword [rcx]
mov r13, qword [rsp + 0x40]
jne 0x140004236
call fcn.14005987d
lea rcx, [rsp + 0xe8]
call fcn.14000210a
mov rcx, rdi
call fcn.14003efa8
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140004271
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ebp, eax
shl rbp, 0x20
or rbp, 2
lea rcx, [rsi + 0x30]
call fcn.140002134
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0xb0], xmm0
mov byte [r13], 1
mov edi, 2
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x110], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x100], xmm0
mov rcx, r12
call fcn.140003501
mov qword [r14], rdi
mov qword [r14 + 8], rbp
movaps xmm0, xmmword [rsp + 0x100]
movups xmmword [r14 + 0x10], xmm0
mov rax, qword [rsp + 0x110]
mov qword [r14 + 0x20], rax
mov al, 1
mov byte [rsi + 0x68], al
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0xd8]
call fcn.14003efa8
mov rcx, r15
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140003d37
mov rcx, rbx
call fcn.140072cd8
jmp 0x140003f27
mov rdi, qword [rsi + 0x30]
mov rbp, qword [rsi + 0x38]
mov rax, qword [rsi + 0x50]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsi + 0x40]
movaps xmmword [rsp + 0xb0], xmm0
mov byte [rsi + 0x60], 1
cmp rdi, 3
je 0x140003c69
jmp 0x14000429b
mov rcx, rbx
call fcn.140072fcf
jmp 0x140003f58
mov rdi, qword [rsp + 0xa8]
mov al, byte [0x14008fbb8]
mov edx, 0x78
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x1400045a8
mov rbx, rax
mov eax, 1
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov rbp, rbx
add rbp, 0x10
mov byte [rbx + 0x10], 0
mov dword [rbx + 0x18], 0
mov rax, qword [rsp + 0x90]
mov qword [rbx + 0x20], rax
xorps xmm0, xmm0
movups xmmword [rbx + 0x28], xmm0
movups xmmword [rbx + 0x38], xmm0
movups xmmword [rbx + 0x48], xmm0
mov qword [rbx + 0x58], rdi
movups xmmword [rbx + 0x60], xmm0
mov word [rbx + 0x70], 0
mov cl, 1
xor eax, eax
lock cmpxchg byte [rbx + 0x10], cl
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x98]
mov r8, qword [rsp + 0x30]
jne 0x140004596
mov dword [rbx + 0x68], 0x19d
mov qword [rbx + 0x60], r15
xor eax, eax
xchg byte [rbx + 0x10], al
cmp al, 2
jne 0x140004414
mov rcx, rbp
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov r8, qword [rsp + 0x30]
lock inc qword [r8]
jle 0x1400045a8
lock inc qword [rbx]
jle 0x1400045a8
lea rbp, [r8 + 0x10]
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x78], r15
mov byte [rsp + 0x80], 3
mov qword [rsp + 0x70], rbx
mov rcx, rbp
mov rdx, rbx
mov rdi, r8
call fcn.14003e4b6
mov al, byte [rdi + 0x68]
test al, al
je 0x1400044af
mov rcx, rbp
call fcn.14003da6d
test rax, rax
je 0x1400044af
mov rbp, rax
mov rcx, qword [rsp + 0x70]
call fcn.14003ef5c
mov rax, qword [rsp + 0x68]
lock dec qword [rax]
mov rbx, qword [rsp + 0x48]
jne 0x14000448c
lea rcx, [rsp + 0x68]
call fcn.14003e87f
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
lea rdi, [rsp + 0x60]
jne 0x1400041f6
lea rcx, [rsp + 0x70]
call fcn.14003e826
jmp 0x1400041f6
lea rax, [rsp + 0x78]
mov rdi, qword [rax - 0x10]
mov rbp, qword [rax - 8]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x120], xmm0
test rdi, rdi
mov rbx, qword [rsp + 0x48]
je 0x140004573
mov al, byte [0x14008fbb8]
mov edx, 0x20
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x1400045a8
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 8], rbp
movaps xmm0, xmmword [rsp + 0x120]
movups xmmword [rax + 0x10], xmm0
lea rcx, [rsp + 0x60]
call fcn.14003efa8
movups xmm0, xmmword [rsp + 0xe8]
mov rcx, qword [rsp + 0x58]
lea rax, [rsi + 0x30]
movups xmmword [rsi + 0x30], xmm0
mov rdx, qword [rsp + 0x50]
mov qword [rsi + 0x40], rdx
mov qword [rsi + 0x48], rcx
mov qword [rsi + 0x50], rbx
mov qword [rsi + 0x58], rax
mov r13, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x88]
jmp 0x140003c42
mov rcx, rbx
call fcn.140072fcf
jmp 0x140004045
mov rcx, rbx
call fcn.140072cd8
jmp 0x140004208
mov rcx, rbx
call fcn.140072fcf
jmp 0x140004221
lea rdi, [rsp + 0x60]
jmp 0x1400041f6
mov qword [rsp + 0x38], rcx
call fcn.140073c56
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
jmp 0x140004083
mov rcx, rbp
call fcn.140073c56
mov r8, qword [rsp + 0x30]
jmp 0x1400043f2
ud2