Function at 0x1400956e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov word [rsp + 8], cx
push rbx
sub rsp, 0x70
mov rbx, rdx
movzx edx, cx
test cx, cx
je 0x1400959a5
test rbx, rbx
je 0x1400959a5
or rcx, 0xffffffffffffffff
mov qword [r11 - 0x20], rdi
xor eax, eax
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rsp + 0x28], rcx
cmp rcx, 0xfffb
ja 0x140095981
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x28], r12
xor esi, esi
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
lea r15d, [rcx + 4]
mov r13, rsi
movzx eax, r15w
mov r12, rsi
mov r14d, esi
mov word [rsp + 0x90], r15w
mov dword [rsp + 0x20], eax
mov ebp, eax
mov edi, eax
mov dword [rsp + 0x98], eax
test eax, eax
jle 0x14009591b
mov r15, qword [0x1402e6b48]
cmp ebp, 0xb0
jle 0x140095835
mov rcx, r15
call fcn.1401e3610
mov rbx, rax
test rax, rax
je 0x1400957dd
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov dword [rax + 0x18], esi
mov dword [rax + 0x1c], 2
mov eax, 1
mov qword [rbx + 0x28], rsi
mov word [rbx + 0x20], ax
lea rax, [rbx + 0x50]
mov dword [rbx + 0x38], esi
mov qword [rbx + 0x30], rsi
mov dword [rbx + 0x3c], esi
mov dword [rbx + 0x40], esi
mov qword [rbx + 0x10], rax
mov word [rbx + 0x44], si
mov word [rbx + 0x46], si
mov qword [rbx + 0x48], rsi
mov rcx, qword [0x1402e6b50]
mov qword [rbx + 0x50], rsi
call fcn.1401e3610
mov rcx, qword [0x1402e6b58]
mov rdi, rax
call fcn.1401e3610
mov ecx, 1
mov dword [rax], ecx
or dword [rbx + 0x1c], ecx
mov qword [rbx + 0x50], rdi
mov qword [rbx + 0x10], rdi
mov edi, dword [rsp + 0x98]
mov qword [rbx + 0x70], rax
mov eax, 0x800
mov qword [rbx + 0x58], rsi
mov qword [rbx + 0x60], rsi
mov dword [rbx + 0x68], 0x800
mov dword [rbx + 0x78], ecx
jmp 0x1400958ce
test r14b, 2
je 0x140095896
mov rcx, r15
call fcn.1401e3610
mov rbx, rax
test rax, rax
je 0x14009588a
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov dword [rax + 0x18], esi
mov dword [rax + 0x1c], 2
mov eax, 1
mov qword [rbx + 0x28], rsi
mov word [rbx + 0x20], ax
lea rax, [rbx + 0x50]
mov dword [rbx + 0x38], esi
mov qword [rbx + 0x30], rsi
mov dword [rbx + 0x3c], esi
mov dword [rbx + 0x40], esi
mov qword [rbx + 0x10], rax
mov word [rbx + 0x44], si
mov word [rbx + 0x46], si
mov qword [rbx + 0x48], rsi
mov eax, 0xb0
cmp ebp, eax
cmovl eax, ebp
jmp 0x1400958ce
mov rcx, r15
call fcn.1401e3610
mov rbx, rax
test rax, rax
je 0x1400958c4
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov dword [rax + 0x18], esi
mov dword [rax + 0x1c], esi
mov eax, 1
mov word [rbx + 0x20], ax
lea rax, [rbx + 0x28]
mov qword [rbx + 0x10], rax
mov eax, 0xd8
cmp ebp, eax
cmovl eax, ebp
test rbx, rbx
je 0x140095996
cmp eax, edi
jl 0x14009598c
sub ebp, eax
test r12, r12
je 0x1400958ec
mov qword [r12], rbx
jmp 0x1400958ef
mov r13, rbx
and r14d, 0xfffffffd
mov r12, rbx
test ebp, ebp
jg 0x140095782
mov rbx, qword [rsp + 0x88]
movzx r15d, word [rsp + 0x90]
mov dx, word [rsp + 0x80]
mov eax, dword [rsp + 0x20]
test r14b, 4
je 0x140095927
or dword [r12 + 0x1c], 4
test r13, r13
je 0x140095960
mov rdi, qword [r13 + 0x10]
movzx ecx, dx
mov rsi, r13
mov dword [r13 + 0x18], eax
call sub.WS2_32.dll_htons
movzx ecx, r15w
mov word [rdi], ax
call sub.WS2_32.dll_htons
mov r8, qword [rsp + 0x28]
lea rcx, [rdi + 4]
mov rdx, rbx
mov word [rdi + 2], ax
call fcn.1401e3ed0
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x68]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
add rsp, 0x70
pop rbx
ret
mov rcx, rbx
call fcn.140077120
jmp 0x140095960
test r13, r13
je 0x140095960
mov rcx, r13
call fcn.140077120
jmp 0x140095960
xor eax, eax
add rsp, 0x70
pop rbx
ret