Function at 0x14006c62c
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rax - 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rbx, rcx
mov ebp, 0x90312
mov edi, 0x11000
mov ecx, edi
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov r13, rax
mov qword [rsp + 0x78], rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
mov dword [rsp + 0x80], edi
xor eax, eax
mov r12d, eax
lea ecx, [rax + 0x64]
lea edi, [rax + 0x10]
mov eax, edi
mul rcx
lea rsi, [rcx - 0x65]
cmovo rax, rsi
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov r14, rax
mov qword [rsp + 0x68], rax
mov r15d, 0x640
mov r8d, r15d
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
lea ecx, [rdi + 0x54]
mov dword [rsp + 0x70], ecx
mov eax, edi
mul rcx
cmovo rax, rsi
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rdi, rax
mov r8d, r15d
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
nop
xor r15d, r15d
cmp ebp, 0x90312
je 0x14006c706
cmp ebp, 0x80090318
je 0x14006c706
cmp ebp, 0x90320
jne 0x14006c99a
cmp byte [rbx + 0x840], r15b
jne 0x14006c71f
mov qword [rdi + 8], r15
mov dword [rdi + 4], 2
jmp 0x14006c7ad
movsxd rax, dword [rbx + 0x898]
test eax, eax
je 0x14006c74b
mov r8, rax
mov rdx, qword [rbx + 0x888]
mov rcx, r13
call qword [sym.imp.msvcrt.dll_memcpy]
add r12d, dword [rbx + 0x898]
mov dword [rbx + 0x898], r15d
movsxd rdx, r12d
add rdx, r13
xor r9d, r9d
mov r8d, 0x10000
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x14006c99f
cmp eax, esi
je 0x14006c99f
add r12d, eax
mov eax, 2
mov dword [r14 + 4], eax
mov dword [r14], r12d
mov qword [r14 + 8], r13
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], r15
mov dword [rbx + 0x868], r15d
mov qword [rbx + 0x870], r14
mov dword [rbx + 0x86c], eax
mov qword [rdi + 8], r15
mov dword [rdi + 4], eax
mov dword [rdi], r15d
lea r15, [rbx + 0x878]
xor ebp, ebp
mov dword [r15], ebp
mov qword [rbx + 0x880], rdi
mov dword [rbx + 0x87c], 1
mov dword [rsp + 0xe8], ebp
mov dl, byte [rbx + 0x840]
lea r9, [rbx + 0x858]
mov r11, r9
test dl, dl
cmovne r11, rbp
mov al, dl
lea rcx, [rbx + 0x868]
neg al
sbb r10, r10
and r10, rcx
lea r8, [rbx + 0x18]
neg dl
sbb rdx, rdx
and rdx, r9
lea rcx, [rbx + 0x848]
mov qword [rsp + 0x58], rbp
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r11
xor r15d, r15d
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x30], r10
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
mov r9d, 0x8c11c
call qword [sym.imp.Secur32.dll_InitializeSecurityContextW]
mov ebp, eax
cmp eax, 0x80090318
je 0x14006c6ea
mov r12d, r15d
test eax, eax
js 0x14006c9a1
mov al, byte [rbx + 0x840]
test al, al
jne 0x14006c913
cmp ebp, 0x90312
jne 0x14006c9a1
test al, al
jne 0x14006c913
mov eax, dword [rdi]
mov dword [rsp + 0xf0], eax
mov rcx, qword [rdi + 8]
mov qword [rsp + 0xf8], rcx
xor r9d, r9d
mov r8d, eax
mov rdx, rcx
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
je 0x14006c8f4
mov r13d, dword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
cmp eax, esi
je 0x14006c8ea
add r15d, eax
cmp r15d, r13d
je 0x14006c8ea
mov r8d, r13d
sub r8d, r15d
movsxd rdx, r15d
add rdx, r14
xor r9d, r9d
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x14006c8c2
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x78]
mov rcx, qword [rdi + 8]
call qword [sym.imp.Secur32.dll_FreeContextBuffer]
cmp r15d, dword [rdi]
jne 0x14006c9a1
mov byte [rbx + 0x840], 1
jmp 0x14006c6e7
mov eax, dword [rdi]
mov dword [rsp + 0xf0], eax
mov rcx, qword [rdi + 8]
mov qword [rsp + 0xf8], rcx
xor r9d, r9d
mov r8d, eax
mov rdx, rcx
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
je 0x14006c980
mov r13d, dword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
cmp eax, esi
je 0x14006c976
add r15d, eax
cmp r15d, r13d
je 0x14006c976
mov r8d, r13d
sub r8d, r15d
movsxd rdx, r15d
add rdx, r14
xor r9d, r9d
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x14006c94e
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x78]
mov rcx, qword [rdi + 8]
call qword [sym.imp.Secur32.dll_FreeContextBuffer]
cmp r15d, dword [rdi]
jne 0x14006c9a1
xor r15d, r15d
test ebp, ebp
jne 0x14006c6ea
mov esi, r15d
jmp 0x14006c9a1
mov esi, eax
test rdi, rdi
je 0x14006c9b0
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop
test r14, r14
je 0x14006c9bf
mov rcx, r14
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop
test r13, r13
je 0x14006c9cd
mov rcx, r13
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov eax, esi
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret