Function at 0x10001330
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0x10]
cmp ebx, 0x10
je 0x1000134b
cmp ebx, 0x18
je 0x1000134b
cmp ebx, 0x20
je 0x1000134b
mov eax, 0xffffffea
pop ebx
ret
mov ecx, dword [esp + 0xc]
push ebp
push esi
mov esi, dword [esp + 0x10]
cmp ebx, 0x10
push edi
mov dword [esi], ebx
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov edx, dword [ecx + 4]
mov dword [esi + 8], edx
mov eax, dword [ecx + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x10], eax
je 0x10001536
cmp ebx, 0x18
je 0x1000148d
cmp ebx, 0x20
jne 0x100015ba
mov edx, dword [ecx + 0x10]
mov edi, 0x1001ad10
mov dword [esi + 0x14], edx
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x18], eax
mov edx, dword [ecx + 0x18]
mov dword [esi + 0x1c], edx
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x20], eax
lea ecx, [esi + 0x24]
mov edx, eax
add edi, 4
shl edx, 0x18
shr eax, 8
or edx, eax
add ecx, 0x20
mov eax, edx
mov ebp, edx
shr eax, 0x18
shr ebp, 0x10
mov eax, dword [eax*4 + 0x1001b938]
and ebp, 0xff
xor eax, dword [ebp*4 + 0x1001b538]
mov ebp, edx
shr ebp, 8
and ebp, 0xff
and edx, 0xff
xor eax, dword [ebp*4 + 0x1001b138]
mov ebp, dword [edx*4 + 0x1001ad38]
mov edx, dword [ecx - 0x40]
xor eax, ebp
mov ebp, dword [edi - 4]
xor eax, edx
xor eax, ebp
mov dword [ecx - 0x20], eax
mov edx, dword [ecx - 0x3c]
xor eax, edx
mov dword [ecx - 0x1c], eax
mov ebp, dword [ecx - 0x38]
xor eax, ebp
mov dword [ecx - 0x18], eax
mov edx, dword [ecx - 0x34]
xor eax, edx
mov edx, eax
mov ebp, eax
shr edx, 0x18
shr ebp, 0x10
mov dword [ecx - 0x14], eax
mov edx, dword [edx*4 + 0x1001b938]
and ebp, 0xff
xor edx, dword [ebp*4 + 0x1001b538]
mov ebp, eax
shr ebp, 8
and ebp, 0xff
and eax, 0xff
xor edx, dword [ebp*4 + 0x1001b138]
mov ebp, dword [eax*4 + 0x1001ad38]
mov eax, dword [ecx - 0x30]
xor edx, ebp
xor eax, edx
mov dword [ecx - 0x10], eax
mov ebp, dword [ecx - 0x2c]
xor eax, ebp
mov dword [ecx - 0xc], eax
mov edx, dword [ecx - 0x28]
xor eax, edx
mov dword [ecx - 8], eax
mov ebp, dword [ecx - 0x24]
xor eax, ebp
cmp edi, 0x1001ad2c
mov dword [ecx - 4], eax
jb 0x100013aa
jmp 0x100015ba
mov eax, dword [ecx + 0x10]
mov edi, 0x1001ad10
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x18], eax
lea ecx, [esi + 0x1c]
mov edx, eax
add edi, 4
shl edx, 0x18
shr eax, 8
or edx, eax
add ecx, 0x18
mov eax, edx
mov ebp, edx
shr eax, 0x18
shr ebp, 0x10
mov eax, dword [eax*4 + 0x1001b938]
and ebp, 0xff
xor eax, dword [ebp*4 + 0x1001b538]
mov ebp, edx
shr ebp, 8
and ebp, 0xff
and edx, 0xff
xor eax, dword [ebp*4 + 0x1001b138]
mov ebp, dword [edx*4 + 0x1001ad38]
mov edx, dword [edi - 4]
xor eax, ebp
mov ebp, dword [ecx - 0x30]
xor eax, ebp
xor eax, edx
mov dword [ecx - 0x18], eax
mov ebp, dword [ecx - 0x2c]
xor eax, ebp
mov dword [ecx - 0x14], eax
mov edx, dword [ecx - 0x28]
xor eax, edx
mov dword [ecx - 0x10], eax
mov ebp, dword [ecx - 0x24]
xor eax, ebp
mov dword [ecx - 0xc], eax
mov edx, dword [ecx - 0x20]
xor eax, edx
mov dword [ecx - 8], eax
mov ebp, dword [ecx - 0x1c]
xor eax, ebp
cmp edi, 0x1001ad30
mov dword [ecx - 4], eax
jb 0x100014a1
jmp 0x100015ba
mov edi, 0x1001ad10
lea edx, [esi + 0x14]
mov ecx, eax
add edi, 4
shl ecx, 0x18
shr eax, 8
or ecx, eax
add edx, 0x10
mov eax, ecx
mov ebp, ecx
shr eax, 0x18
shr ebp, 0x10
mov eax, dword [eax*4 + 0x1001b938]
and ebp, 0xff
xor eax, dword [ebp*4 + 0x1001b538]
mov ebp, ecx
shr ebp, 8
and ebp, 0xff
and ecx, 0xff
xor eax, dword [ebp*4 + 0x1001b138]
mov ebp, dword [ecx*4 + 0x1001ad38]
mov ecx, dword [edi - 4]
xor eax, ebp
mov ebp, dword [edx - 0x20]
xor eax, ebp
xor eax, ecx
mov dword [edx - 0x10], eax
mov ebp, dword [edx - 0x1c]
xor eax, ebp
mov dword [edx - 0xc], eax
mov ecx, dword [edx - 0x18]
xor eax, ecx
mov dword [edx - 8], eax
mov ebp, dword [edx - 0x14]
xor eax, ebp
cmp edi, 0x1001ad38
mov dword [edx - 4], eax
jb 0x1000153e
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xf8], edx
mov dword [esi + 0x100], ecx
lea ecx, [ebx + 0x18]
cmp ecx, 4
mov dword [esi + 0xfc], eax
jbe 0x100016a2
lea eax, [esi + 0x14]
add ecx, 0xfffffffc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov edx, dword [eax]
mov eax, edx
mov ecx, edx
shr eax, 7
and eax, 0x1010101
and ecx, 0xff7f7f7f
shl ecx, 1
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
xor eax, ecx
mov ecx, eax
mov esi, eax
shr ecx, 7
and ecx, 0x1010101
and esi, 0xff7f7f7f
shl esi, 1
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*8]
xor ecx, esi
mov esi, ecx
mov edi, ecx
shr esi, 7
and esi, 0x1010101
lea esi, [esi + esi*2]
lea ebx, [esi + esi*8]
mov esi, ecx
and esi, 0xff7f7f7f
shl esi, 1
xor ebx, esi
mov esi, eax
xor edx, ebx
xor edi, edx
xor esi, edx
mov ebp, edi
shr ebp, 0x10
shl edi, 0x10
or ebp, edi
mov edi, esi
shl edi, 0x18
shr esi, 8
or edi, esi
mov esi, edx
shr esi, 0x18
shl edx, 8
xor ebp, edi
or esi, edx
xor ebp, esi
xor ebp, ebx
xor ebp, ecx
mov ecx, dword [esp + 0x14]
xor ebp, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xf0], ebp
add eax, 4
dec ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jne 0x100015f8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret