Function at 0x1007b730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
cmp dword [ebp + 0x14], 0
jle 0x1007ba24
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov edx, dword [ecx + 1]
mov esi, edx
shr esi, 2
and esi, 0x3f3f3f3f
mov ecx, eax
shr ecx, 2
and ecx, 0x3f3f3f3f
add ecx, esi
mov esi, dword [ebp + 0x10]
and eax, 0x3030303
and edx, 0x3030303
lea ebx, [eax + edx]
add ebx, 0x2020202
mov eax, dword [ebp + 0x14]
not eax
imul eax, esi
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp + 8]
lea eax, [esi + esi]
mov dword [ebp - 0x14], 0
mov edx, eax
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x10]
mov edi, dword [edx + esi]
mov dword [ebp - 0x10], edx
mov eax, edi
and eax, 0x3030303
mov edx, dword [edx + esi + 1]
mov esi, edx
and esi, 0x3030303
add esi, eax
shr edi, 2
and edi, 0x3f3f3f3f
shr edx, 2
and edx, 0x3f3f3f3f
add edx, edi
mov dword [ebp - 0x24], edx
add ecx, edx
add ebx, esi
shr ebx, 2
and ebx, 0xf0f0f0f
add ebx, ecx
mov edi, dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, ebx
or ecx, eax
xor ebx, eax
shr ebx, 1
and ebx, 0x7f7f7f7f
sub ecx, ebx
mov dword [edi], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + ecx]
mov dword [ebp - 0x10], ecx
mov ebx, edx
and ebx, 0x3030303
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + ecx + 1]
mov eax, ecx
and eax, 0x3030303
add ebx, eax
add ebx, 0x2020202
shr edx, 2
and edx, 0x3f3f3f3f
shr ecx, 2
and ecx, 0x3f3f3f3f
add ecx, edx
mov eax, dword [ebp - 0x24]
add eax, ecx
add esi, ebx
shr esi, 2
and esi, 0x7070707
add esi, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [edi + eax]
mov edx, esi
or edx, eax
xor esi, eax
shr esi, 1
and esi, 0x7f7f7f7f
sub edx, esi
mov esi, dword [ebp + 0x10]
mov dword [edi + esi], edx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
add eax, esi
mov dword [ebp - 0x10], eax
lea eax, [edi + esi]
add eax, esi
mov edi, dword [ebp - 0x14]
add edi, 2
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
add eax, edx
mov dword [ebp - 0x14], edi
cmp edi, dword [ebp + 0x14]
jl 0x1007b7a0
mov eax, dword [ebp - 0x10]
cmp dword [ebp + 0x14], 0
jle 0x1007ba24
mov edi, eax
add edi, esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + edi + 4]
mov ecx, dword [ecx + edi + 5]
mov dword [ebp - 0x10], edx
mov edx, ecx
shr edx, 2
and edx, 0x3f3f3f3f
mov ebx, eax
shr ebx, 2
and ebx, 0x3f3f3f3f
add ebx, edx
and eax, 0x3030303
and ecx, 0x3030303
add ecx, eax
add ecx, 0x2020202
mov eax, 2
mov edx, dword [ebp + 0x14]
sub eax, edx
imul eax, esi
mov edi, esi
mov esi, dword [ebp + 0xc]
add eax, esi
add eax, 5
mov dword [ebp - 0x18], eax
mov eax, 1
sub eax, edx
imul eax, edi
add esi, eax
add esi, 5
mov dword [ebp - 0x28], esi
mov esi, dword [ebp + 8]
lea eax, [eax + esi + 4]
mov dword [ebp - 0x24], eax
lea eax, [edi + edi]
mov dword [ebp - 0x20], eax
imul edi, edx
mov eax, dword [ebp - 0x10]
neg edi
lea edx, [esi + edi]
add edx, 4
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], 0
nop word [eax + eax]
mov dword [ebp - 0x10], eax
mov esi, dword [ebp - 0x28]
mov eax, dword [esi + eax - 1]
mov edx, dword [ebp - 0x10]
mov edx, dword [esi + edx]
mov esi, eax
and esi, 0x3030303
mov edi, edx
and edi, 0x3030303
add edi, esi
shr eax, 2
and eax, 0x3f3f3f3f
shr edx, 2
and edx, 0x3f3f3f3f
add edx, eax
add ebx, edx
add ecx, edi
shr ecx, 2
and ecx, 0xf0f0f0f
add ecx, ebx
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + eax]
mov esi, ecx
or esi, eax
xor ecx, eax
shr ecx, 1
and ecx, 0x7f7f7f7f
sub esi, ecx
mov eax, dword [ebp - 0x10]
mov dword [ebx + eax], esi
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
mov eax, dword [esi + eax - 1]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [esi + ecx]
mov ecx, eax
and ecx, 0x3030303
mov esi, ebx
and esi, 0x3030303
add ecx, esi
add ecx, 0x2020202
shr eax, 2
and eax, 0x3f3f3f3f
shr ebx, 2
and ebx, 0x3f3f3f3f
add ebx, eax
add edx, ebx
add edi, ecx
shr edi, 2
and edi, 0x7070707
add edi, edx
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov edx, edi
or edx, eax
xor edi, eax
shr edi, 1
and edi, 0x7f7f7f7f
sub edx, edi
mov eax, dword [ebp - 0x10]
mov dword [esi + eax], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add edx, 2
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp + 0x14]
jl 0x1007b940
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret