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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, edx
shr eax, 4
xor eax, ecx
mov dword [ebp - 4], 4
and eax, 0xf0f0f0f
xor ecx, eax
shl eax, 4
xor edx, eax
mov eax, ecx
shr eax, 0x10
xor eax, edx
movzx eax, ax
xor edx, eax
shl eax, 0x10
xor ecx, eax
mov eax, edx
shr eax, 2
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
shl eax, 2
xor edx, eax
mov eax, ecx
shr eax, 8
xor eax, edx
and eax, 0xff00ff
xor edx, eax
shl eax, 8
xor ecx, eax
mov eax, edx
shr eax, 1
xor eax, ecx
and eax, 0x55555555
mov ebx, eax
add eax, eax
xor ebx, ecx
xor eax, edx
mov ecx, dword [ebp + 0x14]
rol ebx, 3
rol eax, 3
add ecx, 8
mov dword [ebp + 0xc], ecx
mov esi, dword [ecx - 8]
mov edi, dword [ecx - 4]
xor esi, ebx
mov edx, esi
mov ecx, esi
shr ecx, 0xa
xor edi, ebx
and ecx, 0x3f
shr edx, 0x12
and edx, 0x3f
ror edi, 4
mov edx, dword [edx*4 + 0x7a85400]
xor edx, dword [ecx*4 + 0x7a85200]
mov ecx, esi
shr ecx, 2
and ecx, 0x3f
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x7a85000]
mov ecx, edi
shr ecx, 0x12
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85500]
mov ecx, edi
shr ecx, 0xa
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85300]
mov ecx, edi
shr ecx, 2
and ecx, 0x3f
shr edi, 0x1a
xor edx, dword [ecx*4 + 0x7a85100]
xor edx, dword [esi*4 + 0x7a85600]
xor edx, dword [edi*4 + 0x7a85700]
mov edi, dword [ebp + 0xc]
xor eax, edx
mov esi, dword [edi]
mov edi, dword [edi + 4]
xor esi, eax
mov edx, esi
mov ecx, esi
shr ecx, 0xa
xor edi, eax
shr edx, 0x12
and ecx, 0x3f
and edx, 0x3f
ror edi, 4
mov edx, dword [edx*4 + 0x7a85400]
xor edx, dword [ecx*4 + 0x7a85200]
mov ecx, esi
shr ecx, 2
and ecx, 0x3f
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x7a85000]
mov ecx, edi
shr ecx, 0x12
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85500]
mov ecx, edi
shr ecx, 0xa
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85300]
mov ecx, edi
shr ecx, 2
and ecx, 0x3f
shr edi, 0x1a
xor edx, dword [ecx*4 + 0x7a85100]
xor edx, dword [esi*4 + 0x7a85600]
xor edx, dword [edi*4 + 0x7a85700]
mov ecx, dword [ebp + 0xc]
xor ebx, edx
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
xor esi, ebx
mov edx, esi
xor edi, ebx
shr edx, 0x12
mov ecx, esi
shr ecx, 0xa
and edx, 0x3f
ror edi, 4
and ecx, 0x3f
mov edx, dword [edx*4 + 0x7a85400]
xor edx, dword [ecx*4 + 0x7a85200]
mov ecx, esi
shr ecx, 2
and ecx, 0x3f
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x7a85000]
mov ecx, edi
shr ecx, 0x12
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85500]
mov ecx, edi
shr ecx, 0xa
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85300]
mov ecx, edi
shr ecx, 2
and ecx, 0x3f
shr edi, 0x1a
xor edx, dword [ecx*4 + 0x7a85100]
xor edx, dword [esi*4 + 0x7a85600]
xor edx, dword [edi*4 + 0x7a85700]
mov ecx, dword [ebp + 0xc]
xor eax, edx
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
xor esi, eax
mov edx, esi
mov ecx, esi
shr ecx, 0xa
xor edi, eax
and ecx, 0x3f
shr edx, 0x12
and edx, 0x3f
ror edi, 4
mov edx, dword [edx*4 + 0x7a85400]
xor edx, dword [ecx*4 + 0x7a85200]
mov ecx, esi
shr ecx, 2
and ecx, 0x3f
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x7a85000]
mov ecx, edi
shr ecx, 0x12
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85500]
mov ecx, edi
shr ecx, 0xa
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x7a85300]
mov ecx, edi
shr ecx, 2
and ecx, 0x3f
shr edi, 0x1a
xor edx, dword [ecx*4 + 0x7a85100]
xor edx, dword [esi*4 + 0x7a85600]
xor edx, dword [edi*4 + 0x7a85700]
mov ecx, dword [ebp + 0xc]
xor ebx, edx
add ecx, 0x20
sub dword [ebp - 4], 1
mov dword [ebp + 0xc], ecx
jne 0x384ff412
ror ebx, 3
mov ecx, ebx
ror eax, 3
shr ecx, 1
xor ecx, eax
and ecx, 0x55555555
xor eax, ecx
add ecx, ecx
xor ebx, ecx
mov ecx, eax
shr ecx, 8
xor ecx, ebx
and ecx, 0xff00ff
xor ebx, ecx
shl ecx, 8
xor eax, ecx
mov ecx, ebx
shr ecx, 2
xor ecx, eax
and ecx, 0x33333333
xor eax, ecx
shl ecx, 2
xor ebx, ecx
mov ecx, eax
shr ecx, 0x10
xor ecx, ebx
movzx ecx, cx
xor ebx, ecx
shl ecx, 0x10
xor eax, ecx
mov edx, ebx
shr edx, 4
xor edx, eax
and edx, 0xf0f0f0f
mov ecx, edx
shl edx, 4
xor ecx, eax
mov eax, dword [ebp + 0x10]
pop edi
xor edx, ebx
pop esi
mov dword [eax], ecx
mov dword [eax + 4], edx
pop ebx
mov esp, ebp
pop ebp
ret