Function at 0x4a5c10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 1]
push ebx
movzx ebx, byte [eax + 5]
mov byte [esp + 0x14], dl
movzx edx, byte [eax + 2]
push ebp
mov byte [esp + 0xc], dl
movzx edx, byte [eax + 3]
push esi
mov esi, ecx
mov ebp, dword [esi + 0x24]
mov cl, byte [eax]
mov byte [esp + 0x15], bl
movzx ebx, byte [eax + 6]
mov byte [esp + 0xf], dl
mov dl, byte [eax + 4]
mov al, byte [eax + 7]
push edi
shl ebp, 4
xor edi, edi
mov byte [esp + 0x15], bl
mov byte [esp + 0x16], al
test ebp, ebp
je 0x4a5dd9
mov eax, dword [esi + 0x14]
add eax, 2
movzx ebx, byte [eax - 2]
movzx ecx, cl
xor ebx, ecx
movzx ecx, byte [ebx + 0x509430]
add cl, byte [eax + 6]
movzx ebx, byte [esp + 0x14]
mov byte [esp + 0x17], cl
movzx ecx, byte [eax]
mov bl, byte [ecx + ebx + 0x509530]
movzx ecx, byte [eax + 2]
movzx edx, dl
xor ecx, edx
mov cl, byte [ecx + 0x509430]
add cl, byte [eax + 0xa]
movzx edx, byte [esp + 0x15]
mov byte [esp + 0x18], cl
movzx ecx, byte [eax + 4]
mov cl, byte [ecx + edx + 0x509530]
xor cl, byte [eax + 0xc]
movzx edx, byte [esp + 0x20]
xor bl, byte [eax + 8]
mov byte [esp + 0x15], cl
movzx ecx, byte [eax - 1]
mov dl, byte [ecx + edx + 0x509530]
xor dl, byte [eax + 7]
movzx ecx, byte [eax + 1]
add dl, byte [esp + 0x17]
mov byte [esp + 0x14], bl
mov byte [esp + 0x20], dl
movzx edx, byte [esp + 0x13]
xor ecx, edx
mov cl, byte [ecx + 0x509430]
add cl, byte [eax + 9]
movzx edx, byte [esp + 0x19]
add cl, bl
movzx ebx, byte [esp + 0x16]
mov byte [esp + 0x13], cl
movzx ecx, byte [eax + 3]
mov cl, byte [ecx + edx + 0x509530]
movzx edx, byte [eax + 5]
xor cl, byte [eax + 0xb]
xor edx, ebx
movzx edx, byte [edx + 0x509430]
add dl, byte [eax + 0xd]
add cl, byte [esp + 0x18]
add dl, byte [esp + 0x15]
movzx ebx, byte [esp + 0x13]
add byte [esp + 0x18], cl
mov byte [esp + 0x16], dl
mov dl, byte [esp + 0x17]
add dl, byte [esp + 0x20]
add bl, dl
add byte [esp + 0x14], bl
mov byte [esp + 0x17], dl
movzx edx, byte [esp + 0x16]
add dl, byte [esp + 0x18]
add byte [esp + 0x16], cl
add byte [esp + 0x15], dl
movzx edx, byte [esp + 0x20]
add byte [esp + 0x13], dl
movzx edx, byte [esp + 0x14]
add byte [esp + 0x17], dl
movzx edx, byte [esp + 0x13]
add byte [esp + 0x20], dl
mov dl, byte [esp + 0x16]
add cl, dl
add dl, byte [esp + 0x13]
mov byte [esp + 0x16], dl
add dl, byte [esp + 0x13]
mov byte [esp + 0x1b], dl
mov dl, byte [esp + 0x20]
add cl, dl
mov byte [esp + 0x13], cl
add cl, dl
mov dl, byte [esp + 0x15]
mov bl, dl
add bl, byte [esp + 0x18]
mov byte [esp + 0x1a], cl
mov cl, byte [esp + 0x17]
add bl, cl
mov byte [esp + 0x20], bl
add cl, bl
mov bl, byte [esp + 0x14]
add dl, bl
mov byte [esp + 0x19], dl
add dl, bl
movzx ebx, byte [esp + 0x1a]
mov byte [esp + 0x14], bl
movzx ebx, byte [esp + 0x1b]
add edi, 0x10
add eax, 0x10
mov byte [esp + 0x15], bl
cmp edi, ebp
jne 0x4a5c67
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
add eax, eax
mov bl, byte [edi + eax*8]
mov eax, dword [esp + 0x24]
xor bl, cl
mov byte [eax], bl
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
add ecx, ecx
movzx ecx, byte [edi + ecx*8 + 1]
add cl, byte [esp + 0x20]
mov byte [eax + 1], cl
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
add ecx, ecx
movzx ecx, byte [edi + ecx*8 + 2]
add cl, byte [esp + 0x14]
mov byte [eax + 2], cl
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
add ecx, ecx
movzx ecx, byte [edi + ecx*8 + 3]
xor cl, byte [esp + 0x13]
mov byte [eax + 3], cl
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
add ecx, ecx
movzx ecx, byte [edi + ecx*8 + 4]
xor cl, dl
mov byte [eax + 4], cl
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
add edx, edx
movzx edx, byte [ecx + edx*8 + 5]
add dl, byte [esp + 0x19]
pop edi
mov byte [eax + 5], dl
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x14]
add ecx, ecx
movzx ecx, byte [edx + ecx*8 + 6]
add cl, byte [esp + 0x11]
mov byte [eax + 6], cl
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
add edx, edx
movzx edx, byte [ecx + edx*8 + 7]
xor dl, byte [esp + 0x12]
pop esi
pop ebp
mov byte [eax + 7], dl
pop ebx
add esp, 0xc
ret 8