Function at 0x10017850
Capabilities:
Encode data using xor

Disassembly:
mov eax, 8
call fcn.100781a0
push ebx
push ebp
push esi
xor edx, edx
push edi
xor esi, esi
mov dword [esp + 0x14], 0x19
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 4
lea edi, [eax + 8]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, esi
shr ebx, 0x10
xor ebx, esi
mov eax, ebx
and ebx, ebp
and eax, ecx
mov ecx, dword [edi - 8]
mov ebp, eax
shl ebp, 0x10
xor ecx, ebp
mov ebp, ebx
xor ecx, eax
mov eax, dword [edi - 4]
shl ebp, 0x10
xor eax, ebp
xor ecx, esi
xor eax, ebx
mov ebx, ecx
shr ebx, 0x12
mov ebp, ecx
and ebx, 0x3f
shr ebp, 0xa
mov ebx, dword [ebx*4 + 0x1007a3e0]
xor eax, esi
and ebp, 0x3f
ror eax, 4
xor ebx, dword [ebp*4 + 0x1007a1e0]
mov ebp, eax
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a4e0]
mov ebp, ecx
shr ebp, 2
and ebp, 0x3f
shr ecx, 0x1a
xor ebx, dword [ebp*4 + 0x10079fe0]
mov ebp, eax
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a2e0]
mov ebp, eax
shr ebp, 2
and ebp, 0x3f
shr eax, 0x1a
xor ebx, dword [ebp*4 + 0x1007a0e0]
mov ebp, dword [ecx*4 + 0x1007a5e0]
mov ecx, dword [eax*4 + 0x1007a6e0]
mov eax, dword [esp + 0x28]
xor ebx, ebp
mov ebp, dword [esp + 0x24]
xor ebx, ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
xor ebx, edx
mov ecx, ebx
and ebx, eax
and ecx, ebp
mov ebp, dword [edi]
mov eax, ecx
shl eax, 0x10
xor eax, ebp
mov ebp, ebx
xor eax, ecx
mov ecx, dword [edi + 4]
shl ebp, 0x10
xor ecx, ebp
xor eax, edx
xor ecx, ebx
mov ebx, eax
shr ebx, 0x12
mov ebp, eax
and ebx, 0x3f
shr ebp, 0xa
mov ebx, dword [ebx*4 + 0x1007a3e0]
xor ecx, edx
and ebp, 0x3f
ror ecx, 4
xor ebx, dword [ebp*4 + 0x1007a1e0]
mov ebp, ecx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a4e0]
mov ebp, eax
shr ebp, 2
and ebp, 0x3f
shr eax, 0x1a
xor ebx, dword [ebp*4 + 0x10079fe0]
mov ebp, ecx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a2e0]
mov ebp, ecx
shr ebp, 2
and ebp, 0x3f
shr ecx, 0x1a
xor ebx, dword [ebp*4 + 0x1007a0e0]
mov ebp, dword [eax*4 + 0x1007a5e0]
xor ebx, ebp
mov ebp, dword [ecx*4 + 0x1007a6e0]
xor ebx, ebp
mov ecx, dword [esp + 0x24]
xor esi, ebx
mov ebp, dword [esp + 0x28]
mov ebx, esi
shr ebx, 0x10
xor ebx, esi
mov eax, ebx
and ebx, ebp
and eax, ecx
mov ecx, dword [edi + 8]
mov ebp, eax
shl ebp, 0x10
xor ecx, ebp
mov ebp, ebx
xor ecx, eax
mov eax, dword [edi + 0xc]
shl ebp, 0x10
xor eax, ebp
xor ecx, esi
xor eax, ebx
mov ebx, ecx
shr ebx, 0x12
mov ebp, ecx
and ebx, 0x3f
shr ebp, 0xa
mov ebx, dword [ebx*4 + 0x1007a3e0]
xor eax, esi
and ebp, 0x3f
ror eax, 4
xor ebx, dword [ebp*4 + 0x1007a1e0]
mov ebp, eax
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a4e0]
mov ebp, ecx
shr ebp, 2
and ebp, 0x3f
shr ecx, 0x1a
xor ebx, dword [ebp*4 + 0x10079fe0]
mov ebp, eax
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a2e0]
mov ebp, eax
shr ebp, 2
and ebp, 0x3f
shr eax, 0x1a
xor ebx, dword [ebp*4 + 0x1007a0e0]
mov ebp, dword [ecx*4 + 0x1007a5e0]
mov ecx, dword [esp + 0x24]
xor ebx, ebp
mov ebp, dword [eax*4 + 0x1007a6e0]
xor ebx, ebp
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
xor ebx, edx
mov eax, ebx
and eax, ecx
mov ebp, dword [esp + 0x28]
mov ecx, dword [edi + 0x10]
and ebx, ebp
mov ebp, eax
shl ebp, 0x10
xor ecx, ebp
mov ebp, ebx
xor ecx, eax
mov eax, dword [edi + 0x14]
shl ebp, 0x10
xor eax, ebp
xor ecx, edx
xor eax, ebx
mov ebx, ecx
shr ebx, 0x12
mov ebp, ecx
and ebx, 0x3f
shr ebp, 0xa
mov ebx, dword [ebx*4 + 0x1007a3e0]
xor eax, edx
and ebp, 0x3f
add edi, 0x20
ror eax, 4
xor ebx, dword [ebp*4 + 0x1007a1e0]
mov ebp, eax
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a4e0]
mov ebp, ecx
shr ebp, 2
and ebp, 0x3f
shr ecx, 0x1a
xor ebx, dword [ebp*4 + 0x10079fe0]
mov ebp, eax
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1007a2e0]
mov ebp, eax
shr ebp, 2
and ebp, 0x3f
shr eax, 0x1a
xor ebx, dword [ebp*4 + 0x1007a0e0]
mov ebp, dword [ecx*4 + 0x1007a5e0]
mov ecx, dword [eax*4 + 0x1007a6e0]
mov eax, dword [esp + 0x10]
xor ebx, ebp
xor ebx, ecx
xor esi, ebx
dec eax
mov dword [esp + 0x10], eax
jne 0x10017879
mov ecx, dword [esp + 0x14]
mov eax, edx
dec ecx
mov edx, esi
mov esi, eax
mov dword [esp + 0x14], ecx
jne 0x1001786a
ror edx, 3
ror eax, 3
mov ecx, edx
mov esi, eax
shr ecx, 1
and ecx, 0x55555555
and esi, 0x55555555
xor ecx, esi
pop edi
xor eax, ecx
add ecx, ecx
xor edx, ecx
mov ecx, eax
shr ecx, 8
mov esi, edx
and ecx, 0xff00ff
and esi, 0xff00ff
xor ecx, esi
xor edx, ecx
shl ecx, 8
xor eax, ecx
mov ecx, edx
shr ecx, 2
mov esi, eax
and ecx, 0x33333333
and esi, 0x33333333
xor ecx, esi
xor eax, ecx
shl ecx, 2
xor edx, ecx
mov ecx, eax
mov esi, edx
shr ecx, 0x10
and esi, 0xffff
xor ecx, esi
xor edx, ecx
shl ecx, 0x10
xor eax, ecx
mov ecx, edx
shr ecx, 4
mov esi, eax
and ecx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor ecx, esi
mov esi, ecx
xor esi, eax
mov eax, dword [esp + 0x18]
shl ecx, 4
mov dword [eax], esi
xor ecx, edx
pop esi
pop ebp
mov dword [eax + 4], ecx
pop ebx
add esp, 8
ret