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

Disassembly:
push rbp
push rdi
sub rsp, 0x478
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x410], rcx
mov qword [rbp + 0x418], rdx
mov eax, r8d
mov byte [rbp + 0x420], al
mov rax, qword [rbp + 0x410]
mov rax, qword [rax + 8]
mov qword [rbp + 0x3d8], rax
mov rax, qword [rbp + 0x410]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.strcpy
mov rax, qword [rbp + 0x410]
movzx eax, byte [rax + 0x19]
test al, al
je 0x4c3177
mov rax, qword [rbp + 0x3d8]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
mov word [rax], 0x5d
cmp byte [rbp + 0x420], 0
je 0x4c31c0
mov rax, qword [rbp + 0x3d8]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movabs rdi, 0x7d313a226469222c
mov qword [rax], rdi
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 [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4c3285
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c3220
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c3220
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4c3285
cmp dword [rbp + 0x3d0], 0xa
jg 0x4c3232
mov rax, qword [0x004ee580]
jmp 0x4c3239
lea rax, [0x004fa2cf]
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 0x4c3734
mov dword [rbp + 0x3c0], 0
mov dword [rbp + 0x3c4], 0xc350
mov dword [rbp + 0x1b0], 0
mov dword [rbp + 0x3d4], 0
jmp 0x4c32e8
mov eax, dword [rbp + 0x3d4]
mov rax, qword [rbp + rax*8 + 0x1b8]
cmp qword [rbp + 0x418], rax
je 0x4c32f8
add dword [rbp + 0x3d4], 1
mov eax, dword [rbp + 0x1b0]
cmp dword [rbp + 0x3d4], eax
jb 0x4c32ca
jmp 0x4c32f9
nop
mov eax, dword [rbp + 0x1b0]
cmp dword [rbp + 0x3d4], eax
jne 0x4c3336
mov eax, dword [rbp + 0x1b0]
cmp eax, 0x3f
ja 0x4c3336
mov eax, dword [rbp + 0x3d4]
mov rdx, qword [rbp + 0x418]
mov qword [rbp + rax*8 + 0x1b8], rdx
mov eax, dword [rbp + 0x1b0]
add eax, 1
mov dword [rbp + 0x1b0], eax
mov rax, qword [rbp + 0x418]
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 0x4c33e5
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c33a8
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c33a8
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
test eax, eax
jle 0x4c374c
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 0x4c374c
mov ecx, dword [rbp + 0x3e4]
mov rdx, qword [rbp + 0x3d8]
mov rax, qword [rbp + 0x418]
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 0x4c34cd
add dword [rbp + 0x3ec], 1
call sym.sock_blocks_1
test al, al
je 0x4c343d
jmp 0x4c3734
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c346a
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c346a
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
test eax, eax
jle 0x4c374f
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 0x4c374f
cmp dword [rbp + 0x3e8], 1
jg 0x4c35ec
mov eax, dword [rbp + 0x3c8]
cmp eax, dword [rbp + 0x3e4]
jne 0x4c3565
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4c3709
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c3528
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c3528
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4c3709
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 0x4c3709
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4c3709
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c35a5
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c35a5
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4c3709
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 0x4c3709
mov eax, dword [rbp + 0x3c8]
cmp eax, dword [rbp + 0x3e4]
jne 0x4c3685
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4c3709
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c363e
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c363e
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4c3709
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 0x4c3709
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4c3709
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4c36bd
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4c36bd
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4c3709
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 0x4c3734
add dword [rbp + 0x3ec], 1
cmp dword [rbp + 0x3ec], 4
jg 0x4c3750
cmp dword [rbp + 0x3e4], 0
jg 0x4c32a0
jmp 0x4c3750
nop
jmp 0x4c3750
nop
add rsp, 0x478
pop rdi
pop rbp
ret