char *__fastcall sub_350(char *dst, char *src, unsigned __int64 count)
{
char *dst_2; // rax
unsigned __int64 count_1; // rcx
char *dst_1; // rdi
char *src_1; // rsi
dst_2 = dst; /*0x360*/
if ( src < dst && &src[count - 1] >= dst ) /*0x368*/
{
src_1 = &src[count - 1]; /*0x380*/
dst_1 = &dst[count - 1]; /*0x383*/
}
else
{
count_1 = count; /*0x36a*/
count &= 7u; /*0x36d*/
count_1 >>= 3; /*0x374*/
qmemcpy(dst, src, 8 * count_1); /*0x378*/
src_1 = &src[8 * count_1]; /*0x378*/
dst_1 = &dst[8 * count_1]; /*0x378*/
}
qmemcpy(dst_1, src_1, count); /*0x38c*/
return dst_2; /*0x38f*/
}