Function at 0x14000391f
Capabilities:
Connect socket
Enumerate pe sections
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 0x1400039a2
cmp eax, 3
jne 0x1400042ab
lea r13, [rsi + 0x60]
movzx eax, byte [rsi + 0x60]
lea r12, [rsi + 0x20]
test eax, eax
je 0x140003a45
cmp eax, 3
jne 0x1400042ab
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.14004675b
mov al, byte [rbx + 9]
cmp al, 3
jne 0x140003a71
mov byte [r13], 3
mov qword [r14], 3
mov al, 3
jmp 0x14000401b
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 [0x14007db00]
cmp eax, 3
jne 0x140003e13
mov ecx, ebx
mov edx, 1
xor r8d, r8d
call qword [sym.imp.ws2_32.dll_socket]
cmp rax, 0xffffffffffffffff
je 0x140003a52
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 0x140003a7f
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebp, eax
mov rcx, r15
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140003a5a
mov r15, qword [rsi + 0x20]
mov rdi, qword [rsi + 0x28]
jmp 0x140003bff
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 0x140003ff9
cmp al, 2
jne 0x140003ac5
mov rbp, qword [rsp + 0x68]
jmp 0x140003f9e
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0xd8], 0
test r13w, r13w
je 0x140003b4d
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 0x140003b70
mov rcx, qword [rsi + 0x48]
cmp rcx, 0xffffffffffffffff
je 0x1400042ab
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 0x140003f8e
movsxd rbp, dword [rsp + 0xa0]
test rbp, rbp
jne 0x140003f96
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 0x140003994
jmp 0x140003fd1
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 0x140003bd8
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebp, eax
shl rbp, 0x20
or rbp, 2
mov rcx, rbp
call fcn.140031638
cmp al, 0xd
jne 0x140004032
mov rcx, rbp
call fcn.140033431
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.14004911c
mov rax, qword [rbx]
cmp rax, 2
je 0x1400042ab
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 0x1400042ab
lea rbx, [r13 + 0x20]
mov cl, 1
xor eax, eax
lock cmpxchg byte [r13 + 0x20], cl
jne 0x14000404d
lea rdi, [rsp + 0x60]
cmp byte [r13 + 0x50], 0
je 0x140003cac
lea rdx, [0x14006d454]
mov r8d, 0x38
mov cl, 0x27
call fcn.14003018b
mov rbp, rax
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x14000405a
mov r13, qword [rsp + 0x40]
jmp 0x140003f6c
mov al, byte [0x14007dbb8]
mov edx, 0x180
xor ecx, ecx
call fcn.14003494a
test rax, rax
je 0x1400042ab
mov r15, rax
and r15, 0xffffffffffffff80
mov qword [r15 + 0x78], rax
mov eax, 1
mov qword [r15 + 0x80], rax
mov qword [r15 + 0x88], rax
xor eax, eax
mov qword [r15 + 0x140], rax
xorps xmm0, xmm0
movaps xmmword [r15 + 0x100], xmm0
movups xmmword [r15 + 0x109], xmm0
movaps xmmword [r15 + 0x120], xmm0
mov qword [r15 + 0x130], rax
lock inc qword [r15 + 0x80]
jle 0x1400042ab
lea rcx, [r15 + 0x80]
add r15, 0x100
mov rax, qword [r13 + 0x40]
test rax, rax
je 0x140003d55
cmp rax, r15
je 0x1400042ab
mov qword [rcx + 0x88], rax
mov qword [rcx + 0x80], 0
mov qword [rax], r15
jmp 0x140003d59
movups xmmword [r15], xmm0
mov qword [rsp + 0x50], rcx
mov qword [r13 + 0x40], r15
cmp qword [r13 + 0x48], 0
jne 0x140003d6d
mov qword [r13 + 0x48], r15
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x14000424f
cmp qword [rsp + 0x60], 0
je 0x140003d92
movabs rbp, 0xc00000003
jmp 0x140003f2c
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 0x140004280
mov qword [rsp + 0x88], rbp
mov rax, qword [r8 + 0x38]
test rax, rax
je 0x140003ddc
mov rdx, qword [r8 + 0x30]
mov rax, qword [rdx + rax*8 - 8]
mov rax, qword [rax]
cmp rax, 0x20
jbe 0x140003e40
mov rbp, rcx
lea rdx, [r8 + 0x28]
mov rcx, qword [r8 + 0x18]
call fcn.140030de1
mov rcx, rbp
mov r8, qword [rsp + 0x30]
mov rbp, rax
test rax, rax
je 0x140003e40
xor eax, eax
xchg byte [rcx], al
cmp al, 2
jne 0x140003f27
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
jmp 0x140003f27
lea rax, [rsp + 0xd0]
mov byte [rax], 1
lea r8, [rsp + 0x68]
mov qword [r8], rax
lea rcx, [0x14007db00]
lea r9, [0x14006c118]
xor edx, edx
call fcn.140062062
jmp 0x1400039fb
mov rax, qword [r8 + 0x38]
test rax, rax
je 0x1400042ab
mov rdx, qword [r8 + 0x30]
mov rdi, qword [rdx + rax*8 - 8]
lock inc qword [rdi]
jle 0x1400042ab
xor eax, eax
xchg byte [rcx], al
cmp al, 2
jne 0x140003e6e
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.140030f88
cmp dword [rbp], 0
je 0x140004067
xor r14d, r14d
lea r12, [0x14006c14c]
lea rbp, [rsp + 0x68]
mov r8d, dword [r14 + r12]
mov rcx, rbp
mov rdx, rbx
call fcn.140030f88
cmp dword [rsp + 0x68], 0
jne 0x140003ee1
mov rdi, qword [rsp + 0x70]
cmp rdi, rbx
jne 0x14000406f
add r14, 4
cmp r14, 0xc
jne 0x140003ebd
mov ebp, dword [rsp + 0xa4]
shl rbp, 0x20
or rbp, 2
mov rax, qword [rsp + 0x90]
lock dec qword [rax]
jne 0x140003f15
lea rcx, [rsp + 0xf8]
call fcn.1400312ec
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 0x14000425c
mov rcx, r13
mov rdx, r15
call fcn.14004342f
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
jne 0x140004269
mov rcx, qword [rsp + 0x50]
lock dec qword [rcx]
mov r13, qword [rsp + 0x40]
jne 0x140003f6c
call fcn.140048ff2
lea rcx, [rsp + 0xe8]
call fcn.140002099
mov rcx, rdi
call fcn.140031a23
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140003fa7
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ebp, eax
shl rbp, 0x20
or rbp, 2
lea rcx, [rsi + 0x30]
call fcn.1400020c3
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.140003440
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.140031a23
mov rcx, r15
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x140003a62
mov rcx, rbx
call fcn.1400613cd
jmp 0x140003c71
mov rcx, rbx
call fcn.14006165a
jmp 0x140003ca2
mov rdi, qword [rsp + 0xa8]
mov al, byte [0x14007dbb8]
mov edx, 0x78
xor ecx, ecx
call fcn.14003494a
test rax, rax
je 0x1400042ab
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 0x140004299
mov dword [rbx + 0x68], 0x19d
mov qword [rbx + 0x60], r15
xor eax, eax
xchg byte [rbx + 0x10], al
cmp al, 2
jne 0x140004117
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 0x1400042ab
lock inc qword [rbx]
jle 0x1400042ab
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.140030ffd
mov al, byte [rdi + 0x68]
test al, al
je 0x1400041b2
mov rcx, rbp
call fcn.140030718
test rax, rax
je 0x1400041b2
mov rbp, rax
mov rcx, qword [rsp + 0x70]
call fcn.1400319d7
mov rax, qword [rsp + 0x68]
lock dec qword [rax]
mov rbx, qword [rsp + 0x48]
jne 0x14000418f
lea rcx, [rsp + 0x68]
call fcn.140031383
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
lea rdi, [rsp + 0x60]
jne 0x140003f2c
lea rcx, [rsp + 0x70]
call fcn.14003132a
jmp 0x140003f2c
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 0x140004276
mov al, byte [0x14007dbb8]
mov edx, 0x20
xor ecx, ecx
call fcn.14003494a
test rax, rax
je 0x1400042ab
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.140031a23
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 0x14000396d
mov rcx, rbx
call fcn.14006165a
jmp 0x140003d7b
mov rcx, rbx
call fcn.1400613cd
jmp 0x140003f3e
mov rcx, rbx
call fcn.14006165a
jmp 0x140003f57
lea rdi, [rsp + 0x60]
jmp 0x140003f2c
mov qword [rsp + 0x38], rcx
call fcn.14006213b
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
jmp 0x140003db9
mov rcx, rbp
call fcn.14006213b
mov r8, qword [rsp + 0x30]
jmp 0x1400040f5
ud2