
Pattern: \xD9\x98\x00\x00\x00\x00\x83\xC4\x04\x8B\x4C\x24\x14 Mask: xx????xxxxxxx

? tested itPattern :\xD9\x98\x00\x00\x00\x00\x83\xC4\x04\x8B\x4C\x24\x14\x68\x00\x00\x00\x00\x51\xE8\x00\x00\x00\x00\x83\xC4\x08\x85\xC0\x74\x4A\x8B\x50\x04\x8B\x0D\x00\x00\x00\x00\x85\xC9\x8B\x42\x04\x8B\x78\x04\x74\x0E Mask : xx????xxxxxxxx????xx????xxxxxxxxxxxx????xxxxxxxxxx
DWORD CShellFindPattern(BYTE *bMask, char * szMask, int codeOffset, BOOL extract)
DWORD AmmoDamage = CShellFindPattern((PBYTE)"\xD9\x98\x00\x00\x00\x00\x83\xC4\x04\x8B\x4C\x24\x14\x68\x00\x00\x00\x00\x51\xE8\x00\x00\x00\x00\x83\xC4\x08\x85\xC0\x74\x4A\x8B\x50\x04\x8B\x0D\x00\x00\x00\x00\x85\xC9\x8B\x42\x04\x8B\x78\x04", "xx????xxxxxxxx????xx????xxxxxxxxxxxx????xxxxxxxx",2,true);
Writelog("#define AmmoDamage 0x%X",AmmoDamage);
i've the array shorter than you// Variables:
DWORD pattAmmoDamage;
// Function:
pattAmmoDamage = FindPattern((DWORD)GetModuleHandleA("CShell.dll"), 0xFC7000, (PBYTE)"\xD9\x83\x00\x00\x00\x00\x51\x8B\xCE\xD9\x1C\x24\xE8\x00\x00\x00\x00\x8B\xCE\xE8\x00\x00\x00\x00\x8B\xCE\xE8\x00\x00\x00\x00\x6A\x00\x68\x00\x00\x00\x00\x8B\xCE\xE8\x00\x00\x00\x00\x8B\x8B\x00\x00\x00\x00", "xx????xxxxxxx????xxx????xxx????xxx????xxx????xx????");
pattAmmoDamage = *(PDWORD)(pattAmmoDamage + 0x01);