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

Disassembly:
jmp 0x100149f0
mov eax, 0x18
call fcn.101aa6d0
push ebx
mov ebx, dword [esp + 0x28]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.100025d6
add esp, 0xc
test eax, eax
jne 0x10014c97
mov eax, dword [ebx + 0x110]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
shl eax, 4
add eax, ebx
push ebp
movq xmm0, qword [eax]
push esi
mov esi, dword [ebx + 8]
push edi
mov edi, dword [ebx + 0xc]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
mov dword [eax + 8], esi
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 0xc], edi
lea esi, [ebx + 0x10]
sub eax, 0x10
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x10014be8
mov edx, dword [esi]
ror edx, 8
mov ebx, edx
xor ebx, dword [esi]
mov ecx, dword [esi + 0xc]
rol ebx, 0x10
xor ebx, edx
mov edx, dword [esi + 4]
ror edx, 8
mov edi, edx
xor edi, dword [esi + 4]
rol edi, 0x10
xor edi, edx
mov edx, dword [esi + 8]
ror edx, 8
mov ebp, edx
xor ebp, dword [esi + 8]
rol ebp, 0x10
xor ebp, edx
mov edx, ecx
ror edx, 8
mov esi, edx
xor esi, ecx
rol esi, 0x10
xor edi, ebp
xor ebx, edi
xor esi, edx
xor ebp, esi
xor ebp, ebx
mov dword [esp + 0x10], ebx
xor esi, edi
xor edi, ebp
mov ebx, esi
and ebx, 0xff0000
rol ebp, 0x10
mov ecx, esi
shr ecx, 0x10
xor ebx, ecx
mov ecx, esi
and ecx, 0xff00
shr ebx, 8
shl esi, 0x10
xor ecx, esi
shl ecx, 8
xor ebx, ecx
mov edx, edi
shr edx, 8
mov ecx, edi
shl ecx, 8
xor edx, ecx
mov ecx, dword [esp + 0x10]
and edx, 0xff00ff
shl edi, 8
xor edx, edi
xor edx, ebp
xor ebp, ebx
xor ecx, edx
xor ebx, edx
xor ebp, ecx
mov dword [esp + 0x20], ebp
xor ebp, edx
mov edx, dword [eax]
ror edx, 8
mov edi, edx
xor edi, dword [eax]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], ecx
rol edi, 0x10
xor edi, edx
mov edx, dword [eax + 4]
ror edx, 8
mov ebx, edx
xor ebx, dword [eax + 4]
rol ebx, 0x10
xor ebx, edx
mov edx, dword [eax + 8]
ror edx, 8
mov ebp, edx
xor ebp, dword [eax + 8]
rol ebp, 0x10
xor ebp, edx
mov edx, dword [eax + 0xc]
ror edx, 8
mov esi, edx
xor esi, dword [eax + 0xc]
xor ebx, ebp
xor edi, ebx
mov dword [esp + 0x18], edi
sub eax, 0x10
rol esi, 0x10
xor esi, edx
xor ebp, esi
xor ebp, edi
xor esi, ebx
mov edi, esi
mov ecx, esi
shr ecx, 0x10
and edi, 0xff0000
xor edi, ecx
mov ecx, esi
and ecx, 0xff00
shl esi, 0x10
xor ecx, esi
mov esi, dword [esp + 0x14]
shl ecx, 8
xor ebx, ebp
rol ebp, 0x10
shr edi, 8
xor edi, ecx
mov edx, ebx
shr edx, 8
mov ecx, ebx
shl ecx, 8
xor edx, ecx
mov ecx, dword [esp + 0x18]
and edx, 0xff00ff
shl ebx, 8
xor edx, ebx
xor edx, ebp
xor ecx, edx
mov dword [esi], ecx
xor ebp, edi
xor ebp, ecx
mov ecx, ebp
xor ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 8], ebp
xor edi, edx
mov dword [esi + 0xc], edi
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x1c], ecx
add esi, 0x10
mov dword [esp + 0x14], esi
cmp esi, eax
jb 0x10014a60
mov edx, dword [esi]
ror edx, 8
mov ecx, dword [esi + 0xc]
mov edi, edx
xor edi, dword [esi]
rol edi, 0x10
xor edi, edx
mov edx, dword [esi + 4]
ror edx, 8
mov ebx, edx
xor ebx, dword [esi + 4]
rol ebx, 0x10
xor ebx, edx
mov edx, dword [esi + 8]
ror edx, 8
mov ebp, edx
xor ebp, dword [esi + 8]
rol ebp, 0x10
xor ebp, edx
mov edx, ecx
ror edx, 8
mov esi, edx
xor esi, ecx
rol esi, 0x10
xor esi, edx
xor ebx, ebp
xor edi, ebx
xor ebp, esi
xor ebp, edi
xor esi, ebx
mov dword [esp + 0x24], edi
mov edi, esi
and edi, 0xff0000
mov ecx, esi
shr ecx, 0x10
xor edi, ecx
mov ecx, esi
and ecx, 0xff00
xor ebx, ebp
rol ebp, 0x10
shl esi, 0x10
xor ecx, esi
shl ecx, 8
shr edi, 8
xor edi, ecx
mov edx, ebx
shr edx, 8
mov ecx, ebx
shl ecx, 8
xor edx, ecx
mov ecx, dword [esp + 0x24]
and edx, 0xff00ff
shl ebx, 8
xor edx, ebx
xor edx, ebp
xor ebp, edi
xor ecx, edx
xor ebp, ecx
xor edi, edx
mov dword [eax], ecx
mov ecx, ebp
mov dword [eax + 0xc], edi
pop edi
xor ecx, edx
mov dword [eax + 8], ebp
pop esi
mov dword [eax + 4], ecx
xor eax, eax
pop ebp
pop ebx
add esp, 0x18
ret