Function at 0x14004b320
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 [0x14006c408]
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 0x14004b6d4
mov ebx, 0x90312
nop word [rax + rax]
cmp ebx, 0x90312
je 0x14004b3a4
cmp ebx, 0x80090318
jne 0x14004b6d4
test edi, edi
je 0x14004b3b4
cmp ebx, 0x80090318
jne 0x14004b456
test r14d, r14d
je 0x14004b44e
test r12d, r12d
je 0x14004b3e8
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 0x14004b3f1
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 0x14004b625
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 0x14004b625
add edi, eax
xor ecx, ecx
jmp 0x14004b456
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], select
mov dword [rbp - 0x60], ecx
mov qword [rbp - 0x58], rcx
je 0x14004b509
cmp dword [rsi + 0x60], 0
je 0x14004b4c7
mov rdx, qword [rsi + 0x18]
jmp 0x14004b4ca
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 0x14004b555
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 0x14004b578
cmp eax, 0x90312
je 0x14004b578
test eax, eax
jns 0x14004b570
test dword [rsp + 0x64], 0x4000
jne 0x14004b578
cmp ebx, 0x80090325
jne 0x14004b5cf
cmp dword [r13 + 0x78], 0
je 0x14004b58c
cmp dword [rsi + 0x60], 0
jne 0x14004b58c
mov dword [rsi + 0x60], 1
mov r8d, dword [rbp - 0x70]
test r8d, r8d
je 0x14004b5cf
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x14004b5cf
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 0x14004b5c5
call sub.Secur32.dll_FreeContextBuffer
cmp r14d, 0xffffffff
je 0x14004b653
mov r14d, dword [rsp + 0x60]
mov ecx, 0
cmp ebx, 0x80090318
je 0x14004b390
test ebx, ebx
je 0x14004b62f
cmp ebx, 0x80090325
je 0x14004b62f
test ebx, ebx
js 0x14004b6d4
cmp dword [rbp - 0x7c], 5
jne 0x14004b61e
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 0x14004b390
mov edi, ecx
jmp 0x14004b390
mov ebx, 0x80090304
jmp 0x14004b6d4
cmp dword [rbp - 0x7c], 5
jne 0x14004b6d4
cmp dword [rsi + 0x3c], ecx
jne 0x14004b684
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 0x14004b663
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, 0x80090304
jmp 0x14004b6df
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 0x14004b6d4
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 0x14004b65c
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.140056920
mov rbx, qword [rsp + 0x338]
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret