Function at 0x10021290
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, ecx
push 4
mov dword [ebp - 0x14], edi
call fcn.10047179
mov esi, eax
push 4
mov dword [ebp - 0x10], esi
call fcn.10047179
mov ebx, eax
add esp, 8
mov eax, dword [edi + 4]
xor edx, edx
mov dword [ebp - 0xc], ebx
lea ecx, [eax*4]
test ecx, ecx
jle 0x100212ef
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
sub esi, ecx
mov al, byte [esi + ecx]
inc edx
mov byte [ecx], al
inc ecx
mov ebx, dword [edi + 4]
lea eax, [ebx*4]
cmp edx, eax
jl 0x100212d1
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
mov eax, dword [edi + 4]
lea edx, [eax*4]
mov eax, dword [edi + 8]
inc eax
mov dword [ebp - 8], edx
imul eax, dword [edi]
shl eax, 2
cmp edx, eax
jge 0x100214fd
mov ebx, dword [ebp + 0xc]
add ebx, 0xfffffffd
add ebx, edx
mov dword [ebp - 0x10], ebx
mov cl, byte [ebx - 1]
mov byte [esi], cl
mov ch, byte [ebx]
mov byte [esi + 1], ch
mov al, byte [ebx + 1]
mov byte [ebp - 1], al
mov byte [esi + 2], al
mov al, byte [ebx + 2]
mov byte [ebp - 2], al
mov byte [esi + 3], al
mov eax, edx
cdq
and edx, 3
mov byte [ebp + 0xb], cl
add eax, edx
mov byte [ebp - 3], ch
sar eax, 2
cdq
idiv dword [edi + 4]
test edx, edx
jne 0x1002140d
movzx ecx, ch
mov bl, 1
mov eax, ecx
and ecx, 0xf
and eax, 0xfffffff0
movzx eax, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp - 1]
mov byte [esi], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp - 2]
mov byte [esi + 1], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp + 0xb]
mov byte [esi + 2], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
mov byte [esi + 3], al
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 8]
shl ecx, 2
cdq
idiv ecx
lea edi, [eax - 1]
test edi, edi
jle 0x100213da
nop
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub edi, 1
jne 0x100213c0
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x14]
mov byte [ecx], bl
mov word [ecx + 2], 0
mov byte [ecx + 1], 0
xor byte [esi], bl
mov al, byte [esi]
mov ebx, dword [ebp - 0x10]
mov byte [ebp + 0xb], al
movzx eax, byte [ecx + 1]
xor byte [esi + 1], al
movzx eax, byte [ecx + 2]
xor byte [esi + 2], al
movzx eax, byte [ecx + 3]
xor byte [esi + 3], al
jmp 0x1002147a
cmp dword [edi + 4], 6
mov byte [ebp + 0xb], cl
jle 0x1002147a
mov byte [ebp + 0xb], cl
cmp edx, 4
jne 0x1002147a
movzx ecx, cl
mov eax, ecx
and ecx, 0xf
and eax, 0xfffffff0
mov al, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp - 3]
mov byte [ebp + 0xb], al
mov byte [esi], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp - 1]
mov byte [esi + 1], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
movzx ecx, byte [ebp - 2]
mov byte [esi + 2], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
movzx eax, byte [eax + ecx + str.cw]
mov byte [esi + 3], al
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 8]
mov eax, edx
shl ecx, 2
sub eax, ecx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx]
xor al, byte [ebp + 0xb]
mov byte [ebx + 3], al
mov eax, edx
mov ecx, dword [edi + 4]
shl ecx, 2
sub eax, ecx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx + 1]
xor al, byte [esi + 1]
mov byte [ebx + 4], al
mov eax, edx
mov ecx, dword [edi + 4]
shl ecx, 2
sub eax, ecx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx + 2]
xor al, byte [esi + 2]
mov byte [ebx + 5], al
mov eax, edx
mov ecx, dword [edi + 4]
add edx, 4
shl ecx, 2
sub eax, ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx + 3]
xor al, byte [esi + 3]
mov byte [ebx + 6], al
add ebx, 4
mov eax, dword [edi + 8]
inc eax
mov dword [ebp - 0x10], ebx
imul eax, dword [edi]
shl eax, 2
cmp edx, eax
jl 0x10021316
mov ebx, dword [ebp - 0xc]
push ebx
call fcn.10047182
push esi
call fcn.10047182
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8