Function at 0x4520d0
Capabilities:
Encrypt data using hc-128

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, dword [esp + 0x88]
push edi
mov ecx, 8
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [esp + 0x14], edi
lea esi, [edi*4 + 0x467c7c]
lea ebx, [esp + 0x48]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x90]
mov eax, 0xfffffffe
lea edx, [esp + 0x48]
sub esi, ebx
mov dword [esp + 0x1c], eax
mov ecx, 0xfffffffc
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
jmp 0x452127
mov esi, dword [esp + 0x24]
test edi, edi
je 0x4521a6
lea edi, [eax + 2]
mov edx, eax
and edi, 0xf
and edx, 0xf
lea esi, [eax + 3]
add eax, 0xfffffffb
mov edx, dword [esp + edx*4 + 0x48]
lea edi, [esp + edi*4 + 0x48]
mov dword [esp + 0x18], edi
mov edi, edx
mov ebx, edx
mov ebp, edx
shr edi, 0x13
shl ebx, 0xd
or edi, ebx
mov ebx, edx
shr ebx, 0x11
shl ebp, 0xf
and esi, 0xf
or ebx, ebp
xor edi, ebx
and eax, 0xf
mov esi, dword [esp + esi*4 + 0x48]
shr edx, 0xa
xor edi, edx
mov edx, esi
mov ebx, esi
mov ebp, esi
shr edx, 0x12
shl ebx, 0xe
or edx, ebx
mov ebx, esi
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edx, ebx
shr esi, 3
xor edx, esi
mov esi, dword [esp + eax*4 + 0x48]
mov eax, dword [esp + 0x18]
add edi, edx
add edi, esi
mov edx, dword [eax]
add edx, edi
mov dword [eax], edx
mov eax, edx
jmp 0x4521ab
mov eax, dword [esi + edx]
mov dword [edx], eax
mov edx, ecx
mov dword [esp + 0x18], eax
and edx, 7
mov eax, dword [esp + edx*4 + 0x28]
lea edx, [ecx + 2]
mov edi, eax
mov ebx, eax
shr edi, 0x19
shl ebx, 7
or edi, ebx
mov ebx, eax
mov ebp, eax
and edx, 7
shl ebx, 0x15
shr ebp, 0xb
or ebx, ebp
mov ebp, eax
xor edi, ebx
mov ebx, eax
shl ebx, 0x1a
shr ebp, 6
mov esi, dword [esp + edx*4 + 0x28]
or ebx, ebp
xor edi, ebx
lea ebx, [ecx + 1]
and ebx, 7
lea edx, [ecx + 3]
and edx, 7
mov ebx, dword [esp + ebx*4 + 0x28]
xor ebx, esi
mov ebp, dword [esp + edx*4 + 0x28]
and ebx, eax
mov eax, dword [esp + 0x10]
xor ebx, esi
lea edx, [esp + edx*4 + 0x28]
mov esi, dword [eax]
mov eax, dword [esp + 0x18]
add edi, ebx
add edi, esi
add edi, eax
lea eax, [ecx - 1]
and eax, 7
add ebp, edi
mov dword [edx], ebp
mov esi, ebp
mov edi, dword [esp + eax*4 + 0x28]
lea eax, [esp + eax*4 + 0x28]
add edi, esi
lea esi, [ecx - 3]
mov dword [eax], edi
lea eax, [ecx - 4]
and eax, 7
and esi, 7
mov eax, dword [esp + eax*4 + 0x28]
mov esi, dword [esp + esi*4 + 0x28]
mov edi, eax
mov ebx, eax
shr edi, 0x16
shl ebx, 0xa
or edi, ebx
mov ebx, eax
mov ebp, eax
shl ebx, 0x13
shr ebp, 0xd
or ebx, ebp
mov ebp, eax
xor edi, ebx
mov ebx, eax
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
mov ebp, esi
xor edi, ebx
lea ebx, [ecx - 2]
and ebx, 7
or ebp, eax
and esi, eax
mov ebx, dword [esp + ebx*4 + 0x28]
and ebx, ebp
or ebx, esi
add edi, ebx
mov ebx, dword [edx]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
add ebx, edi
mov edi, dword [esp + 0x14]
mov dword [edx], ebx
mov edx, dword [esp + 0x20]
inc eax
add edx, 4
add ebp, 4
lea esi, [eax + 2]
dec ecx
cmp esi, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ebp
jb 0x452123
add edi, 0x10
cmp edi, 0x40
mov dword [esp + 0x14], edi
jb 0x4520ef
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x28]
sub ecx, eax
mov edx, 8
mov esi, dword [ecx + eax]
mov ebx, dword [eax]
add ebx, esi
mov dword [eax], ebx
add eax, 4
dec edx
jne 0x4522da
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 8