Function at 0x1001aa30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [ebp + 0x10]
mov byte [ebp - 0x18], al
sar eax, 6
mov byte [ebp - 0x17], al
sar eax, 6
mov byte [ebp - 0x16], al
sar eax, 6
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x18]
and eax, 0xff3f3f3f
shl eax, 2
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 8]
mov cl, byte [eax]
mov byte [ebp - 0x18], cl
mov cl, byte [eax + 1]
mov byte [ebp - 0x17], cl
mov cl, byte [eax + 2]
mov byte [ebp - 0x16], cl
mov cl, byte [eax + 3]
mov byte [ebp - 0x15], cl
mov cl, byte [eax + 4]
mov edx, dword [ebp - 0x18]
mov byte [ebp - 0x14], cl
mov cl, byte [eax + 5]
mov byte [ebp - 0x13], cl
mov cl, byte [eax + 6]
mov al, byte [eax + 7]
mov byte [ebp - 0x11], al
mov byte [ebp - 0x12], cl
mov eax, dword [ebp - 0x14]
lea esi, [edx + edx]
xor esi, eax
sar eax, 1
xor eax, edx
mov ecx, 0x55555555
and eax, ecx
xor eax, edx
push 4
mov dword [ebp - 0x14], eax
mov ebx, 0x1004ed40
push ebx
lea eax, [ebp - 0x10]
push eax
and esi, ecx
lea edi, [edx + edx]
lea eax, [ebp - 0x18]
xor esi, edi
push eax
mov dword [ebp - 0x18], esi
call fcn.1001a9e3
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
push 4
push ebx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.1001a9e3
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esp, 0x20
cmp dword [ebp + 0x14], 0
jl 0x1001ab00
mov dword [ebp + 8], 0x100511c0
mov dword [ebp - 4], 8
jmp 0x1001ab11
neg dword [ebp + 0x14]
mov dword [ebp + 8], 0x10051238
mov dword [ebp - 4], 0xfffffff8
dec dword [ebp + 0x14]
js 0x1001acd9
mov edx, dword [ebp - 4]
shl edx, 4
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 8
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov ebx, ecx
xor ebx, eax
and ebx, dword [ebp + 0x10]
xor edx, ebx
xor edx, eax
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
xor edx, ebx
xor edx, ecx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
add dword [ebp + 8], edx
movzx edx, byte [ebp - 0x18]
xor esi, dword [edx + 0x1004f148]
xor edi, dword [edx + 0x1004f948]
mov edx, dword [ebp - 0x18]
sar edx, 8
movzx edx, dl
xor esi, dword [edx + 0x1004f248]
xor edi, dword [edx + 0x1004fa48]
mov edx, dword [ebp - 0x18]
sar edx, 0x10
movzx edx, dl
xor esi, dword [edx + 0x1004f348]
xor edi, dword [edx + 0x1004fb48]
mov edx, dword [ebp - 0x18]
sar edx, 0x18
movzx edx, dl
xor esi, dword [edx + 0x1004f448]
xor edi, dword [edx + 0x1004fc48]
movzx edx, byte [ebp - 0x14]
xor esi, dword [edx + 0x1004f548]
xor edi, dword [edx + 0x1004fd48]
mov edx, dword [ebp - 0x14]
sar edx, 8
movzx edx, dl
xor esi, dword [edx + 0x1004f648]
xor edi, dword [edx + 0x1004fe48]
mov edx, dword [ebp - 0x14]
sar edx, 0x10
movzx edx, dl
xor esi, dword [edx + 0x1004f748]
xor edi, dword [edx + 0x1004ff48]
mov edx, dword [ebp - 0x14]
sar edx, 0x18
movzx edx, dl
xor edi, dword [edx + 0x10050048]
xor esi, dword [edx + 0x1004f848]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov ebx, edi
xor ebx, esi
and ebx, dword [ebp + 0x10]
xor edx, ebx
xor edx, esi
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
xor edx, ebx
mov ebx, dword [ebp + 8]
xor edx, edi
add ebx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
movzx edx, byte [ebp - 0x18]
xor eax, dword [edx + 0x1004f148]
xor ecx, dword [edx + 0x1004f948]
mov edx, dword [ebp - 0x18]
sar edx, 8
movzx edx, dl
xor eax, dword [edx + 0x1004f248]
xor ecx, dword [edx + 0x1004fa48]
mov edx, dword [ebp - 0x18]
sar edx, 0x10
movzx edx, dl
xor eax, dword [edx + 0x1004f348]
xor ecx, dword [edx + 0x1004fb48]
mov edx, dword [ebp - 0x18]
mov dword [ebp + 8], ebx
sar edx, 0x18
movzx edx, dl
xor eax, dword [edx + 0x1004f448]
xor ecx, dword [edx + 0x1004fc48]
movzx edx, byte [ebp - 0x14]
xor eax, dword [edx + 0x1004f548]
xor ecx, dword [edx + 0x1004fd48]
mov edx, dword [ebp - 0x14]
sar edx, 8
movzx edx, dl
xor eax, dword [edx + 0x1004f648]
xor ecx, dword [edx + 0x1004fe48]
mov edx, dword [ebp - 0x14]
sar edx, 0x10
movzx edx, dl
xor eax, dword [edx + 0x1004f748]
xor ecx, dword [edx + 0x1004ff48]
mov edx, dword [ebp - 0x14]
sar edx, 0x18
movzx edx, dl
xor eax, dword [edx + 0x1004f848]
xor ecx, dword [edx + 0x10050048]
dec dword [ebp - 8]
jne 0x1001ab2a
sub ebx, dword [ebp - 0xc]
xor esi, eax
xor edi, ecx
xor eax, esi
xor ecx, edi
xor esi, eax
xor edi, ecx
dec dword [ebp + 0x14]
mov dword [ebp + 8], ebx
jns 0x1001ab23
sar esi, 3
lea ebx, [edi + edi]
xor ebx, esi
mov edx, 0xf0f0f0f
and ebx, edx
lea esi, [edi + edi]
xor ebx, esi
sar eax, 3
lea esi, [ecx + ecx]
xor esi, eax
lea eax, [ecx + ecx]
and esi, edx
xor esi, eax
push 8
push 0x10051240
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], esi
call fcn.1001a9e3
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, ecx
sar edx, 8
mov byte [eax + 1], dl
mov byte [eax], cl
mov edx, ecx
sar edx, 0x10
sar ecx, 0x18
mov byte [eax + 2], dl
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0xc]
mov edx, ecx
sar edx, 8
add esp, 0x10
mov byte [eax + 5], dl
mov edx, ecx
mov byte [eax + 4], cl
pop edi
sar edx, 0x10
sar ecx, 0x18
pop esi
mov byte [eax + 6], dl
mov byte [eax + 7], cl
xor eax, eax
pop ebx
leave
ret