Function at 0x7fa1f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 4
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
movzx ebx, byte [eax + 2]
mov eax, ebx
mov edx, ebx
shl eax, 9
xor eax, 0x1fffe
and eax, 0x10000
cmp eax, 1
sbb eax, eax
and eax, 0x8003
lea eax, [eax + eax + 0x2fff6]
shl edx, 0xa
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xb
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xc
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xd
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xe
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add eax, eax
shl ebx, 0xf
mov edx, eax
xor edx, ebx
mov ecx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add ebx, ebx
add eax, eax
xor ebx, eax
mov edx, eax
xor edx, 0x8005
and ebx, 0x10000
cmovne eax, edx
mov edx, dword [ebp + 8]
add eax, eax
mov ecx, eax
xor ecx, 0x8005
movzx ebx, byte [edx + 3]
mov edx, ebx
shl edx, 9
xor edx, eax
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xa
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xb
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xc
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xd
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xe
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add eax, eax
shl ebx, 0xf
mov edx, eax
xor edx, ebx
mov ecx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add ebx, ebx
lea ecx, [eax + eax]
xor ebx, ecx
mov eax, ecx
xor eax, 0x8005
and ebx, 0x10000
cmovne ecx, eax
xor esi, esi
sar edi, 3
lea eax, [edi + 6]
cmp eax, 6
mov dword [ebp - 0x10], eax
jle 0x7fa4ed
lea esi, [esi]
mov edx, dword [ebp + 8]
lea eax, [ecx + ecx]
mov ecx, eax
xor ecx, 0x8005
movzx ebx, byte [esi + edx + 6]
mov edx, ebx
shl edx, 9
xor edx, eax
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xa
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xb
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xc
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xd
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
mov edx, ebx
cmovne eax, ecx
add eax, eax
shl edx, 0xe
mov ecx, eax
xor edx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add eax, eax
shl ebx, 0xf
mov edx, eax
xor edx, ebx
mov ecx, eax
xor ecx, 0x8005
and edx, 0x10000
cmovne eax, ecx
add ebx, ebx
lea ecx, [eax + eax]
xor ebx, ecx
mov eax, ecx
xor eax, 0x8005
and ebx, 0x10000
cmovne ecx, eax
add esi, 1
cmp esi, edi
jne 0x7fa3c0
mov edi, dword [ebp + 0xc]
and edi, 7
je 0x7fa4d7
mov eax, dword [ebp + 8]
xor esi, esi
mov edx, dword [ebp - 0x10]
movzx ebx, byte [eax + edx]
shl ebx, 8
add ecx, ecx
add ebx, ebx
mov eax, ecx
mov edx, ecx
xor eax, ebx
xor edx, 0x8005
test eax, 0x10000
cmovne ecx, edx
add esi, 1
cmp esi, edi
jne 0x7fa4b8
mov edx, dword [ebp + 8]
mov eax, ecx
shr eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
add esp, 4
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x10], 6
jmp 0x7fa4a1