char *__fastcall sub_5EAC(__int64 a1, char *src, unsigned __int64 count) { unsigned __int64 v6; // rbp if ( !count ) /*0x5ec9*/ return dst; /*0x5ecb*/ v6 = count - 1; /*0x5ee2*/ if ( count - 1 > -1 - (__int64)dst ) /*0x5ee9*/ sub_5450( /*0x5efe*/ (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", 56, (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)DestinationBuffer)"); if ( v6 > ~(unsigned __int64)src ) /*0x5f0c*/ sub_5450( /*0x5f21*/ (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", 57, (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)SourceBuffer)"); if ( dst == src ) /*0x5f29*/ return dst; /*0x5f2b*/ else return sub_350(dst, src, count); /*0x5f39*/ }