Function at 0x4c9770
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
push edi
mov dword [ebp - 0x28], ecx
movups xmm0, xmmword [edx]
mov eax, dword [ecx]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 8], eax
mov eax, dword [ecx + 8]
movups xmmword [ebp - 0x148], xmm0
mov dword [ebp - 4], eax
movups xmm0, xmmword [edx + 0x10]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x10]
movups xmmword [ebp - 0x138], xmm0
mov dword [ebp - 0xc], eax
movups xmm0, xmmword [edx + 0x20]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x1c], eax
lea ebx, [ebp - 0x110]
mov eax, dword [ecx + 0x18]
movups xmmword [ebp - 0x128], xmm0
movups xmm0, xmmword [edx + 0x30]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x1c]
mov ecx, 0x30
mov dword [ebp - 0x14], eax
movups xmmword [ebp - 0x118], xmm0
mov edx, dword [ebx - 0x34]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 4]
mov edi, edx
mov eax, edx
ror edi, 0x12
ror eax, 7
xor edi, eax
shr edx, 3
xor edi, edx
mov eax, esi
mov edx, esi
ror eax, 0x11
ror edx, 0x13
xor edx, eax
shr esi, 0xa
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub ecx, 1
jne 0x4c97e4
mov ecx, dword [ebp - 0x28]
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov edx, dword [ebp - 0xc]
mov edi, edx
ror edi, 0x19
mov eax, edx
ror eax, 0xb
xor edi, eax
mov eax, edx
ror eax, 6
xor edi, eax
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x18]
and eax, edx
mov edx, dword [ebp - 8]
xor eax, dword [ebp - 0x18]
add edi, eax
mov eax, dword [ebp - 0x10]
add edi, dword [ebx + 0x501660]
add edi, dword [ebp + ebx - 0x148]
add edi, dword [ebp - 0x14]
add eax, edi
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
or edx, ebx
and edx, dword [ebp - 4]
mov esi, ebx
ror esi, 0x16
mov eax, ebx
ror eax, 0xd
xor esi, eax
mov eax, ebx
and ebx, dword [ebp - 8]
ror eax, 2
or ebx, edx
mov edx, dword [ebp - 0x14]
xor esi, eax
add esi, edi
mov eax, edx
ror eax, 0xb
mov edi, edx
ror edi, 0x19
add ebx, esi
xor edi, eax
mov esi, ebx
mov eax, edx
ror esi, 0x16
ror eax, 6
xor edi, eax
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xc]
and eax, edx
xor eax, dword [ebp - 0x1c]
add edi, eax
mov eax, dword [ebp - 0x20]
add edi, dword [ebp + eax - 0x144]
add edi, dword [eax + 0x501664]
add edi, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, edi
mov dword [ebp - 0x18], eax
mov eax, ebx
ror eax, 0xd
xor esi, eax
mov eax, ebx
ror eax, 2
xor esi, eax
mov eax, dword [ebp - 0x24]
mov edx, eax
add edi, esi
or edx, ebx
and eax, ebx
and edx, dword [ebp - 8]
or edx, eax
add edi, edx
mov edx, dword [ebp - 0x18]
mov esi, edx
mov eax, edx
ror eax, 0xb
ror esi, 0x19
xor esi, eax
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 0x14]
and eax, edx
mov edx, edi
xor eax, dword [ebp - 0xc]
add esi, eax
ror edx, 0xd
mov eax, dword [ebp - 0x20]
add esi, dword [ebp + eax - 0x140]
add esi, dword [eax + 0x501668]
add esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp - 0x1c], eax
mov eax, edi
ror eax, 2
xor edx, eax
mov eax, edi
ror eax, 0x16
xor edx, eax
mov eax, edi
or eax, ebx
add edx, esi
and eax, dword [ebp - 0x24]
mov dword [ebp - 4], eax
mov eax, edi
and eax, ebx
or dword [ebp - 4], eax
add dword [ebp - 4], edx
mov edx, dword [ebp - 0x1c]
mov esi, edx
ror esi, 0x19
mov eax, edx
ror eax, 0xb
xor esi, eax
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0x14]
xor eax, dword [ebp - 0x18]
and eax, edx
xor eax, dword [ebp - 0x14]
add esi, eax
mov eax, dword [ebp - 0x20]
add esi, dword [ebp + eax - 0x13c]
add esi, dword [eax + 0x50166c]
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
add eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov edx, eax
ror eax, 2
ror edx, 0xd
xor edx, eax
mov eax, dword [ebp - 4]
ror eax, 0x16
xor edx, eax
mov eax, edi
or eax, dword [ebp - 4]
add edx, esi
and eax, ebx
mov dword [ebp - 8], eax
mov eax, edi
and eax, dword [ebp - 4]
or dword [ebp - 8], eax
add dword [ebp - 8], edx
mov edx, dword [ebp - 0xc]
mov esi, edx
ror esi, 0x19
mov eax, edx
ror eax, 0xb
xor esi, eax
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0x18]
xor eax, dword [ebp - 0x1c]
and eax, edx
xor eax, dword [ebp - 0x18]
add esi, eax
mov eax, dword [ebp - 0x20]
add esi, dword [ebp + eax - 0x138]
add esi, dword [eax + 0x501670]
add esi, dword [ebp - 0x14]
lea eax, [ebx + esi]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, ebx
mov dword [ebp - 0x2c], eax
mov eax, ebx
ror eax, 0xd
ror edx, 0x16
xor edx, eax
mov eax, ebx
mov ebx, dword [ebp - 4]
ror eax, 2
xor edx, eax
mov eax, ebx
or eax, dword [ebp - 8]
add edx, esi
and eax, edi
mov dword [ebp - 0x10], eax
mov eax, ebx
and eax, dword [ebp - 8]
or dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov esi, edx
mov dword [ebp - 0x3c], eax
mov eax, edx
ror eax, 0xb
ror esi, 0x19
xor esi, eax
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xc]
and eax, edx
xor eax, dword [ebp - 0x1c]
add esi, eax
mov eax, dword [ebp - 0x20]
add esi, dword [ebp + eax - 0x134]
add esi, dword [eax + 0x501674]
add esi, dword [ebp - 0x18]
lea eax, [edi + esi]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov edx, edi
mov dword [ebp - 0x30], eax
mov eax, edi
ror eax, 2
ror edx, 0xd
xor edx, eax
mov eax, edi
ror eax, 0x16
xor edx, eax
mov eax, edi
mov edi, dword [ebp - 8]
add edx, esi
or eax, edi
and eax, ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
and eax, edi
or dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov esi, edx
mov dword [ebp - 0x40], eax
mov eax, edx
ror eax, 0xb
ror esi, 0x19
xor esi, eax
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 0x14]
and eax, edx
xor eax, dword [ebp - 0xc]
add esi, eax
mov eax, dword [ebp - 0x20]
add esi, dword [ebp + eax - 0x130]
add esi, dword [eax + 0x501678]
add esi, dword [ebp - 0x1c]
lea eax, [ebx + esi]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
mov edx, ebx
mov dword [ebp - 0x34], eax
mov eax, ebx
ror eax, 2
ror edx, 0xd
xor edx, eax
mov eax, ebx
or ebx, dword [ebp - 0x10]
ror eax, 0x16
and ebx, edi
xor edx, eax
mov eax, dword [ebp - 4]
and eax, dword [ebp - 0x10]
add edx, esi
or ebx, eax
add ebx, edx
mov edx, dword [ebp - 0x1c]
mov esi, edx
mov dword [ebp - 8], ebx
mov eax, edx
ror esi, 0x19
ror eax, 0xb
xor esi, eax
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp - 0x20]
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [ebp - 0x14]
xor eax, dword [ebp - 0x18]
and eax, edx
xor eax, dword [ebp - 0x14]
add esi, eax
add esi, dword [ebp + ebx - 0x12c]
add esi, dword [ebx + 0x50167c]
add ebx, 0x20
add esi, dword [ebp - 0xc]
mov dword [ebp - 0x20], ebx
lea eax, [edi + esi]
mov edi, dword [ebp - 8]
mov dword [ebp - 0xc], eax
mov edx, edi
mov dword [ebp - 0x38], eax
mov eax, edi
ror eax, 0xd
ror edx, 0x16
xor edx, eax
mov eax, edi
ror eax, 2
xor edx, eax
mov eax, dword [ebp - 4]
mov edi, eax
add edx, esi
or edi, dword [ebp - 8]
and edi, dword [ebp - 0x10]
and eax, dword [ebp - 8]
or edi, eax
add edi, edx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x48], edi
cmp ebx, 0x100
jl 0x4c9827
pop edi
lea edx, [ebp - 0x48]
mov eax, 2
pop esi
sub edx, ecx
pop ebx
lea ecx, [ecx + 0x10]
movups xmm0, xmmword [ecx - 0x10]
movups xmm1, xmmword [edx + ecx - 0x10]
paddd xmm1, xmm0
movups xmmword [ecx - 0x10], xmm1
sub eax, 1
jne 0x4c9ba4
mov esp, ebp
pop ebp
ret