Function at 0x479790
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 4]
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [ecx]
mov ecx, edx
shr ecx, 4
xor ecx, eax
and ecx, 0xf0f0f0f
xor eax, ecx
shl ecx, 4
xor edx, ecx
mov ecx, eax
shr ecx, 0x10
xor ecx, edx
and ecx, 0xffff
xor edx, ecx
shl ecx, 0x10
xor eax, ecx
mov ecx, edx
shr ecx, 2
xor ecx, eax
and ecx, 0x33333333
xor eax, ecx
add ecx, ecx
add ecx, ecx
xor edx, ecx
mov ecx, eax
shr ecx, 8
xor ecx, edx
and ecx, 0xff00ff
xor edx, ecx
shl ecx, 8
xor eax, ecx
push edi
mov edi, edx
shr edi, 1
xor edi, eax
and edi, 0x55555555
mov ecx, edi
xor ecx, eax
lea eax, [edi + edi]
xor eax, edx
ror ecx, 0x1d
ror eax, 0x1d
cmp dword [esp + 0x18], 0
je 0x479a27
add esi, 8
mov dword [esp + 0x18], 4
mov edx, dword [esi - 4]
mov edi, dword [esi - 8]
xor edi, ecx
xor edx, ecx
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi + 4]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi + 0xc]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi + 8]
xor ecx, ebx
xor edx, ecx
xor edi, ecx
ror edx, 4
mov ebx, edx
shr ebx, 0x12
mov ebp, edx
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi + 0x14]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi + 0x10]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
add esi, 0x20
xor ecx, ebx
sub dword [esp + 0x18], 1
jne 0x479821
jmp 0x479c33
add esi, 0x70
mov dword [esp + 0x18], 4
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edi, ecx
xor edx, ecx
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi + 4]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi - 4]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi - 8]
xor ecx, ebx
xor edx, ecx
xor edi, ecx
ror edx, 4
mov ebx, edx
shr ebx, 0x12
mov ebp, edx
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
mov edx, dword [esi - 0xc]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
mov edi, dword [esi - 0x10]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x615468]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615268]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615068]
mov ebp, edi
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615368]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x615168]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x614f68]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x615668]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x615568]
sub esi, 0x20
xor ecx, ebx
sub dword [esp + 0x18], 1
jne 0x479a32
ror eax, 3
ror ecx, 3
mov edx, ecx
shr edx, 1
xor edx, eax
and edx, 0x55555555
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx, 8
xor edx, ecx
and edx, 0xff00ff
xor ecx, edx
shl edx, 8
xor eax, edx
mov edx, ecx
shr edx, 2
xor edx, eax
and edx, 0x33333333
xor eax, edx
add edx, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx, 0x10
xor edx, ecx
and edx, 0xffff
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov edx, ecx
shr edx, 4
xor edx, eax
and edx, 0xf0f0f0f
mov esi, edx
xor esi, eax
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
shl edx, 4
xor edx, ecx
pop ebp
mov dword [eax + 4], edx
pop ebx
ret