Function at 0x56a830
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push esi
push edi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
call 0x56a849
pop ecx
lea ecx, [ecx + 0x2f7]
movdqu xmm0, xmmword [eax]
movdqa xmm5, xmmword [ecx]
movdqu xmm2, xmmword [edx]
pshufb xmm0, xmm5
sub ebx, 0x10
je 0x56aa5f
movdqu xmm3, xmmword [esi]
movdqu xmm6, xmmword [esi + 0x10]
pshufb xmm3, xmm5
pshufb xmm6, xmm5
movdqu xmm5, xmmword [edx + 0x20]
pxor xmm0, xmm3
pshufd xmm3, xmm6, 0x4e
movdqa xmm7, xmm6
pxor xmm3, xmm6
lea esi, [esi + 0x20]
pclmulqdq xmm6, xmm2, 0
pclmulqdq xmm7, xmm2, 0x11
pclmulqdq xmm3, xmm5, 0
movups xmm2, xmmword [edx + 0x10]
nop
sub ebx, 0x20
jbe 0x56a9b1
jmp 0x56a8c0
pshufd xmm4, xmm0, 0x4e
movdqa xmm1, xmm0
pxor xmm4, xmm0
nop
pclmulqdq xmm0, xmm2, 0
pclmulqdq xmm1, xmm2, 0x11
pclmulqdq xmm4, xmm5, 0x10
movups xmm2, xmmword [edx]
xorps xmm0, xmm6
movdqa xmm5, xmmword [ecx]
xorps xmm1, xmm7
movdqu xmm7, xmmword [esi]
pxor xmm3, xmm0
movdqu xmm6, xmmword [esi + 0x10]
pxor xmm3, xmm1
pshufb xmm7, xmm5
pxor xmm4, xmm3
movdqa xmm3, xmm4
psrldq xmm4, 8
pslldq xmm3, 8
pxor xmm1, xmm4
pxor xmm0, xmm3
pshufb xmm6, xmm5
pxor xmm1, xmm7
movdqa xmm7, xmm6
movdqa xmm4, xmm0
movdqa xmm3, xmm0
psllq xmm0, 5
pxor xmm3, xmm0
psllq xmm0, 1
pxor xmm0, xmm3
pclmulqdq xmm6, xmm2, 0
movups xmm5, xmmword [edx + 0x20]
psllq xmm0, 0x39
movdqa xmm3, xmm0
pslldq xmm0, 8
psrldq xmm3, 8
pxor xmm0, xmm4
pxor xmm1, xmm3
pshufd xmm3, xmm7, 0x4e
movdqa xmm4, xmm0
psrlq xmm0, 1
pxor xmm3, xmm7
pxor xmm1, xmm4
pclmulqdq xmm7, xmm2, 0x11
movups xmm2, xmmword [edx + 0x10]
pxor xmm4, xmm0
psrlq xmm0, 5
pxor xmm0, xmm4
psrlq xmm0, 1
pxor xmm0, xmm1
pclmulqdq xmm3, xmm5, 0
lea esi, [esi + 0x20]
sub ebx, 0x20
ja 0x56a8c0
pshufd xmm4, xmm0, 0x4e
movdqa xmm1, xmm0
pxor xmm4, xmm0
pclmulqdq xmm0, xmm2, 0
pclmulqdq xmm1, xmm2, 0x11
pclmulqdq xmm4, xmm5, 0x10
movdqa xmm5, xmmword [ecx]
xorps xmm0, xmm6
xorps xmm1, xmm7
pxor xmm3, xmm0
pxor xmm3, xmm1
pxor xmm4, xmm3
movdqa xmm3, xmm4
psrldq xmm4, 8
pslldq xmm3, 8
pxor xmm1, xmm4
pxor xmm0, xmm3
movdqa xmm4, xmm0
movdqa xmm3, xmm0
psllq xmm0, 5
pxor xmm3, xmm0
psllq xmm0, 1
pxor xmm0, xmm3
psllq xmm0, 0x39
movdqa xmm3, xmm0
pslldq xmm0, 8
psrldq xmm3, 8
pxor xmm0, xmm4
pxor xmm1, xmm3
movdqa xmm4, xmm0
psrlq xmm0, 1
pxor xmm1, xmm4
pxor xmm4, xmm0
psrlq xmm0, 5
pxor xmm0, xmm4
psrlq xmm0, 1
pxor xmm0, xmm1
test ebx, ebx
jne 0x56ab08
movups xmm2, xmmword [edx]
movdqu xmm3, xmmword [esi]
pshufb xmm3, xmm5
pxor xmm0, xmm3
movdqa xmm1, xmm0
pshufd xmm3, xmm0, 0x4e
pshufd xmm4, xmm2, 0x4e
pxor xmm3, xmm0
pxor xmm4, xmm2
pclmulqdq xmm0, xmm2, 0
pclmulqdq xmm1, xmm2, 0x11
pclmulqdq xmm3, xmm4, 0
xorps xmm3, xmm0
xorps xmm3, xmm1
movdqa xmm4, xmm3
psrldq xmm3, 8
pslldq xmm4, 8
pxor xmm1, xmm3
pxor xmm0, xmm4
movdqa xmm4, xmm0
movdqa xmm3, xmm0
psllq xmm0, 5
pxor xmm3, xmm0
psllq xmm0, 1
pxor xmm0, xmm3
psllq xmm0, 0x39
movdqa xmm3, xmm0
pslldq xmm0, 8
psrldq xmm3, 8
pxor xmm0, xmm4
pxor xmm1, xmm3
movdqa xmm4, xmm0
psrlq xmm0, 1
pxor xmm1, xmm4
pxor xmm4, xmm0
psrlq xmm0, 5
pxor xmm0, xmm4
psrlq xmm0, 1
pxor xmm0, xmm1
pshufb xmm0, xmm5
movdqu xmmword [eax], xmm0
pop edi
pop esi
pop ebx
pop ebp
ret