Function at 0x5851d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ebx, ecx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 4]
mov esi, dword [edi + esi*4]
xor esi, dword [eax]
mov dword [ebx], esi
inc dword [ebp - 0x14]
add ebx, 4
add eax, 4
cmp dword [ebp - 0x14], 4
jne 0x5851ec
xor eax, eax
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 + 0xc]
add ebx, ebx
mov esi, dword [ecx + 0xc]
shr esi, 0x1f
or ebx, esi
mov dword [ecx + 0xc], 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 + 8]
shr ebx, 1
mov esi, dword [ecx + 8]
shl esi, 0x1f
or ebx, esi
mov dword [ecx + 8], ebx
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 + 4]
add ebx, ebx
mov esi, dword [ecx + 4]
shr esi, 0x1f
or ebx, esi
mov dword [ecx + 4], 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]
shr ebx, 1
mov esi, dword [ecx]
shl esi, 0x1f
or ebx, esi
mov dword [ecx], ebx
add eax, 2
cmp eax, 0xe
jbe 0x58520a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
xor eax, dword [ecx + 8]
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
xor eax, dword [ecx + 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
xor eax, dword [ecx]
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
xor eax, dword [ecx + 4]
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4