Function at 0x4a4070
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 [0x5c1040]
xor eax, ebp
mov dword [esp + 0x68], eax
movdqu xmm4, 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 0x4a42af
mov eax, ebx
neg eax
and eax, 0xf
jne 0x4a448a
movdqu xmm0, xmmword [ecx + 0x6c]
movdqa xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm4
cmp edi, 0x40
jb 0x4a41ba
movq xmm6, qword [0x59e180]
nop word cs:[eax + eax]
movdqa xmm4, xmmword [ebx]
movaps xmm1, xmmword [ebx + 0x10]
movaps xmmword [esp + 0x30], xmm1
movaps xmm1, xmmword [ebx + 0x20]
movaps xmmword [esp + 0x40], xmm1
movdqa xmm1, xmm0
pclmulqdq xmm1, xmm6, 1
movdqa xmm3, xmmword [0x59e170]
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 + 0x30]
movdqu xmmword [esi + 0x10], xmm3
pxor xmm5, xmm3
movdqa xmm3, xmmword [esp + 0x40]
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 0x4a40f0
movdqa xmm4, xmm0
cmp edi, 0x30
jae 0x4a42cf
cmp edi, 0x20
jae 0x4a422f
cmp edi, 0x10
jb 0x4a42bc
movdqa xmm1, xmmword [ebx]
movq xmm0, qword [0x59e180]
pclmulqdq xmm0, xmm4, 0x10
pclmulqdq xmm4, xmmword [0x59e170], 0x10
pxor xmm4, xmm0
movdqu xmmword [esi], xmm1
movdqa xmm0, xmm4
pxor xmm0, xmm1
add edi, 0xfffffff0
je 0x4a4546
add esi, 0x10
add ebx, 0x10
movdqa xmm4, xmm5
movdqa xmm5, xmmword [esp + 0x10]
movdqa xmm1, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm1
movdqa xmmword [esp], xmm0
jmp 0x4a436c
movdqa xmm1, xmmword [ebx]
movdqa xmm0, xmmword [ebx + 0x10]
movq xmm2, qword [0x59e180]
movdqa xmm3, xmm5
pclmulqdq xmm3, xmm2, 1
movdqa xmm6, xmmword [0x59e170]
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
movdqa xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm1, xmm5
pxor xmm1, xmm0
add edi, 0xffffffe0
je 0x4a4572
add esi, 0x20
add ebx, 0x20
movdqa xmm4, xmmword [esp + 0x10]
movdqa xmm5, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm2
movdqa xmmword [esp], xmm1
jmp 0x4a436c
test edi, edi
jne 0x4a436c
jmp 0x4a4477
test edi, edi
movdqa xmm2, xmmword [esp + 0x20]
jne 0x4a436c
jmp 0x4a4455
movq xmm1, qword [0x59e180]
movdqa xmm0, xmmword [esp + 0x10]
movdqa xmm2, xmm0
pclmulqdq xmm2, xmm1, 1
movdqa xmm3, xmmword [0x59e170]
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]
pclmulqdq xmm1, xmm4, 0x10
pclmulqdq xmm4, xmm3, 0x10
movdqa xmm3, xmmword [ebx + 0x10]
pxor xmm4, xmm1
movdqa xmm1, xmmword [ebx + 0x20]
movdqu xmmword [esi], xmm2
movdqa xmm5, xmm4
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 0x4a455d
add esi, 0x30
add ebx, 0x30
movdqa xmm4, xmmword [esp]
movdqa xmmword [esp], xmm0
movdqa xmmword [esp + 0x30], xmm4
movdqa xmmword [esp + 0x40], xmm5
pxor xmm0, xmm0
lea eax, [esp + 0x58]
movdqu xmmword [eax], xmm0
push edi
push ebx
push eax
call fcn.004f53a0
add esp, 0xc
lea eax, [esp + 0x58]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x20], xmm0
push edi
push ebx
push esi
call fcn.004f53a0
movdqa xmm4, xmmword [esp + 0x3c]
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 + 0x59e1d0]
movdqa xmm0, xmm4
movdqa xmm2, xmmword [0x597bf0]
pxor xmm2, xmm1
pshufb xmm4, xmm2
movdqa xmm3, xmm5
pshufb xmm3, xmm1
por xmm4, xmm3
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
pshufb xmm7, xmm2
movdqa xmm2, xmmword [esp + 0x20]
pshufb xmm0, xmm1
pshufb xmm2, xmm1
por xmm7, xmm2
movdqa xmm1, xmmword [0x59e170]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x59e180], 1
pxor xmm0, xmm1
movdqa xmmword [esp], xmm0
movdqu xmmword [ecx + 0x2c], xmm4
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], xmm2
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.004f1eb0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
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 + 0x59e1d0]
movdqa xmm0, xmm4
movdqa xmm2, xmmword [0x597bf0]
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 xmm3, xmmword [esp + 0x20]
pshufb xmm3, xmm1
movdqa xmmword [esp + 0x20], xmm3
por xmm7, xmm3
movdqa xmm1, xmmword [0x59e170]
pclmulqdq xmm1, xmm0, 1
pxor xmm1, xmm7
pclmulqdq xmm0, xmmword [0x59e180], 1
pxor xmm0, xmm1
movdqa xmmword [esp], xmm0
jmp 0x4a40d1
movdqa xmm4, xmm5
movdqa xmm5, xmmword [esp + 0x10]
movdqa xmm1, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm1
jmp 0x4a4562
movdqa xmm4, xmmword [esp]
movdqa xmmword [esp], xmm0
movdqa xmm2, xmmword [esp + 0x20]
jmp 0x4a4455
movdqa xmm4, xmmword [esp + 0x10]
movdqa xmm5, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm2
movdqa xmmword [esp], xmm1
movdqa xmm2, xmmword [esp + 0x20]
jmp 0x4a4455