Function at 0x4205b0
Capabilities:
Encode data using xor
Encrypt data using hc-128

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffedc
mov dword [esp], eax
xor eax, eax
xor ebx, ebx
lea ecx, [esp + 0x24]
movzx esi, byte [edx]
movzx edi, byte [edx + 1]
shl edi, 0x10
inc eax
shl esi, 0x18
add ebx, 4
or esi, edi
movzx edi, byte [edx + 2]
shl edi, 8
or esi, edi
movzx edi, byte [edx + 3]
or esi, edi
add edx, 4
mov dword [ecx], esi
add ecx, 4
cmp eax, 0x10
jb 0x4205c5
lea edx, [esp + eax*4 + 0x1c]
cmp eax, 0x40
jae 0x420658
mov ecx, dword [edx]
inc eax
mov ebx, ecx
mov esi, ecx
shl esi, 0xf
mov edi, ecx
shr ebx, 0x11
or ebx, esi
mov esi, ecx
shr esi, 0x13
shl edi, 0xd
or esi, edi
mov edi, dword [edx - 0x34]
shr ecx, 0xa
xor ebx, esi
xor ebx, ecx
mov ecx, dword [edx - 0x34]
mov esi, dword [edx - 0x34]
add ebx, dword [edx - 0x14]
shl esi, 0x19
shr ecx, 7
or ecx, esi
mov esi, dword [edx - 0x34]
shl edi, 0xe
shr esi, 0x12
or esi, edi
xor ecx, esi
mov esi, dword [edx - 0x34]
shr esi, 3
xor ecx, esi
add ebx, ecx
add ebx, dword [edx - 0x38]
mov dword [edx + 8], ebx
add edx, 4
cmp eax, 0x40
jb 0x4205fd
mov eax, dword [esp]
mov edx, dword [esp]
lea esi, [esp + 0x24]
mov ebx, dword [edx + 0x50]
mov ecx, dword [eax + 0x4c]
mov dword [esp + 4], ebx
mov eax, dword [esp]
mov ebx, dword [eax + 0x54]
mov eax, dword [esp]
mov edx, dword [eax + 0x58]
mov dword [esp + 8], edx
mov eax, dword [esp]
mov edx, dword [eax + 0x5c]
mov eax, dword [esp]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 0x83f6ac
xor eax, eax
mov esi, edx
mov edi, edx
shl edi, 0x1a
mov ebp, edx
shr esi, 6
or esi, edi
mov edi, edx
shr edi, 0xb
shl ebp, 0x15
or edi, ebp
mov ebp, edx
xor esi, edi
mov edi, edx
shr edi, 0x19
shl ebp, 7
or edi, ebp
mov ebp, edx
not ebp
xor esi, edi
mov edi, dword [esp + 0xc]
and ebp, dword [esp + 0x10]
add esi, dword [esp + 0x14]
and edi, edx
xor edi, ebp
mov ebp, ecx
add esi, edi
mov edi, dword [esp + 0x1c]
shl ebp, 0x13
add esi, dword [edi]
mov edi, dword [esp + 0x20]
add esi, dword [edi]
mov edi, ecx
mov dword [esp + 0x18], esi
mov esi, ecx
shr esi, 2
shl edi, 0x1e
or esi, edi
mov edi, ecx
shr edi, 0xd
or edi, ebp
mov ebp, ecx
xor esi, edi
mov edi, ecx
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, ebx
xor esi, edi
mov edi, dword [esp + 4]
and edi, ecx
and ebp, ecx
xor edi, ebp
mov ebp, dword [esp + 4]
and ebp, ebx
xor edi, ebp
add esi, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
add edx, dword [esp + 0x18]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
add ecx, esi
inc eax
add dword [esp + 0x20], 4
add dword [esp + 0x1c], 4
cmp eax, 0x40
jb 0x4206ae
mov eax, dword [esp]
add dword [eax + 0x4c], ecx
mov eax, dword [esp]
mov ecx, dword [esp + 4]
add dword [eax + 0x50], ecx
mov eax, dword [esp]
add dword [eax + 0x54], ebx
mov ecx, dword [esp]
mov eax, dword [esp + 8]
add dword [ecx + 0x58], eax
mov ecx, dword [esp]
add dword [ecx + 0x5c], edx
mov edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [edx + 0x60], eax
mov edx, dword [esp]
mov ecx, dword [esp + 0x10]
add dword [edx + 0x64], ecx
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
add dword [eax + 0x68], edx
add esp, 0x124
pop ebp
pop edi
pop esi
pop ebx
ret