Function at 0x100ca610
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push edi
push eax
push esi
push ecx
call fcn.100c99d0
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov ecx, eax
shl ecx, 4
mov ebp, dword [ecx + esi]
add ecx, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov dword [esi], ebp
mov ebp, dword [ecx + 4]
mov dword [esi + 4], ebp
mov ebp, dword [ecx + 8]
mov dword [esi + 8], ebp
mov ebp, dword [ecx + 0xc]
mov dword [esi + 0xc], ebp
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
lea edx, [esi + 0x10]
sub ecx, 0x10
add esp, 0xc
cmp edx, ecx
jae 0x100ca7d6
mov esi, dword [edx]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, esi
mov esi, dword [edx + 4]
mov edi, esi
ror edi, 8
xor esi, edi
ror esi, 0x10
xor esi, edi
mov edi, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov ebx, edi
ror ebx, 8
xor edi, ebx
ror edi, 0x10
xor edi, ebx
xor esi, edi
xor eax, esi
mov ebx, ebp
ror ebx, 8
xor ebp, ebx
ror ebp, 0x10
xor ebp, ebx
xor edi, ebp
xor ebp, esi
xor edi, eax
xor esi, edi
ror edi, 0x10
mov ebx, ebp
ror ebx, 8
and ebx, 0xff00ff00
rol ebp, 8
mov dword [esp + 0x2c], edi
and ebp, 0xff00ff
xor ebx, ebp
mov edi, esi
shr edi, 8
mov ebp, esi
shl esi, 8
shl ebp, 8
xor edi, ebp
and edi, 0xff00ff
xor edi, esi
mov esi, dword [esp + 0x2c]
xor edi, esi
xor esi, ebx
xor eax, edi
xor esi, eax
xor ebx, edi
mov dword [esp + 0x10], eax
mov eax, esi
xor eax, edi
mov dword [esp + 0x18], esi
mov esi, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, esi
mov esi, dword [ecx + 4]
mov edi, esi
ror edi, 8
xor esi, edi
ror esi, 0x10
xor esi, edi
mov edi, dword [ecx + 8]
mov dword [esp + 0x1c], ebx
mov ebx, edi
ror ebx, 8
xor edi, ebx
ror edi, 0x10
xor edi, ebx
mov ebx, dword [ecx + 0xc]
mov ebp, ebx
ror ebp, 8
xor esi, edi
xor ebx, ebp
xor eax, esi
ror ebx, 0x10
xor ebx, ebp
xor edi, ebx
xor edi, eax
xor ebx, esi
xor esi, edi
ror edi, 0x10
mov ebp, ebx
ror ebp, 8
and ebp, 0xff00ff00
rol ebx, 8
mov dword [esp + 0x2c], edi
and ebx, 0xff00ff
xor ebp, ebx
mov edi, esi
mov ebx, esi
shr edi, 8
shl ebx, 8
xor edi, ebx
shl esi, 8
and edi, 0xff00ff
xor edi, esi
mov esi, dword [esp + 0x2c]
xor edi, esi
xor eax, edi
mov dword [edx], eax
xor esi, ebp
xor esi, eax
mov eax, esi
xor eax, edi
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 8], esi
xor ebp, edi
mov dword [edx + 0xc], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0xc], eax
add edx, 0x10
sub ecx, 0x10
cmp edx, ecx
jb 0x100ca674
mov esi, dword [edx]
mov edi, dword [edx + 8]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov ebx, esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, edi
ror eax, 8
xor edi, eax
ror edi, 0x10
xor edi, eax
mov eax, edx
ror eax, 8
xor edx, eax
ror edx, 0x10
xor edx, eax
xor esi, edi
xor edi, edx
xor edx, esi
xor ebx, esi
xor edi, ebx
xor esi, edi
ror edi, 0x10
mov ebp, edi
mov edi, edx
ror edi, 8
and edi, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
xor edi, edx
mov edx, esi
shr edx, 8
mov eax, esi
shl eax, 8
xor edx, eax
and edx, 0xff00ff
shl esi, 8
xor edx, esi
xor edx, ebp
xor ebp, edi
xor ebx, edx
xor ebp, ebx
mov eax, ebp
xor eax, edx
xor edi, edx
mov dword [ecx + 0xc], edi
pop edi
pop esi
mov dword [ecx + 8], ebp
pop ebp
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
pop ebx
add esp, 0x14
ret