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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x114
push ebx
push ebp
push esi
xor ecx, ecx
inc eax
push edi
xor edx, edx
mov dh, byte [eax - 1]
movzx esi, byte [eax + 1]
add ecx, 4
add eax, 0x10
mov dl, byte [eax - 0x10]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 0xe]
shl edx, 8
or edx, esi
mov dword [esp + ecx*4 + 0x14], edx
xor edx, edx
mov dh, byte [eax - 0xd]
movzx esi, byte [eax - 0xb]
mov dl, byte [eax - 0xc]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 0xa]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 7]
mov dword [esp + ecx*4 + 0x18], edx
xor edx, edx
mov dh, byte [eax - 9]
mov dl, byte [eax - 8]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 6]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 3]
mov dword [esp + ecx*4 + 0x1c], edx
xor edx, edx
mov dh, byte [eax - 5]
mov dl, byte [eax - 4]
shl edx, 8
or edx, esi
movzx esi, byte [eax - 2]
shl edx, 8
or edx, esi
cmp ecx, 0x10
mov dword [esp + ecx*4 + 0x20], edx
jb 0x468fa1
cmp ecx, 0x40
jae 0x469090
mov esi, 0x40
lea edx, [esp + ecx*4 + 0x1c]
sub esi, ecx
mov eax, dword [edx - 0x34]
mov ecx, dword [edx]
mov edi, eax
mov ebx, eax
shl ebx, 0xe
shr edi, 0x12
or edi, ebx
mov ebx, eax
mov ebp, eax
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edi, ebx
shr eax, 3
xor edi, eax
mov eax, ecx
shr eax, 0x11
mov ebx, ecx
shl ebx, 0xf
or eax, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 0x13
shl ebp, 0xd
or ebx, ebp
mov ebp, dword [edx - 0x38]
xor eax, ebx
mov ebx, dword [edx - 0x14]
shr ecx, 0xa
xor eax, ecx
add edi, eax
add edi, ebp
add edi, ebx
mov dword [edx + 8], edi
add edx, 4
dec esi
jne 0x469038
mov eax, dword [esp + 0x128]
mov ecx, dword [eax + 0x50]
mov esi, dword [eax + 0x60]
mov edx, dword [eax + 0x4c]
mov ebp, dword [eax + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x18], esi
mov esi, dword [eax + 0x64]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x14], esi
xor esi, esi
mov eax, ecx
shl eax, 0x15
mov edi, ecx
shr edi, 0xb
or eax, edi
mov edi, ecx
shl edi, 0x1a
mov ebx, ecx
shr ebx, 6
or edi, ebx
xor eax, edi
mov edi, ecx
shr edi, 0x19
mov ebx, ecx
shl ebx, 7
or edi, ebx
mov ebx, dword [esp + 0x14]
xor eax, edi
mov edi, ecx
not edi
and edi, ebx
mov ebx, dword [esp + 0x18]
and ebx, ecx
xor edi, ebx
mov ebx, dword [esi + 0x4c8758]
add eax, edi
mov edi, dword [esp + esi + 0x24]
add eax, ebx
add eax, edi
add eax, ebp
mov ebx, edx
mov edi, edx
shr edi, 0xd
shl ebx, 0x13
or ebx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ebx, edi
mov edi, edx
shl edi, 0x1e
mov ebp, edx
shr ebp, 2
or edi, ebp
mov ebp, dword [esp + 0x1c]
xor ebx, edi
mov edi, dword [esp + 0x10]
xor edi, edx
and edi, ebp
mov ebp, dword [esp + 0x10]
and ebp, edx
xor edi, ebp
mov ebp, dword [esp + 0x14]
add ebx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
lea edi, [eax + ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], edx
add ebx, eax
mov dword [esp + 0x1c], ecx
mov eax, edi
shl eax, 0x15
mov edx, edi
shr edx, 0xb
or eax, edx
mov ecx, edi
shl ecx, 0x1a
mov edx, edi
shr edx, 6
or ecx, edx
xor eax, ecx
mov ecx, edi
shr ecx, 0x19
mov edx, edi
shl edx, 7
or ecx, edx
mov edx, dword [esp + 0x14]
xor eax, ecx
mov ecx, edi
not ecx
and ecx, edx
mov edx, dword [esp + 0x18]
and edx, edi
xor ecx, edx
mov edx, dword [esi + 0x4c875c]
add eax, ecx
mov ecx, dword [esp + esi + 0x28]
add eax, edx
add eax, ecx
add eax, ebp
mov edx, ebx
mov ecx, ebx
shr ecx, 0xd
shl edx, 0x13
or edx, ecx
mov ecx, ebx
shr ecx, 0x16
mov ebp, ebx
shl ebp, 0xa
or ecx, ebp
xor edx, ecx
mov ecx, ebx
mov ebp, ebx
shl ecx, 0x1e
shr ebp, 2
or ecx, ebp
mov ebp, dword [esp + 0x1c]
xor edx, ecx
mov ecx, dword [esp + 0x10]
xor ecx, ebx
and ecx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ebx
xor ecx, ebp
mov ebp, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x1c], edi
add edx, eax
mov dword [esp + 0x10], ebx
mov eax, ecx
shl eax, 0x15
mov edi, ecx
shr edi, 0xb
or eax, edi
mov edi, ecx
shl edi, 0x1a
mov ebx, ecx
shr ebx, 6
or edi, ebx
xor eax, edi
mov edi, ecx
shr edi, 0x19
mov ebx, ecx
shl ebx, 7
or edi, ebx
mov ebx, dword [esp + 0x14]
xor eax, edi
mov edi, ecx
not edi
and edi, ebx
mov ebx, dword [esp + 0x18]
and ebx, ecx
xor edi, ebx
mov ebx, dword [esi + 0x4c8760]
add eax, edi
mov edi, dword [esp + esi + 0x2c]
add eax, ebx
add eax, edi
add eax, ebp
mov ebx, edx
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebx, 0x13
or ebx, edi
mov edi, edx
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, edx
xor ebx, edi
mov edi, edx
shl edi, 0x1e
shr ebp, 2
or edi, ebp
mov ebp, dword [esp + 0x1c]
xor ebx, edi
mov edi, dword [esp + 0x10]
xor edi, edx
and edi, ebp
mov ebp, dword [esp + 0x10]
and ebp, edx
xor edi, ebp
mov ebp, dword [esp + 0x14]
add ebx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
add ebx, eax
mov dword [esp + 0x14], edi
lea edi, [eax + ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov eax, edi
shl eax, 0x15
mov edx, edi
shr edx, 0xb
or eax, edx
mov ecx, edi
shl ecx, 0x1a
mov edx, edi
shr edx, 6
or ecx, edx
xor eax, ecx
mov ecx, edi
shr ecx, 0x19
mov edx, edi
shl edx, 7
or ecx, edx
mov edx, dword [esp + 0x14]
xor eax, ecx
mov ecx, edi
not ecx
and ecx, edx
mov edx, dword [esp + 0x18]
and edx, edi
xor ecx, edx
mov edx, dword [esi + 0x4c8764]
add eax, ecx
mov ecx, dword [esp + esi + 0x30]
add eax, edx
add eax, ecx
mov edx, ebx
mov ecx, ebx
shr ecx, 0xd
shl edx, 0x13
or edx, ecx
add eax, ebp
mov ecx, ebx
shr ecx, 0x16
mov ebp, ebx
shl ebp, 0xa
or ecx, ebp
xor edx, ecx
mov ecx, ebx
shl ecx, 0x1e
mov ebp, ebx
shr ebp, 2
or ecx, ebp
mov ebp, dword [esp + 0x1c]
xor edx, ecx
mov ecx, dword [esp + 0x10]
xor ecx, ebx
and ecx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ebx
xor ecx, ebp
mov ebp, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
add esi, 0x10
add ecx, eax
add edx, eax
cmp esi, 0x100
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], ebx
jb 0x4690c5
mov eax, dword [esp + 0x128]
mov esi, dword [eax + 0x4c]
add esi, edx
mov edx, dword [eax + 0x50]
add edx, ebx
mov dword [eax + 0x50], edx
mov edx, dword [eax + 0x54]
add edx, edi
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x58]
mov dword [eax + 0x4c], esi
mov esi, dword [esp + 0x20]
add edx, esi
mov dword [eax + 0x58], edx
mov edx, dword [eax + 0x5c]
add edx, ecx
mov ecx, dword [eax + 0x60]
mov dword [eax + 0x5c], edx
mov edx, dword [esp + 0x18]
add ecx, edx
mov edx, dword [esp + 0x14]
mov dword [eax + 0x60], ecx
mov ecx, dword [eax + 0x64]
add ecx, edx
pop edi
mov dword [eax + 0x64], ecx
mov ecx, dword [eax + 0x68]
pop esi
add ecx, ebp
pop ebp
mov dword [eax + 0x68], ecx
pop ebx
add esp, 0x114
ret