Function at 0x1400b3f80
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rbx
push rdi
push r15
push rbp
sub rsp, 0x48
mov rbx, rcx
mov rbp, rdx
mov rdx, qword [rbx + 8]
add rdx, 0x30
mov eax, 1
lock xadd dword [rdx], eax
mov r15, qword [rsp + 0xa0]
cmp byte [rsp + 0x98], 0
je 0x1400b4022
mov rbx, qword [rbx + 8]
mov dword [r15 + 0x30], 1
call fcn.1400cc560
mov qword [r15], rax
xor eax, eax
mov rcx, qword [rbx + 0x28]
xor edx, edx
mov r8d, 2
mov r9, r15
mov dword [r15 + 0x10], eax
mov dword [r15 + 0x14], eax
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1400b40c0
lea rbp, [rbx + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rbx + 0x98]
mov qword [r15 + 0x20], 0
test rax, rax
je 0x1400b409b
mov qword [rax + 0x20], r15
mov qword [rbx + 0x98], r15
jmp 0x1400b40a9
mov rcx, qword [rbp]
cmp rcx, 0xffffffffffffffff
jne 0x1400b40ca
mov rbx, qword [rbx + 8]
mov dword [r15 + 0x30], 1
call fcn.1400cc560
mov rcx, qword [rbx + 0x28]
xor edx, edx
mov r8d, 2
mov r9, r15
mov qword [r15], rax
mov dword [r15 + 0x10], 0x2719
mov dword [r15 + 0x14], 0
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1400b40c0
lea rbp, [rbx + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rbx + 0x98]
mov qword [r15 + 0x20], 0
test rax, rax
je 0x1400b409b
mov qword [rax + 0x20], r15
mov qword [rbx + 0x98], r15
jmp 0x1400b40a9
mov qword [rbx + 0x98], r15
mov qword [rbx + 0x90], r15
add rbx, 0x58
mov eax, 1
mov rdx, rbx
xchg dword [rdx], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x48
pop rbp
pop r15
pop rdi
pop rbx
ret
mov rdi, rsp
mov rdx, r8
mov r8d, r9d
lea r9, [rsp + 0x40]
xor eax, eax
lea rbp, [rsp + 0x44]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], eax
mov qword [rdi + 0x20], rbp
mov qword [rdi + 0x28], r15
mov qword [rdi + 0x30], 0
call qword [sym.imp.WS2_32.dll_WSARecv]
mov edi, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
cmp ebp, 0x40
jne 0x1400b4113
mov ebp, 0x2746
jmp 0x1400b4121
mov eax, 0x274d
cmp ebp, 0x4d2
cmove ebp, eax
test edi, edi
je 0x1400b41cf
cmp ebp, 0x3e5
je 0x1400b41cf
mov rdi, qword [rbx + 8]
mov ebx, dword [rsp + 0x40]
mov dword [r15 + 0x30], 1
call fcn.1400cc560
mov rcx, qword [rdi + 0x28]
xor edx, edx
mov r8d, 2
mov r9, r15
mov qword [r15], rax
mov dword [r15 + 0x10], ebp
mov dword [r15 + 0x14], ebx
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1400b40c0
lea rbx, [rdi + 0x60]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rdi + 0x98]
mov qword [r15 + 0x20], 0
test rax, rax
je 0x1400b41a0
mov qword [rax + 0x20], r15
mov qword [rdi + 0x98], r15
jmp 0x1400b41ae
mov qword [rdi + 0x98], r15
mov qword [rdi + 0x90], r15
add rdi, 0x58
mov eax, 1
mov rdx, rdi
xchg dword [rdx], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x48
pop rbp
pop r15
pop rdi
pop rbx
ret
mov ecx, 1
lea rdi, [r15 + 0x30]
xor eax, eax
mov rbx, qword [rbx + 8]
lock cmpxchg dword [rdi], ecx
cmp eax, 1
jne 0x1400b40c0
mov rcx, qword [rbx + 0x28]
xor edx, edx
mov r8d, 2
mov r9, r15
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1400b40c0
lea rbp, [rbx + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rbx + 0x98]
mov qword [r15 + 0x20], 0
test rax, rax
je 0x1400b409b
mov qword [rax + 0x20], r15
mov qword [rbx + 0x98], r15
jmp 0x1400b40a9