I think you're looking for something like this: IDC-Scripts
The patterns are a mask of bytes from the first section of this function.
Code:
.text:009A4020 55 push ebp
.text:009A4021 8B EC mov ebp, esp
.text:009A4023 81 EC EC 00 00 00 sub esp, 0ECh
.text:009A4029 E8 02 A5 E6 FF call ClntObjMgrGetCurrent
.text:009A402E 85 C0 test eax, eax
.text:009A4030 74 21 jz short loc_9A4053
.text:009A4032 80 3D F8 9E 0C 01 00 cmp byte_10C9EF8, 0
to make the pattern manually you would ignore bytes likely to change when its re-compiled by marking then as '?'.
An example of this would be something like this line:
Code:
.text:009A4029 E8 02 A5 E6 FF call ClntObjMgrGetCurrent
Where the first byte E8 is the call instruction which *isnt* likely to change and the last 4 bytes are an address that is most likely going to change when its re-compiled, So you would mask these 4 bytes.
You're right about 55 8b ec being very common, This is because these instructions are important to setting up the stack for the function and is why you would use the first ~20 bytes rather than the first ~3 as this would keep it unique.
Alternatively, If you like being lazy, Just go grab the SigMaker(also somewhere on GameDeception) plugin for IDA and it will do all of this for you automatically.
hope this helps.