Function at 0x585418
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ebx, dword [ebp - 4]
xor eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov ebx, dword [ebp - 4]
xor eax, dword [ebx + 0x14]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov ebx, dword [ebp - 4]
xor eax, dword [ebx + 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp - 4]
xor eax, dword [ebx + 0x1c]
mov dword [ecx + 4], eax
mov eax, 0xe
mov ebx, dword [ecx + 8]
add ebx, ebx
and ebx, 0x1fe
mov ebx, dword [edx + ebx*4]
mov esi, dword [ecx + 8]
shr esi, 7
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 4]
mov esi, dword [ecx + 8]
shr esi, 0xf
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x800]
mov esi, dword [ecx + 8]
shr esi, 0x17
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x804]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ecx + 0xc]
shr ebx, 0x17
and ebx, 0x1fe
mov ebx, dword [edx + ebx*4]
mov esi, dword [ecx + 0xc]
add esi, esi
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 4]
mov esi, dword [ecx + 0xc]
shr esi, 7
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x800]
mov esi, dword [ecx + 0xc]
shr esi, 0xf
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x804]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ecx]
add ebx, ebx
mov esi, dword [ecx]
shr esi, 0x1f
or ebx, esi
mov dword [ecx], ebx
lea ebx, [eax + 1]
add ebx, ebx
add ebx, 8
mov esi, dword [ebp - 4]
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0xc]
add esi, dword [ebp - 0x10]
add ebx, esi
xor dword [ecx], ebx
lea ebx, [eax + 1]
add ebx, ebx
add ebx, 8
mov esi, dword [ebp - 4]
mov ebx, dword [esi + ebx*4 + 4]
mov esi, dword [ebp - 0x10]
add esi, esi
add esi, dword [ebp - 0xc]
add ebx, esi
xor dword [ecx + 4], ebx
mov ebx, dword [ecx + 4]
shr ebx, 1
mov esi, dword [ecx + 4]
shl esi, 0x1f
or ebx, esi
mov dword [ecx + 4], ebx
mov ebx, dword [ecx]
add ebx, ebx
and ebx, 0x1fe
mov ebx, dword [edx + ebx*4]
mov esi, dword [ecx]
shr esi, 7
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 4]
mov esi, dword [ecx]
shr esi, 0xf
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x800]
mov esi, dword [ecx]
shr esi, 0x17
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x804]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ecx + 4]
shr ebx, 0x17
and ebx, 0x1fe
mov ebx, dword [edx + ebx*4]
mov esi, dword [ecx + 4]
add esi, esi
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 4]
mov esi, dword [ecx + 4]
shr esi, 7
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x800]
mov esi, dword [ecx + 4]
shr esi, 0xf
and esi, 0x1fe
xor ebx, dword [edx + esi*4 + 0x804]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ecx + 8]
add ebx, ebx
mov esi, dword [ecx + 8]
shr esi, 0x1f
or ebx, esi
mov dword [ecx + 8], ebx
mov ebx, eax
add ebx, ebx
add ebx, 8
mov esi, dword [ebp - 4]
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0xc]
add esi, dword [ebp - 0x10]
add ebx, esi
xor dword [ecx + 8], ebx
mov ebx, eax
add ebx, ebx
add ebx, 8
mov esi, dword [ebp - 4]
mov ebx, dword [esi + ebx*4 + 4]
mov esi, dword [ebp - 0x10]
add esi, esi
add esi, dword [ebp - 0xc]
add ebx, esi
xor dword [ecx + 0xc], ebx
mov ebx, dword [ecx + 0xc]
shr ebx, 1
mov esi, dword [ecx + 0xc]
shl esi, 0x1f
or ebx, esi
mov dword [ecx + 0xc], ebx
sub eax, 2
test eax, eax
jge 0x585469
xor ebx, ebx
mov eax, ecx
mov edx, dword [ebp + 8]
lea esi, [ebx]
mov edi, dword [ebp - 4]
mov esi, dword [edi + esi*4]
xor esi, dword [eax]
mov dword [edx], esi
inc ebx
add edx, 4
add eax, 4
cmp ebx, 4
jne 0x585637
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4