Function at 0x514e30
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x88
and dword [ebp + 0x60], 0
push ebx
push esi
lea eax, [ebp - 0x24]
push edi
mov dword [ebp + 0x5c], eax
mov esi, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x70]
mov edx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x5c]
pcmpeqb mm7, mm7
pcmpeqb mm5, mm5
psrlw mm7, 8
psrlq mm5, 0x20
psllq mm5, 0x10
mov ecx, 8
pxor mm0, mm0
pxor mm6, mm6
movq mm1, qword [esi]
movq mm2, qword [edi]
movq mm3, mm1
movq mm4, mm2
punpcklbw mm1, mm0
punpcklbw mm2, mm0
punpckhbw mm3, mm0
punpckhbw mm4, mm0
psubw mm1, mm2
psubw mm3, mm4
movq mm2, mm1
pxor mm5, mm5
pxor mm7, mm7
pcmpgtw mm5, mm1
pcmpgtw mm7, mm3
psubw mm6, mm5
psubw mm6, mm7
pxor mm5, mm1
pxor mm7, mm3
paddw mm6, mm5
paddw mm6, mm7
punpcklwd mm1, mm3
punpckhwd mm2, mm3
movq mm3, mm1
punpcklwd mm1, mm2
punpckhwd mm3, mm2
movq mm2, mm3
paddw mm2, mm1
psubw mm1, mm3
movq mm3, mm2
punpcklwd mm2, mm1
punpckhwd mm3, mm1
movq mm1, mm2
punpckldq mm1, mm3
punpckhdq mm2, mm3
movq mm3, mm2
paddw mm3, mm1
psubw mm2, mm1
movq mm1, mm3
punpckldq mm1, mm2
punpckhdq mm3, mm2
movq mm2, mm1
paddw mm1, mm3
psubw mm2, mm3
movq qword [eax], mm1
movq qword [eax + 8], mm2
add eax, 0x10
add esi, ebx
add edi, edx
dec ecx
jne 0x514e74
movq mm0, mm6
psrlq mm6, 0x20
paddw mm0, mm6
movq mm6, mm0
psrld mm6, 0x10
paddw mm0, mm6
movd ecx, mm0
and ecx, 0xffff
cmp ecx, dword [ebp + 0x7c]
jl 0x514f3c
mov ecx, 0xffffff
mov dword [ebp + 0x60], ecx
jmp 0x51520f
sub eax, 0x80
movq mm1, qword [eax]
movq mm2, qword [eax + 0x10]
movq mm3, qword [eax + 8]
movq mm4, qword [eax + 0x18]
movq mm5, mm2
movq mm6, mm4
paddw mm2, mm1
psubw mm1, mm5
paddw mm4, mm3
psubw mm3, mm6
movq qword [eax], mm2
movq qword [eax + 0x10], mm1
movq qword [eax + 8], mm4
movq qword [eax + 0x18], mm3
movq mm1, qword [eax + 0x20]
movq mm2, qword [eax + 0x30]
movq mm3, qword [eax + 0x28]
movq mm4, qword [eax + 0x38]
movq mm5, mm2
movq mm6, mm4
paddw mm2, mm1
psubw mm1, mm5
paddw mm4, mm3
psubw mm3, mm6
movq mm5, qword [eax]
movq mm6, qword [eax + 8]
movq mm7, mm5
paddw mm5, mm2
psubw mm7, mm2
movq mm2, mm6
movq qword [eax], mm5
movq qword [eax + 0x20], mm7
movq mm5, qword [eax + 0x10]
movq mm7, qword [eax + 0x18]
paddw mm6, mm4
psubw mm2, mm4
movq qword [eax + 8], mm6
movq qword [eax + 0x28], mm2
movq mm6, mm5
movq mm2, mm7
paddw mm6, mm1
psubw mm5, mm1
paddw mm2, mm3
psubw mm7, mm3
movq qword [eax + 0x10], mm6
movq qword [eax + 0x18], mm2
movq qword [eax + 0x30], mm5
movq qword [eax + 0x38], mm7
add eax, 0x40
movq mm1, qword [eax]
movq mm2, qword [eax + 0x10]
movq mm3, qword [eax + 8]
movq mm4, qword [eax + 0x18]
movq mm5, mm2
movq mm6, mm4
paddw mm2, mm1
psubw mm1, mm5
paddw mm4, mm3
psubw mm3, mm6
movq qword [eax], mm2
movq qword [eax + 0x10], mm1
movq qword [eax + 8], mm4
movq qword [eax + 0x18], mm3
movq mm1, qword [eax + 0x20]
movq mm2, qword [eax + 0x30]
movq mm3, qword [eax + 0x28]
movq mm4, qword [eax + 0x38]
movq mm5, mm2
movq mm6, mm4
paddw mm2, mm1
psubw mm1, mm5
paddw mm4, mm3
psubw mm3, mm6
movq mm5, qword [eax]
movq mm6, qword [eax + 8]
movq mm7, mm5
paddw mm5, mm2
psubw mm7, mm2
movq mm2, mm6
movq qword [eax], mm5
movq qword [eax + 0x20], mm7
movq mm5, qword [eax + 0x10]
movq mm7, qword [eax + 0x18]
paddw mm6, mm4
psubw mm2, mm4
movq qword [eax + 8], mm6
movq qword [eax + 0x28], mm2
movq mm6, mm5
movq mm2, mm7
paddw mm6, mm1
psubw mm5, mm1
paddw mm2, mm3
psubw mm7, mm3
sub eax, 0x40
movq mm4, mm5
movq mm1, qword [eax + 0x30]
movq mm3, qword [eax + 0x38]
psubw mm5, mm1
paddw mm4, mm1
pxor mm1, mm1
pcmpgtw mm1, mm5
pxor mm5, mm1
psubw mm5, mm1
pxor mm1, mm1
pcmpgtw mm1, mm4
pxor mm4, mm1
psubw mm4, mm1
paddw mm5, mm4
movq mm1, mm7
paddw mm1, mm3
psubw mm7, mm3
pxor mm4, mm4
pxor mm3, mm3
pcmpgtw mm4, mm1
pcmpgtw mm3, mm7
pxor mm1, mm4
pxor mm7, mm3
psubw mm1, mm4
psubw mm7, mm3
paddw mm1, mm7
paddw mm1, mm5
movq mm3, qword [eax + 0x10]
movq mm4, qword [eax + 0x18]
movq mm5, mm3
movq mm7, mm4
paddw mm3, mm6
paddw mm4, mm2
psubw mm5, mm6
psubw mm7, mm2
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm5
pcmpgtw mm2, mm3
pxor mm5, mm6
pxor mm3, mm2
psubw mm5, mm6
psubw mm3, mm2
paddw mm5, mm3
paddw mm1, mm5
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm7
pcmpgtw mm2, mm4
pxor mm7, mm6
pxor mm4, mm2
psubw mm7, mm6
psubw mm4, mm2
paddw mm7, mm4
paddw mm1, mm7
movq mm6, qword [eax]
movq mm2, qword [eax + 8]
movq mm3, qword [eax + 0x40]
movq mm4, qword [eax + 0x48]
movq mm5, mm3
movq mm7, mm4
paddw mm3, mm6
paddw mm4, mm2
psubw mm5, mm6
psubw mm7, mm2
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm5
pcmpgtw mm2, mm3
pxor mm5, mm6
pxor mm3, mm2
psubw mm5, mm6
psubw mm3, mm2
paddw mm5, mm3
paddw mm1, mm5
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm7
pcmpgtw mm2, mm4
pxor mm7, mm6
pxor mm4, mm2
psubw mm7, mm6
psubw mm4, mm2
paddw mm7, mm4
paddw mm1, mm7
movq mm6, qword [eax + 0x20]
movq mm2, qword [eax + 0x28]
movq mm3, qword [eax + 0x60]
movq mm4, qword [eax + 0x68]
movq mm5, mm3
movq mm7, mm4
paddw mm3, mm6
paddw mm4, mm2
psubw mm5, mm6
psubw mm7, mm2
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm5
pcmpgtw mm2, mm3
pxor mm5, mm6
pxor mm3, mm2
psubw mm5, mm6
psubw mm3, mm2
paddw mm5, mm3
paddw mm1, mm5
pxor mm6, mm6
pxor mm2, mm2
pcmpgtw mm6, mm7
pcmpgtw mm2, mm4
pxor mm7, mm6
pxor mm4, mm2
psubw mm7, mm6
psubw mm4, mm2
paddw mm7, mm4
paddw mm1, mm7
movq mm6, mm1
psrlq mm6, 0x20
paddw mm1, mm6
movq mm6, mm1
psrld mm6, 0x10
paddw mm1, mm6
pxor mm4, mm4
punpcklwd mm0, mm4
punpcklwd mm1, mm4
pslld mm0, 3
paddd mm0, mm1
psrld mm0, 4
movd dword [ebp + 0x60], mm0
mov eax, dword [ebp + 0x60]
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14