Function at 0x1400ca0d0
Capabilities:
Get socket status
Send data
Send data on socket

Disassembly:
push rbp
sub rsp, 0x470
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x400], rcx
mov qword [rbp + 0x408], rdx
mov eax, r8d
mov byte [rbp + 0x410], al
mov rax, qword [rbp + 0x400]
mov rax, qword [rax + 8]
mov qword [rbp + 0x3d8], rax
mov rax, qword [rbp + 0x400]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.strcpy
mov rax, qword [rbp + 0x400]
movzx eax, byte [rax + 0x19]
test al, al
je 0x1400ca153
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.strlen
mov rdx, rax
mov rax, qword [rbp + 0x3d8]
add rax, rdx
mov word [rax], 0x5d
cmp byte [rbp + 0x410], 0
je 0x1400ca189
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.strlen
mov rdx, rax
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movabs rcx, 0x7d313a226469222c
mov qword [rax], rcx
mov byte [rax + 8], 0
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.strlen
mov dword [rbp + 0x3d0], eax
mov eax, dword [rbp + 0x3d0]
add eax, 1
mov dword [rbp + 0x3e4], eax
mov rax, qword [0x14011bd40]
movzx eax, byte [rax]
test al, al
je 0x1400ca24e
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca1e9
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca1e9
mov rax, qword [0x14011be10]
mov eax, dword [rax]
cmp eax, 3
jle 0x1400ca24e
cmp dword [rbp + 0x3d0], 0xa
jg 0x1400ca1fb
mov rax, qword [0x1400f5560]
jmp 0x1400ca202
lea rax, [0x1401012bf]
mov edx, dword [rbp + 0x3e4]
lea rcx, [rbp + 0x1b0]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rsp + 0x20], rax
mov r9d, edx
lea r8, str.API:_send_reply:___d___.10s_s
mov edx, 0x200
call sym.snprintf_2
lea rax, [rbp + 0x1b0]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
mov dword [rbp + 0x3e8], 0
mov eax, dword [rbp + 0x3e8]
mov dword [rbp + 0x3ec], eax
jmp 0x1400ca6fa
mov dword [rbp + 0x3c0], 0
mov dword [rbp + 0x3c4], 0xc350
mov dword [rbp + 0x1b0], 0
mov dword [rbp + 0x3d4], 0
jmp 0x1400ca2b1
mov eax, dword [rbp + 0x3d4]
mov rax, qword [rbp + rax*8 + 0x1b8]
cmp qword [rbp + 0x408], rax
je 0x1400ca2bf
add dword [rbp + 0x3d4], 1
mov eax, dword [rbp + 0x1b0]
cmp dword [rbp + 0x3d4], eax
jb 0x1400ca293
mov eax, dword [rbp + 0x1b0]
cmp dword [rbp + 0x3d4], eax
jne 0x1400ca2fc
mov eax, dword [rbp + 0x1b0]
cmp eax, 0x3f
ja 0x1400ca2fc
mov eax, dword [rbp + 0x3d4]
mov rdx, qword [rbp + 0x408]
mov qword [rbp + rax*8 + 0x1b8], rdx
mov eax, dword [rbp + 0x1b0]
add eax, 1
mov dword [rbp + 0x1b0], eax
mov rax, qword [rbp + 0x408]
add eax, 1
mov ecx, eax
lea rdx, [rbp + 0x1b0]
lea rax, [rbp + 0x3c0]
mov qword [rsp + 0x20], rax
mov r9d, 0
mov r8, rdx
mov edx, 0
mov rax, qword [sym.imp.WSOCK32.dll_select]
call rax
mov dword [rbp + 0x3cc], eax
cmp dword [rbp + 0x3cc], 0
jg 0x1400ca3ab
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca36e
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca36e
mov rax, qword [0x14011be10]
mov eax, dword [rax]
test eax, eax
jle 0x1400ca712
mov edx, dword [rbp + 0x3cc]
lea rax, [rbp - 0x50]
mov r9d, edx
lea r8, str.API:_send_select_failed___d_
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 1
call dbg._applog
jmp 0x1400ca712
mov ecx, dword [rbp + 0x3e4]
mov rdx, qword [rbp + 0x3d8]
mov rax, qword [rbp + 0x408]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_send]
call rax
mov dword [rbp + 0x3c8], eax
add dword [rbp + 0x3e8], 1
cmp dword [rbp + 0x3c8], 0xffffffff
jne 0x1400ca493
add dword [rbp + 0x3ec], 1
call sym.sock_blocks_1
test al, al
je 0x1400ca403
jmp 0x1400ca6fa
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca430
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca430
mov rax, qword [0x14011be10]
mov eax, dword [rax]
test eax, eax
jle 0x1400ca715
call dbg.WSAErrorMsg
mov rdx, rax
mov eax, dword [rbp + 0x3d0]
add eax, 1
sub eax, dword [rbp + 0x3e4]
mov ecx, eax
mov eax, dword [rbp + 0x3d0]
lea r8d, [rax + 1]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], ecx
mov r9d, r8d
lea r8, str.API:_send___d:_d__failed:__s
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 1
call dbg._applog
jmp 0x1400ca715
cmp dword [rbp + 0x3e8], 1
jg 0x1400ca5b2
mov eax, dword [rbp + 0x3c8]
cmp eax, dword [rbp + 0x3e4]
jne 0x1400ca52b
mov rax, qword [0x14011bd40]
movzx eax, byte [rax]
test al, al
je 0x1400ca6cf
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca4ee
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca4ee
mov rax, qword [0x14011be10]
mov eax, dword [rax]
cmp eax, 3
jle 0x1400ca6cf
mov edx, dword [rbp + 0x3e4]
lea rax, [rbp - 0x50]
mov r9d, edx
lea r8, str.API:_sent_all_of__d_first_go
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
jmp 0x1400ca6cf
mov rax, qword [0x14011bd40]
movzx eax, byte [rax]
test al, al
je 0x1400ca6cf
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca56b
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca56b
mov rax, qword [0x14011be10]
mov eax, dword [rax]
cmp eax, 3
jle 0x1400ca6cf
mov ecx, dword [rbp + 0x3c8]
lea rax, [rbp - 0x50]
mov edx, dword [rbp + 0x3e4]
mov dword [rsp + 0x20], edx
mov r9d, ecx
lea r8, str.API:_sent__d_of__d_first_go
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
jmp 0x1400ca6cf
mov eax, dword [rbp + 0x3c8]
cmp eax, dword [rbp + 0x3e4]
jne 0x1400ca64b
mov rax, qword [0x14011bd40]
movzx eax, byte [rax]
test al, al
je 0x1400ca6cf
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca604
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca604
mov rax, qword [0x14011be10]
mov eax, dword [rax]
cmp eax, 3
jle 0x1400ca6cf
mov ecx, dword [rbp + 0x3e4]
lea rax, [rbp - 0x50]
mov edx, dword [rbp + 0x3e8]
mov dword [rsp + 0x20], edx
mov r9d, ecx
lea r8, str.API:_sent_all_of_remaining__d__sendc_d_
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
jmp 0x1400ca6cf
mov rax, qword [0x14011bd40]
movzx eax, byte [rax]
test al, al
je 0x1400ca6cf
mov rax, qword [0x14011c1e0]
movzx eax, byte [rax]
test al, al
jne 0x1400ca683
mov rax, qword [0x14011be20]
movzx eax, byte [rax]
test al, al
jne 0x1400ca683
mov rax, qword [0x14011be10]
mov eax, dword [rax]
cmp eax, 3
jle 0x1400ca6cf
mov ecx, dword [rbp + 0x3c8]
lea rax, [rbp - 0x50]
mov edx, dword [rbp + 0x3e8]
mov dword [rsp + 0x28], edx
mov edx, dword [rbp + 0x3e4]
mov dword [rsp + 0x20], edx
mov r9d, ecx
lea r8, str.API:_sent__d_of_remaining__d__sendc_d_
mov edx, 0x200
mov rcx, rax
call sym.snprintf_2
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
mov eax, dword [rbp + 0x3c8]
sub dword [rbp + 0x3e4], eax
mov eax, dword [rbp + 0x3c8]
cdqe
add qword [rbp + 0x3d8], rax
cmp dword [rbp + 0x3c8], 0
jne 0x1400ca6fa
add dword [rbp + 0x3ec], 1
cmp dword [rbp + 0x3ec], 4
jg 0x1400ca716
cmp dword [rbp + 0x3e4], 0
jg 0x1400ca269
jmp 0x1400ca716
nop
jmp 0x1400ca716
nop
add rsp, 0x470
pop rbp
ret