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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffdc
mov dword [esp + 4], ecx
mov dword [esp], edx
mov edi, eax
xor ebx, ebx
mov esi, dword [esp + 4]
mov eax, dword [edi + ebx*4]
call fcn.004576a0
mov dword [esi], eax
inc ebx
add esi, 4
cmp ebx, 0x10
jne 0x46ff32
mov ebx, 0x30
mov eax, dword [esp + 4]
add eax, 0x38
mov edx, dword [eax]
mov ecx, edx
shr ecx, 0x11
mov esi, edx
shl esi, 0xf
or ecx, esi
mov esi, edx
shr esi, 0x13
mov edi, edx
shl edi, 0xd
or esi, edi
xor ecx, esi
shr edx, 0xa
xor ecx, edx
add ecx, dword [eax - 0x14]
mov edx, dword [eax - 0x34]
shr edx, 7
mov esi, dword [eax - 0x34]
shl esi, 0x19
or edx, esi
mov esi, dword [eax - 0x34]
shr esi, 0x12
mov edi, dword [eax - 0x34]
shl edi, 0xe
or esi, edi
xor edx, esi
mov esi, dword [eax - 0x34]
shr esi, 3
xor edx, esi
add ecx, edx
add ecx, dword [eax - 0x38]
mov dword [eax + 8], ecx
add eax, 4
dec ebx
jne 0x46ff51
mov eax, dword [esp]
mov eax, dword [eax + 0x4c]
mov edx, dword [esp]
mov edx, dword [edx + 0x50]
mov dword [esp + 8], edx
mov edx, dword [esp]
mov edx, dword [edx + 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [esp]
mov edx, dword [edx + 0x58]
mov dword [esp + 0x10], edx
mov edx, dword [esp]
mov edx, dword [edx + 0x5c]
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x60]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x64]
mov dword [esp + 0x18], ecx
mov esi, dword [esp]
mov esi, dword [esi + 0x68]
mov ebx, 0x40
mov dword [esp + 0x1c], 0x4e04b4
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], ecx
mov ecx, esi
mov esi, edx
shr esi, 6
mov edi, edx
shl edi, 0x1a
or esi, edi
mov edi, edx
shr edi, 0xb
mov ebp, edx
shl ebp, 0x15
or edi, ebp
xor esi, edi
mov edi, edx
shr edi, 0x19
mov ebp, edx
shl ebp, 7
or edi, ebp
xor esi, edi
add ecx, esi
mov esi, dword [esp + 0x14]
and esi, edx
mov edi, edx
not edi
and edi, dword [esp + 0x18]
xor esi, edi
add ecx, esi
mov esi, dword [esp + 0x1c]
add ecx, dword [esi]
mov esi, dword [esp + 0x20]
add ecx, dword [esi]
mov edi, eax
shr edi, 2
mov esi, eax
shl esi, 0x1e
or edi, esi
mov esi, eax
shr esi, 0xd
mov ebp, eax
shl ebp, 0x13
or esi, ebp
xor edi, esi
mov esi, eax
shr esi, 0x16
mov ebp, eax
shl ebp, 0xa
or esi, ebp
xor edi, esi
mov esi, dword [esp + 8]
and esi, eax
mov ebp, dword [esp + 0xc]
and ebp, eax
xor esi, ebp
mov ebp, dword [esp + 8]
and ebp, dword [esp + 0xc]
xor esi, ebp
add edi, esi
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
add edx, ecx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 8]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
lea eax, [edi + ecx]
add dword [esp + 0x20], 4
add dword [esp + 0x1c], 4
dec ebx
jne 0x470002
mov ecx, dword [esp]
add dword [ecx + 0x4c], eax
mov eax, dword [esp]
mov ecx, dword [esp + 8]
add dword [eax + 0x50], ecx
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
add dword [eax + 0x54], ecx
mov eax, dword [esp]
mov ecx, dword [esp + 0x10]
add dword [eax + 0x58], ecx
mov eax, dword [esp]
add dword [eax + 0x5c], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
add dword [eax + 0x60], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x18]
add dword [eax + 0x64], edx
mov eax, dword [esp]
add dword [eax + 0x68], esi
add esp, 0x24
pop ebp
pop edi
pop esi
pop ebx
ret