Function at 0x14004b310
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f0]
sub rsp, 0x2f0
mov rax, qword [0x1400888e8]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov r13, rcx
mov dword [rsp + 0x60], edx
mov ecx, 0x10000
mov r12d, r8d
mov r14d, edx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, qword [r13 + 0x80]
xor ecx, ecx
mov dword [rsp + 0x64], ecx
mov r15, rax
mov edi, ecx
mov ebx, ecx
test rax, rax
je 0x14004b6c4
mov ebx, 0x90312
nop word [rax + rax]
cmp ebx, 0x90312
je 0x14004b394
cmp ebx, 0x80090318
jne 0x14004b6c4
test edi, edi
je 0x14004b3a4
cmp ebx, 0x80090318
jne 0x14004b446
test r14d, r14d
je 0x14004b43e
test r12d, r12d
je 0x14004b3d8
mov eax, 0x10624dd3
mov ecx, r12d
mul r12d
shr edx, 6
imul eax, edx, 0x3e8
mov dword [rsp + 0x68], edx
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [rsp + 0x6c], eax
jmp 0x14004b3e1
mov qword [rsp + 0x68], 0xa
mov rax, qword [r13 + 8]
lea rdx, [rbp - 0x30]
mov qword [rbp - 0x28], rax
xor r9d, r9d
lea rax, [rsp + 0x68]
mov dword [rbp - 0x30], 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
cmp eax, 1
jne 0x14004b615
mov rcx, qword [r13 + 8]
mov r8d, 0x10000
mov edx, edi
sub r8d, edi
add rdx, r15
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x14004b615
add edi, eax
xor ecx, ecx
jmp 0x14004b446
mov dword [rsp + 0x60], 1
cmp dword [r13 + 0x78], 0
lea rax, [rsp + 0x70]
mov qword [rbp - 0x38], rax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x3c], 2
mov dword [rbp - 0x40], ecx
mov dword [rsp + 0x74], 2
mov qword [rsp + 0x78], r15
mov dword [rsp + 0x70], edi
mov qword [rbp - 0x80], 0
mov qword [rbp - 0x78], rcx
mov dword [rbp - 0x4c], 2
mov dword [rbp - 0x50], ecx
mov dword [rbp - 0x6c], 2
mov dword [rbp - 0x70], ecx
mov qword [rbp - 0x68], rcx
mov dword [rbp - 0x5c], send
mov dword [rbp - 0x60], ecx
mov qword [rbp - 0x58], rcx
je 0x14004b4f9
cmp dword [rsi + 0x60], 0
je 0x14004b4b7
mov rdx, qword [rsi + 0x18]
jmp 0x14004b4ba
mov rdx, rcx
mov qword [rsp + 0x40], rcx
lea rax, [rsp + 0x64]
mov rcx, qword [rsi + 0x10]
lea r8, [rbp - 0x40]
mov qword [rsp + 0x38], rax
mov r9d, 0x1811c
lea rax, [rbp - 0x50]
mov qword [rsp + 0x30], rax
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
call qword [sym.imp.Secur32.dll_AcceptSecurityContext]
jmp 0x14004b545
mov rdx, qword [rsi + 0x18]
lea rax, [rsp + 0x64]
mov qword [rsp + 0x58], rcx
mov r9d, 0xc19c
mov qword [rsp + 0x50], rax
xor r8d, r8d
lea rax, [rbp - 0x50]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], reloc.WS2_32.dll_recv
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsi + 0x10]
call sub.Secur32.dll_InitializeSecurityContextA
mov ebx, eax
test eax, eax
je 0x14004b568
cmp eax, 0x90312
je 0x14004b568
test eax, eax
jns 0x14004b560
test dword [rsp + 0x64], 0x4000
jne 0x14004b568
cmp ebx, 0x80090325
jne 0x14004b5bf
cmp dword [r13 + 0x78], 0
je 0x14004b57c
cmp dword [rsi + 0x60], 0
jne 0x14004b57c
mov dword [rsi + 0x60], 1
mov r8d, dword [rbp - 0x70]
test r8d, r8d
je 0x14004b5bf
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x14004b5bf
mov rcx, qword [r13 + 8]
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rbp - 0x68]
mov r14d, eax
call sub.Secur32.dll_FreeContextBuffer
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14004b5b5
call sub.Secur32.dll_FreeContextBuffer
cmp r14d, 0xffffffff
je 0x14004b643
mov r14d, dword [rsp + 0x60]
mov ecx, 0
cmp ebx, 0x80090318
je 0x14004b380
test ebx, ebx
je 0x14004b61f
cmp ebx, 0x80090325
je 0x14004b61f
test ebx, ebx
js 0x14004b6c4
cmp dword [rbp - 0x7c], 5
jne 0x14004b60e
mov eax, dword [rbp - 0x80]
mov rcx, r15
sub edi, eax
mov r8d, eax
mov edx, edi
add rdx, r15
call sub.VCRUNTIME140.dll_memmove
mov edi, dword [rbp - 0x80]
xor ecx, ecx
jmp 0x14004b380
mov edi, ecx
jmp 0x14004b380
mov ebx, 0x80090304
jmp 0x14004b6c4
cmp dword [rbp - 0x7c], 5
jne 0x14004b6c4
cmp dword [rsi + 0x3c], ecx
jne 0x14004b674
mov ecx, dword [rbp - 0x80]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsi + 0x40], rax
mov rcx, rax
test rax, rax
jne 0x14004b653
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, 0x80090304
jmp 0x14004b6cf
mov eax, dword [rbp - 0x80]
sub edi, eax
mov r8d, eax
mov edx, edi
add rdx, r15
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [rbp - 0x80]
mov dword [rsi + 0x38], eax
mov dword [rsi + 0x3c], 2
jmp 0x14004b6c4
mov ecx, dword [rsi + 0x38]
add ecx, dword [rbp - 0x80]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x14004b64c
mov r8d, dword [rsi + 0x38]
mov rcx, rax
mov rdx, qword [rsi + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rbp - 0x80]
mov ecx, dword [rsi + 0x38]
sub edi, eax
mov edx, edi
mov r8d, eax
add rdx, r15
add rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsi + 0x40], r14
mov eax, dword [rbp - 0x80]
add dword [rsi + 0x38], eax
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, ebx
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.14006dc90
mov rbx, qword [rsp + 0x338]
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret