Function at 0x547660
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 [0x644040]
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 0x547b63
mov eax, ebx
neg eax
and eax, 0xf
je 0x547b71
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 + 0x625d90]
movdqa xmm0, xmm2
movdqa xmm4, xmm2
movdqa xmm2, xmmword [0x625030]
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 [0x625d20]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x625d30], 1
pxor xmm0, xmm1
movdqa xmmword [esp], xmm0
movdqa xmm0, xmm4
cmp edi, 0x40
jb 0x54785a
movq xmm6, qword [0x625d30]
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 [0x625d20]
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 0x547790
movdqa xmm4, xmm0
cmp edi, 0x30
jae 0x54795e
cmp edi, 0x20
jae 0x5478cb
cmp edi, 0x10
jb 0x547947
movdqa xmm1, xmmword [ebx]
movq xmm0, qword [0x625d30]
pclmulqdq xmm0, xmm4, 0x10
pclmulqdq xmm4, xmmword [0x625d20], 0x10
pxor xmm4, xmm0
movdqu xmmword [esi], xmm1
pxor xmm4, xmm1
add edi, 0xfffffff0
je 0x547b85
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 0x5479fb
movdqa xmm1, xmmword [ebx]
movdqa xmm0, xmmword [ebx + 0x10]
movq xmm2, qword [0x625d30]
movdqa xmm3, xmm5
pclmulqdq xmm3, xmm2, 1
movdqa xmm6, xmmword [0x625d20]
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 0x547b45
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 0x5479fb
test edi, edi
movdqa xmm3, xmm4
movdqa xmm4, xmmword [esp + 0x20]
jne 0x5479fb
jmp 0x547afe
movq xmm1, qword [0x625d30]
movdqa xmm0, xmmword [esp + 0x10]
movdqa xmm2, xmm0
pclmulqdq xmm2, xmm1, 1
movdqa xmm3, xmmword [0x625d20]
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 0x547b33
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.005670c0
add esp, 0xc
lea eax, [esp + 0x50]
movaps xmm0, xmmword [eax]
movaps xmmword [esp + 0x20], xmm0
push edi
push ebx
push esi
call fcn.005670c0
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 + 0x625d90]
movdqa xmm0, xmmword [esp + 0x30]
movdqa xmm2, xmmword [0x625030]
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 [0x625d20]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x625d30], 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.00565ea5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movdqa xmm3, xmmword [esp]
movdqa xmmword [esp], xmm0
movdqa xmm4, xmmword [esp + 0x20]
jmp 0x547afe
movdqa xmm3, xmmword [esp + 0x10]
movdqa xmm5, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm4
movdqa xmmword [esp], xmm1
movdqa xmm4, xmmword [esp + 0x20]
jmp 0x547afe
test edi, edi
movdqa xmm3, xmm2
jne 0x5479fb
jmp 0x547b20
movdqa xmm4, xmm2
movdqu xmm0, xmmword [ecx + 0x6c]
movdqa xmmword [esp + 0x20], xmm0
jmp 0x547771
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 0x547afe