Function at 0x42a120
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push esi
xor eax, eax
push edi
mov dl, al
shr dl, 4
movzx edi, dl
mov cl, al
and cl, 0xf
movzx esi, cl
mov byte [esp + 0xf], cl
mov ecx, edi
movzx edi, byte [edi + 0x453644]
xor ecx, esi
mov cl, byte [ecx + 0x453654]
movzx esi, byte [esi + 0x453634]
xor edi, esi
movzx esi, byte [edi + 0x453674]
movzx ebx, byte [esi + 0x453634]
movzx ecx, cl
movzx edi, byte [ecx + 0x453644]
xor ecx, esi
xor edi, ebx
mov bl, byte [edi + 0x4536b4]
movzx esi, dl
shl bl, 4
or bl, byte [ecx + 0x453694]
movzx ecx, byte [esp + 0xf]
mov edx, esi
movzx esi, byte [esi + 0x453644]
xor edx, ecx
movzx ecx, byte [ecx + 0x453634]
mov dl, byte [edx + 0x453664]
xor esi, ecx
movzx esi, byte [esi + 0x453684]
movzx edi, byte [esi + 0x453634]
movzx ecx, dl
movzx edx, byte [ecx + 0x453644]
xor edx, edi
mov dl, byte [edx + 0x4536c4]
xor ecx, esi
shl dl, 4
mov byte [eax + 0x46efa0], bl
or dl, byte [ecx + 0x4536a4]
mov byte [eax + 0x46f0a0], dl
mov cl, al
inc cl
mov dl, cl
shr dl, 4
and cl, 0xf
movzx edi, dl
movzx esi, cl
mov byte [esp + 0xf], cl
mov ecx, edi
movzx edi, byte [edi + 0x453644]
xor ecx, esi
movzx esi, byte [esi + 0x453634]
mov cl, byte [ecx + 0x453654]
xor edi, esi
movzx esi, byte [edi + 0x453674]
movzx ebx, byte [esi + 0x453634]
movzx ecx, cl
movzx edi, byte [ecx + 0x453644]
xor edi, ebx
mov bl, byte [edi + 0x4536b4]
xor ecx, esi
movzx esi, dl
shl bl, 4
or bl, byte [ecx + 0x453694]
movzx ecx, byte [esp + 0xf]
mov edx, esi
movzx esi, byte [esi + 0x453644]
xor edx, ecx
movzx ecx, byte [ecx + 0x453634]
mov dl, byte [edx + 0x453664]
xor esi, ecx
movzx esi, byte [esi + 0x453684]
movzx edi, byte [esi + 0x453634]
movzx ecx, dl
movzx edx, byte [ecx + 0x453644]
xor edx, edi
mov dl, byte [edx + 0x4536c4]
mov byte [eax + 0x46efa1], bl
shl dl, 4
xor ecx, esi
or dl, byte [ecx + 0x4536a4]
mov byte [eax + 0x46f0a1], dl
mov cl, al
add cl, 2
mov dl, cl
and cl, 0xf
movzx esi, cl
shr dl, 4
mov byte [esp + 0xf], cl
movzx edi, dl
mov ecx, edi
movzx edi, byte [edi + 0x453644]
xor ecx, esi
mov cl, byte [ecx + 0x453654]
movzx esi, byte [esi + 0x453634]
xor edi, esi
movzx esi, byte [edi + 0x453674]
movzx ebx, byte [esi + 0x453634]
movzx ecx, cl
movzx edi, byte [ecx + 0x453644]
xor ecx, esi
xor edi, ebx
mov bl, byte [edi + 0x4536b4]
movzx esi, dl
shl bl, 4
or bl, byte [ecx + 0x453694]
movzx ecx, byte [esp + 0xf]
mov edx, esi
movzx esi, byte [esi + 0x453644]
xor edx, ecx
movzx ecx, byte [ecx + 0x453634]
mov dl, byte [edx + 0x453664]
xor esi, ecx
movzx esi, byte [esi + 0x453684]
movzx edi, byte [esi + 0x453634]
movzx ecx, dl
movzx edx, byte [ecx + 0x453644]
xor ecx, esi
xor edx, edi
mov dl, byte [edx + 0x4536c4]
shl dl, 4
mov byte [eax + 0x46efa2], bl
or dl, byte [ecx + 0x4536a4]
mov byte [eax + 0x46f0a2], dl
mov cl, al
add cl, 3
mov dl, cl
and cl, 0xf
shr dl, 4
movzx esi, cl
mov byte [esp + 0xf], cl
movzx edi, dl
mov ecx, edi
movzx edi, byte [edi + 0x453644]
xor ecx, esi
movzx esi, byte [esi + 0x453634]
mov cl, byte [ecx + 0x453654]
xor edi, esi
movzx esi, byte [edi + 0x453674]
movzx ebx, byte [esi + 0x453634]
movzx ecx, cl
movzx edi, byte [ecx + 0x453644]
xor edi, ebx
mov bl, byte [edi + 0x4536b4]
xor ecx, esi
movzx esi, dl
shl bl, 4
or bl, byte [ecx + 0x453694]
movzx ecx, byte [esp + 0xf]
mov edx, esi
movzx esi, byte [esi + 0x453644]
xor edx, ecx
movzx ecx, byte [ecx + 0x453634]
mov dl, byte [edx + 0x453664]
xor esi, ecx
movzx esi, byte [esi + 0x453684]
mov byte [eax + 0x46efa3], bl
movzx ecx, dl
movzx edx, byte [ecx + 0x453644]
movzx edi, byte [esi + 0x453634]
xor edx, edi
mov dl, byte [edx + 0x4536c4]
xor ecx, esi
mov bl, byte [ecx + 0x4536a4]
shl dl, 4
or dl, bl
mov byte [eax + 0x46f0a3], dl
add eax, 4
cmp eax, 0x100
jb 0x42a126
pop edi
pop esi
pop ebx
pop ecx
ret