Files
CS2Cheat/examples/raze-internal-cs2-main/dependencies/funchook/src/wstring.h
2025-07-22 22:06:34 +03:00

39 lines
1.1 KiB
C

/*
wstring.h
diStorm3 - Powerful disassembler for X86/AMD64
http://ragestorm.net/distorm/
distorm at gmail dot com
Copyright (C) 2003-2021 Gil Dabah
This library is licensed under the BSD license. See the file COPYING.
*/
#ifndef WSTRING_H
#define WSTRING_H
#include "config.h"
#include "../include/mnemonics.h"
#ifndef DISTORM_LIGHT
_INLINE_ void strcat_WSR(unsigned char** str, const _WRegister* reg)
{
/*
* Longest register name is YMM15 - 5 characters,
* Copy 8 so compiler can do a QWORD move.
* We copy nul termination and fix the length, so it's okay to copy more to the output buffer.
* There's a sentinel register to make sure we don't read past the end of the registers table.
*/
memcpy((int8_t*)*str, (const int8_t*)reg->p, 8);
*str += reg->length;
}
#define strfinalize_WS(s, end) do { *end = 0; s.length = (unsigned int)((size_t)end - (size_t)s.p); } while (0)
#define chrcat_WS(s, ch) do { *s = ch; s += 1; } while (0)
#define strcat_WS(s, buf, copylen, advancelen) do { memcpy((int8_t*)s, buf, copylen); s += advancelen; } while(0)
#endif /* DISTORM_LIGHT */
#endif /* WSTRING_H */