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

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0xd0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x108], rbx
mov rax, qword [0x1800ff050]
xor rax, rsp
mov qword [rsp + 0xc8], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
xor r9d, r9d
mov r8d, 0x1f4
mov rdx, qword [rcx + 0x38]
mov rcx, qword [rcx]
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x18000aaa9
call fcn.180003180
test eax, eax
js 0x18000af78
cmp eax, 1
jne 0x18000aab4
jmp 0x18000af78
movsxd rcx, eax
mov rax, qword [rsi + 0x38]
mov byte [rcx + rax], 0
mov r8, rbx
lea rdx, str.USER
lea rcx, [rsp + 0x48]
call fcn.18000bee0
nop
lea r8, [0x1800e1600]
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.18000bfa0
nop
cmp qword [rsp + 0x68], 0x10
jb 0x18000aaf3
mov rcx, qword [rsp + 0x50]
call fcn.18006a4d4
mov qword [rsp + 0x68], send
xor ebp, ebp
mov qword [rsp + 0x60], rbp
mov byte [rsp + 0x50], bpl
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
xor r9d, r9d
mov r8d, dword [rsp + 0xb8]
mov rcx, qword [rsi]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x18000ab61
call fcn.180003180
mov ebx, eax
cmp qword [rsp + 0xc0], 0x10
jb 0x18000ab5a
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
jmp 0x18000af78
mov rcx, rsi
call fcn.18000bbc0
mov ebx, eax
test eax, eax
js 0x18000af5e
cmp eax, 1
je 0x18000af5e
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18000bc10
nop
mov rbx, qword [rax + 0x18]
cmp rbx, rbx
cmovb rbx, rbx
cmp qword [rax + 0x20], 0x10
jb 0x18000aba2
mov rcx, qword [rax + 8]
jmp 0x18000aba6
lea rcx, [rax + 8]
mov r8d, 3
cmp rbx, r8
cmovb r8, rbx
lea rdx, [0x1800e160c]
call fcn.180079150
movsxd rcx, eax
test eax, eax
jne 0x18000abdc
cmp rbx, 3
jae 0x18000abd1
or ecx, 0xffffffff
jmp 0x18000abdc
mov eax, ebp
cmp rbx, 3
setne al
mov ecx, eax
test ecx, ecx
sete bl
cmp qword [rsp + 0x40], 0x10
jb 0x18000abf3
mov rcx, qword [rsp + 0x28]
call fcn.18006a4d4
test bl, bl
je 0x18000af42
mov r8, rdi
lea rdx, str.PASS
lea rcx, [rsp + 0x20]
call fcn.18000bee0
nop
lea r8, [0x1800e1600]
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.18000bfa0
nop
cmp qword [rsp + 0x40], 0x10
jb 0x18000ac37
mov rcx, qword [rsp + 0x28]
call fcn.18006a4d4
mov qword [rsp + 0x40], send
mov qword [rsp + 0x38], rbp
mov byte [rsp + 0x28], 0
lea rdx, [rsp + 0x80]
cmp qword [rsp + 0x98], 0x10
cmovae rdx, qword [rsp + 0x80]
xor r9d, r9d
mov r8d, dword [rsp + 0x90]
mov rcx, qword [rsi]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x18000acd7
call fcn.180003180
mov ebx, eax
cmp qword [rsp + 0x98], 0x10
jb 0x18000ac9c
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
mov qword [rsp + 0x98], send
mov qword [rsp + 0x90], rbp
mov byte [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 0x10
jb 0x18000acd0
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
jmp 0x18000af78
mov rcx, rsi
call fcn.18000bbc0
mov ebx, eax
test eax, eax
js 0x18000aef2
cmp eax, 1
je 0x18000aef2
mov edi, ebp
nop word [rax + rax]
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.18000bc10
nop
mov rbx, qword [rax + 0x18]
cmp rbx, rbx
cmovb rbx, rbx
cmp qword [rax + 0x20], 0x10
jb 0x18000ad26
mov rcx, qword [rax + 8]
jmp 0x18000ad2a
lea rcx, [rax + 8]
mov r8d, 3
cmp rbx, r8
cmovb r8, rbx
lea rdx, [0x1800e1618]
call fcn.180079150
movsxd rcx, eax
test eax, eax
jne 0x18000ad60
cmp rbx, 3
jae 0x18000ad55
or ecx, 0xffffffff
jmp 0x18000ad60
mov eax, ebp
cmp rbx, 3
setne al
mov ecx, eax
test ecx, ecx
setne bl
cmp qword [rsp + 0x68], 0x10
jb 0x18000ad77
mov rcx, qword [rsp + 0x50]
call fcn.18006a4d4
test bl, bl
je 0x18000aed8
cmp edi, 3
jge 0x18000ae82
lea rdx, [rsp + 0x80]
cmp qword [rsp + 0x98], 0x10
cmovae rdx, qword [rsp + 0x80]
xor r9d, r9d
mov r8d, dword [rsp + 0x90]
mov rcx, qword [rsi]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x18000ae28
mov rcx, rsi
call fcn.18000bbc0
mov ebx, eax
test eax, eax
js 0x18000add5
cmp eax, 1
je 0x18000add5
inc edi
jmp 0x18000ad00
cmp qword [rsp + 0x98], 0x10
jb 0x18000aded
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
mov qword [rsp + 0x98], send
mov qword [rsp + 0x90], rbp
mov byte [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 0x10
jb 0x18000ae21
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
jmp 0x18000af78
call fcn.180003180
mov ebx, eax
cmp qword [rsp + 0x98], 0x10
jb 0x18000ae47
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
mov qword [rsp + 0x98], send
mov qword [rsp + 0x90], rbp
mov byte [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 0x10
jb 0x18000ae7b
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
jmp 0x18000af78
cmp qword [rsp + 0x98], 0x10
jb 0x18000ae9a
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
mov qword [rsp + 0x98], send
mov qword [rsp + 0x90], rbp
mov byte [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 0x10
jb 0x18000aece
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, 0xe0036003
jmp 0x18000af78
cmp qword [rsp + 0x98], 0x10
jb 0x18000af42
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
jmp 0x18000af42
cmp qword [rsp + 0x98], 0x10
jb 0x18000af0a
mov rcx, qword [rsp + 0x80]
call fcn.18006a4d4
mov qword [rsp + 0x98], send
mov qword [rsp + 0x90], rbp
mov byte [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 0x10
jb 0x18000af3e
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
jmp 0x18000af78
cmp qword [rsp + 0xc0], 0x10
jb 0x18000af5a
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
xor eax, eax
jmp 0x18000af78
cmp qword [rsp + 0xc0], 0x10
jb 0x18000af76
mov rcx, qword [rsp + 0xa8]
call fcn.18006a4d4
mov eax, ebx
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.18006a4f0
mov rbx, qword [rsp + 0x108]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret