Seems like this game uses WSASend rather than Send() only. Anyway Recv packets are useless. Detouring the encryption function is a good workaround. Just need to find the function address make assembly to it hook via detour of MS. Then call it.
An example would be like this.
static DWORD EncryptionAddress = 0x0000000;
void Encryption(int a1, int a2, DWORD a3, const char * a4);
{
___asm
{
push a4
push a3
push a2
push a1
Call EncryptionAddress
ADD ESP, 16 // CLean stacks
}
}
where a1 = size
a2 = sort of pointer
a3 = headers
a4 = packet you wanna send
those pushes and args will definitely be not like that. Just an example.

Just giving out a clue for those who wanted to send packets to their own. Keep in mind that wrong packet might kick you out of the game or crash (especially wrong calling of arguments)