Function at 0x53c5fc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [ebp + 0xc]
shr ebx, 3
mov dword [ebp - 0x18], ebx
je 0x53c84d
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edx
nop
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx]
xor esi, edx
mov edx, esi
mov byte [ebx], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 1]
xor esi, edx
mov edx, esi
mov byte [ebx + 1], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 2]
xor esi, edx
mov edx, esi
mov byte [ebx + 2], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 3]
xor esi, edx
mov edx, esi
mov byte [ebx + 3], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 4]
xor esi, edx
mov edx, esi
mov byte [ebx + 4], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 5]
xor esi, edx
mov edx, esi
mov byte [ebx + 5], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 6]
xor esi, edx
mov edx, esi
mov byte [ebx + 6], dl
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
lea edx, [esi + edx]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + 7]
xor esi, edx
mov edx, esi
mov byte [ebx + 7], dl
add ebx, 8
add dword [ebp - 0x10], 8
dec dword [ebp - 0x14]
jne 0x53c62c
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
lea ebx, [esi*8]
add dword [ebp + 0x14], ebx
add dword [ebp + 0x10], ebx
mov edi, dword [ebp + 0xc]
and edi, 7
mov dword [ebp - 0x10], edi
je 0x53ca43
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
lea edx, [esi + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov ebx, dword [ebp + 0x10]
mov bl, byte [ebx]
xor esi, ebx
mov ebx, esi
mov edi, dword [ebp + 0x14]
mov byte [edi], bl
cmp dword [ebp - 0x10], 1
je 0x53ca43
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
lea edx, [esi + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov ebx, dword [ebp + 0x10]
mov bl, byte [ebx + 1]
xor esi, ebx
mov ebx, esi
mov edi, dword [ebp + 0x14]
mov byte [edi + 1], bl
cmp dword [ebp - 0x10], 2
je 0x53ca43
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
lea edx, [esi + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov ebx, dword [ebp + 0x10]
mov bl, byte [ebx + 2]
xor esi, ebx
mov ebx, esi
mov edi, dword [ebp + 0x14]
mov byte [edi + 2], bl
cmp dword [ebp - 0x10], 3
je 0x53ca43
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
lea edx, [esi + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov ebx, dword [ebp + 0x10]
mov bl, byte [ebx + 3]
xor esi, ebx
mov ebx, esi
mov edi, dword [ebp + 0x14]
mov byte [edi + 3], bl
cmp dword [ebp - 0x10], 4
je 0x53ca43
inc ecx
and ecx, 0xff
mov esi, dword [eax + ecx*4 + 8]
lea edx, [esi + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], esi
lea esi, [edi + esi]
and esi, 0xff
mov esi, dword [eax + esi*4 + 8]
mov ebx, dword [ebp + 0x10]
mov bl, byte [ebx + 4]
xor esi, ebx
mov ebx, esi
mov edi, dword [ebp + 0x14]
mov byte [edi + 4], bl
mov ebx, dword [ebp - 0x10]
sub ebx, 5
mov dword [ebp - 0x10], ebx
je 0x53ca43
add edi, 5
mov dword [ebp - 0x14], edi
mov esi, dword [ebp + 0x10]
add esi, 5
inc ecx
and ecx, 0xff
mov ebx, dword [eax + ecx*4 + 8]
lea edx, [ebx + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], ebx
lea ebx, [edi + ebx]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 8]
mov edi, dword [ebp + 0x10]
xor bl, byte [edi + 5]
mov edi, dword [ebp + 0x14]
mov byte [edi + 5], bl
cmp dword [ebp - 0x10], 1
je 0x53ca43
inc ecx
and ecx, 0xff
mov ebx, dword [eax + ecx*4 + 8]
lea edx, [ebx + edx]
and edx, 0xff
mov edi, dword [eax + edx*4 + 8]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + edx*4 + 8], ebx
lea ebx, [edi + ebx]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 8]
xor bl, byte [esi + 1]
mov esi, dword [ebp - 0x14]
mov byte [esi + 1], bl
mov dword [eax], ecx
mov dword [eax + 4], edx
add esp, 0x10
pop ebx
pop esi
pop edi
leave
ret