Function at 0x55ba20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x68], eax
movdqu xmm2, xmmword [ecx + 0x2c]
movdqu xmm5, xmmword [ecx + 0x3c]
movups xmm0, xmmword [ecx + 0x4c]
movaps xmmword [esp + 0x10], xmm0
movdqu xmm0, xmmword [ecx + 0x5c]
movdqa xmmword [esp], xmm0
cmp edi, 0xf
jle 0x55bf23
mov eax, ebx
neg eax
and eax, 0xf
je 0x55bef1
movups xmm0, xmmword [ebx]
movaps xmmword [esp + 0x20], xmm0
movups xmmword [esi], xmm0
add esi, eax
add ebx, eax
sub edi, eax
shl eax, 4
movdqa xmm1, xmmword [eax + 0x62ced0]
movdqa xmm0, xmm2
movdqa xmm4, xmm2
movdqa xmm2, xmmword [0x62c2a0]
pxor xmm2, xmm1
pshufb xmm4, xmm2
movdqa xmm3, xmm5
pshufb xmm3, xmm1
por xmm4, xmm3
pshufb xmm5, xmm2
movdqa xmm6, xmmword [esp + 0x10]
movdqa xmm3, xmm6
pshufb xmm3, xmm1
por xmm5, xmm3
pshufb xmm6, xmm2
movdqa xmm7, xmmword [esp]
movdqa xmm3, xmm7
pshufb xmm3, xmm1
por xmm6, xmm3
movdqa xmmword [esp + 0x10], xmm6
pshufb xmm7, xmm2
pshufb xmm0, xmm1
movdqa xmm2, xmmword [esp + 0x20]
pshufb xmm2, xmm1
movdqa xmmword [esp + 0x20], xmm2
por xmm7, xmm2
movdqa xmm1, xmmword [0x62ce70]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x62ce80], 1
pxor xmm0, xmm1
movdqa xmmword [esp], xmm0
movdqa xmm0, xmm4
cmp edi, 0x40
jb 0x55bc1a
movq xmm6, qword [0x62ce80]
nop word cs:[eax + eax]
movdqa xmm4, xmmword [ebx]
movaps xmm1, xmmword [ebx + 0x10]
movaps xmmword [esp + 0x40], xmm1
movaps xmm1, xmmword [ebx + 0x20]
movaps xmmword [esp + 0x30], xmm1
movdqa xmm1, xmm0
pclmulqdq xmm1, xmm6, 1
movdqa xmm3, xmmword [0x62ce70]
pclmulqdq xmm0, xmm3, 0x10
pxor xmm0, xmm1
movdqa xmm1, xmm5
pclmulqdq xmm1, xmm6, 1
pclmulqdq xmm5, xmm3, 0x10
pxor xmm5, xmm1
movdqa xmm1, xmmword [esp + 0x10]
movdqa xmm7, xmm1
pclmulqdq xmm7, xmm6, 1
pclmulqdq xmm1, xmm3, 0x10
pxor xmm1, xmm7
movdqa xmm7, xmmword [esp]
movdqa xmm2, xmm7
pclmulqdq xmm2, xmm6, 1
pclmulqdq xmm7, xmm3, 0x10
pxor xmm7, xmm2
movdqa xmm2, xmmword [ebx + 0x30]
movdqu xmmword [esi], xmm4
pxor xmm0, xmm4
movdqa xmm3, xmmword [esp + 0x40]
movdqu xmmword [esi + 0x10], xmm3
pxor xmm5, xmm3
movdqa xmm3, xmmword [esp + 0x30]
movdqu xmmword [esi + 0x20], xmm3
pxor xmm1, xmm3
movdqa xmmword [esp + 0x10], xmm1
movdqu xmmword [esi + 0x30], xmm2
pxor xmm7, xmm2
movdqa xmmword [esp], xmm7
add edi, 0xffffffc0
add ebx, 0x40
add esi, 0x40
cmp edi, 0x3f
ja 0x55bb50
movdqa xmm4, xmm0
cmp edi, 0x30
jae 0x55bd1c
jmp 0x55bc7f
movdqa xmm1, xmmword [ebx]
movq xmm0, qword [0x62ce80]
pclmulqdq xmm0, xmm4, 0x10
pclmulqdq xmm4, xmmword [0x62ce70], 0x10
pxor xmm4, xmm0
movdqu xmmword [esi], xmm1
pxor xmm4, xmm1
add edi, 0xfffffff0
je 0x55bf46
add esi, 0x10
add ebx, 0x10
movdqa xmm3, xmm5
movdqa xmm5, xmmword [esp + 0x10]
movdqa xmm1, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm1
movdqa xmmword [esp], xmm4
jmp 0x55bdb9
cmp edi, 0x20
jae 0x55bca0
cmp edi, 0x10
jae 0x55bc29
test edi, edi
movdqa xmm3, xmm4
movdqa xmm4, xmmword [esp + 0x20]
jne 0x55bdb9
jmp 0x55bebc
movdqa xmm1, xmmword [ebx]
movdqa xmm0, xmmword [ebx + 0x10]
movq xmm2, qword [0x62ce80]
movdqa xmm3, xmm5
pclmulqdq xmm3, xmm2, 1
movdqa xmm6, xmmword [0x62ce70]
pclmulqdq xmm5, xmm6, 0x10
pxor xmm5, xmm3
pclmulqdq xmm2, xmm4, 0x10
pclmulqdq xmm4, xmm6, 0x10
pxor xmm4, xmm2
movdqu xmmword [esi], xmm1
movdqu xmmword [esi + 0x10], xmm0
pxor xmm4, xmm1
movdqa xmm1, xmm5
pxor xmm1, xmm0
add edi, 0xffffffe0
je 0x55bf05
add esi, 0x20
add ebx, 0x20
movdqa xmm3, xmmword [esp + 0x10]
movdqa xmm5, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm4
movdqa xmmword [esp], xmm1
jmp 0x55bdb9
movq xmm1, qword [0x62ce80]
movdqa xmm0, xmmword [esp + 0x10]
movdqa xmm2, xmm0
pclmulqdq xmm2, xmm1, 1
movdqa xmm3, xmmword [0x62ce70]
pclmulqdq xmm0, xmm3, 0x10
pxor xmm0, xmm2
movdqa xmm2, xmm5
pclmulqdq xmm2, xmm1, 1
pclmulqdq xmm5, xmm3, 0x10
movdqa xmm6, xmm5
pxor xmm6, xmm2
movdqa xmm2, xmmword [ebx]
movdqa xmm5, xmm4
pclmulqdq xmm1, xmm4, 0x10
pclmulqdq xmm5, xmm3, 0x10
movdqa xmm3, xmmword [ebx + 0x10]
pxor xmm5, xmm1
movdqa xmm1, xmmword [ebx + 0x20]
movdqu xmmword [esi], xmm2
pxor xmm5, xmm2
movdqu xmmword [esi + 0x10], xmm3
pxor xmm6, xmm3
movdqa xmmword [esp + 0x10], xmm6
movdqu xmmword [esi + 0x20], xmm1
pxor xmm0, xmm1
add edi, 0xffffffd0
je 0x55bf31
add esi, 0x30
add ebx, 0x30
movdqa xmm3, xmmword [esp]
movdqa xmmword [esp], xmm0
movdqa xmmword [esp + 0x30], xmm3
movdqa xmmword [esp + 0x40], xmm5
pxor xmm0, xmm0
lea eax, [esp + 0x50]
movdqa xmmword [eax], xmm0
push edi
push ebx
push eax
call fcn.005822f0
add esp, 0xc
lea eax, [esp + 0x50]
movaps xmm0, xmmword [eax]
movaps xmmword [esp + 0x20], xmm0
push edi
push ebx
push esi
call fcn.005822f0
movdqa xmm4, xmmword [esp + 0x2c]
movdqa xmm5, xmmword [esp + 0x4c]
movdqa xmm6, xmmword [esp + 0x1c]
mov ecx, dword [ebp + 8]
add esp, 0xc
shl edi, 4
movdqa xmm1, xmmword [edi + 0x62ced0]
movdqa xmm0, xmmword [esp + 0x30]
movdqa xmm2, xmmword [0x62c2a0]
pxor xmm2, xmm1
movdqa xmm3, xmmword [esp + 0x30]
pshufb xmm3, xmm2
movdqa xmmword [esp + 0x30], xmm3
movdqa xmm3, xmm5
pshufb xmm3, xmm1
movdqa xmm7, xmmword [esp + 0x30]
por xmm7, xmm3
movdqa xmmword [esp + 0x30], xmm7
pshufb xmm5, xmm2
movdqa xmm3, xmm6
pshufb xmm3, xmm1
por xmm5, xmm3
pshufb xmm6, xmm2
movdqa xmm7, xmmword [esp]
movdqa xmm3, xmm7
pshufb xmm3, xmm1
por xmm6, xmm3
movdqa xmmword [esp + 0x10], xmm6
movdqa xmm3, xmmword [esp + 0x30]
pshufb xmm7, xmm2
pshufb xmm0, xmm1
pshufb xmm4, xmm1
por xmm7, xmm4
movdqa xmm1, xmmword [0x62ce70]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x62ce80], 1
pxor xmm0, xmm1
movdqa xmmword [esp], xmm0
movdqu xmmword [ecx + 0x2c], xmm3
movdqu xmmword [ecx + 0x3c], xmm5
movaps xmm0, xmmword [esp + 0x10]
movups xmmword [ecx + 0x4c], xmm0
movdqa xmm0, xmmword [esp]
movdqu xmmword [ecx + 0x5c], xmm0
movdqu xmmword [ecx + 0x6c], xmm4
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movdqa xmm4, xmm2
movdqu xmm0, xmmword [ecx + 0x6c]
movdqa xmmword [esp + 0x20], xmm0
jmp 0x55bb31
movdqa xmm3, xmmword [esp + 0x10]
movdqa xmm5, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm4
movdqa xmmword [esp], xmm1
movdqa xmm4, xmmword [esp + 0x20]
jmp 0x55bebc
test edi, edi
movdqa xmm3, xmm2
jne 0x55bdb9
jmp 0x55bede
movdqa xmm3, xmmword [esp]
movdqa xmmword [esp], xmm0
movdqa xmm4, xmmword [esp + 0x20]
jmp 0x55bebc
movdqa xmm3, xmm5
movdqa xmm5, xmmword [esp + 0x10]
movdqa xmm1, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm1
movdqa xmmword [esp], xmm4
movdqa xmm4, xmmword [esp + 0x20]
jmp 0x55bebc