Function at 0x14006c9ec
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, 0x90
mov qword [rax - 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rdi, rcx
mov esi, 0x90312
mov ebx, 0x11000
mov ecx, ebx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov r12, rax
mov qword [rsp + 0x68], rax
mov r8d, ebx
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
mov dword [rsp + 0x70], ebx
mov ebx, reloc.SHELL32.dll_ILFindLastID
lea r13d, [rbx + 0x54]
mov eax, ebx
mul r13
lea r15, [rbx - 0x11]
cmovo rax, r15
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 + 0x58], rax
mov ebp, 0x640
mov r8d, ebp
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
mov dword [rsp + 0x60], r13d
mov eax, ebx
mul r13
cmovo rax, r15
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rbx, rax
mov r8d, ebp
xor edx, edx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memset]
nop
xor ebp, ebp
mov r13d, ebp
cmp esi, 0x90312
je 0x14006cac0
cmp esi, 0x80090318
je 0x14006cac0
cmp esi, 0x90320
jne 0x14006cc47
movsxd rdx, r13d
add rdx, r12
xor r9d, r9d
mov r8d, 0x10000
mov rcx, qword [rdi]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x14006cc4e
cmp eax, r15d
je 0x14006cc4e
add r13d, eax
mov eax, 2
mov dword [r14 + 4], eax
mov dword [r14], r13d
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], rbp
lea r8, [rdi + 0x868]
mov dword [r8], ebp
mov qword [rdi + 0x870], r14
mov dword [rdi + 0x86c], eax
mov qword [rbx + 8], rbp
mov dword [rbx + 4], eax
mov dword [rbx], ebp
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], rbp
mov dword [rdi + 0x87c], eax
mov qword [rdi + 0x880], rbx
lea r10, [rdi + 0x878]
mov dword [r10], ebp
mov dword [rsp + 0xd8], ebp
mov al, byte [rdi + 0x840]
lea rcx, [rdi + 0x858]
mov r9, rcx
test al, al
cmovne r9, rbp
neg al
sbb rdx, rdx
and rdx, rcx
lea rcx, [rdi + 0x848]
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], ebp
mov r9d, 0x100
call qword [sym.imp.Secur32.dll_AcceptSecurityContext]
mov esi, eax
mov byte [rdi + 0x840], 1
cmp eax, 0x80090318
je 0x14006caa4
mov r13d, ebp
test eax, eax
js 0x14006cc4e
mov eax, dword [rbx]
mov dword [rsp + 0xe0], eax
mov rcx, qword [rbx + 8]
mov qword [rsp + 0xe8], rcx
xor r9d, r9d
mov r8d, eax
mov rdx, rcx
mov rcx, qword [rdi]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
je 0x14006cc2f
mov r12d, dword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
cmp eax, r15d
je 0x14006cc25
add ebp, eax
cmp ebp, r12d
je 0x14006cc25
mov r8d, r12d
sub r8d, ebp
movsxd rdx, ebp
add rdx, r14
xor r9d, r9d
mov rcx, qword [rdi]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x14006cbfd
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x68]
mov rcx, qword [rbx + 8]
call qword [sym.imp.Secur32.dll_FreeContextBuffer]
cmp ebp, dword [rbx]
jne 0x14006cc4c
xor ebp, ebp
test esi, esi
jne 0x14006caa4
mov r15d, ebp
jmp 0x14006cc4e
xor ebp, ebp
test rbx, rbx
je 0x14006cc5d
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop
test r14, r14
je 0x14006cc6c
mov rcx, r14
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop
test r12, r12
je 0x14006cc7a
mov rcx, r12
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov eax, r15d
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret