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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov dword [ebp - 0x28], 0
jmp 0x8570b1
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 8
jae 0x8570cd
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
mov edx, dword [eax + edx*4 + 0x108]
mov dword [ebp + ecx*4 - 0x20], edx
jmp 0x8570a8
mov dword [ebp - 0x28], 0
jmp 0x8570df
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x40
jae 0x857452
mov dword [ebp - 0x24], 0
jmp 0x8570fb
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0x10
jae 0x85744d
cmp dword [ebp - 0x28], 0
je 0x857245
mov edx, dword [ebp - 0x24]
and edx, 0xf
mov eax, dword [ebp - 0x24]
add eax, 0xe
and eax, 0xf
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4 + 0x128]
shr eax, 0x11
mov ecx, dword [ebp - 0x24]
add ecx, 0xe
and ecx, 0xf
mov esi, dword [ebp + 8]
mov ecx, dword [esi + ecx*4 + 0x128]
shl ecx, 0xf
or eax, ecx
mov ecx, dword [ebp - 0x24]
add ecx, 0xe
and ecx, 0xf
mov esi, dword [ebp + 8]
mov ecx, dword [esi + ecx*4 + 0x128]
shr ecx, 0x13
mov esi, dword [ebp - 0x24]
add esi, 0xe
and esi, 0xf
mov edi, dword [ebp + 8]
mov esi, dword [edi + esi*4 + 0x128]
shl esi, 0xd
or ecx, esi
xor eax, ecx
mov ecx, dword [ebp - 0x24]
add ecx, 0xe
and ecx, 0xf
mov esi, dword [ebp + 8]
mov ecx, dword [esi + ecx*4 + 0x128]
shr ecx, 0xa
xor eax, ecx
mov ecx, dword [ebp - 0x24]
add ecx, 9
and ecx, 0xf
mov esi, dword [ebp + 8]
add eax, dword [esi + ecx*4 + 0x128]
mov ecx, dword [ebp - 0x24]
add ecx, 1
and ecx, 0xf
mov esi, dword [ebp + 8]
mov ecx, dword [esi + ecx*4 + 0x128]
shr ecx, 7
mov esi, dword [ebp - 0x24]
add esi, 1
and esi, 0xf
mov edi, dword [ebp + 8]
mov esi, dword [edi + esi*4 + 0x128]
shl esi, 0x19
or ecx, esi
mov esi, dword [ebp - 0x24]
add esi, 1
and esi, 0xf
mov edi, dword [ebp + 8]
mov esi, dword [edi + esi*4 + 0x128]
shr esi, 0x12
mov edi, dword [ebp - 0x24]
add edi, 1
and edi, 0xf
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + edi*4 + 0x128]
shl edi, 0xe
or esi, edi
xor ecx, esi
mov esi, dword [ebp - 0x24]
add esi, 1
and esi, 0xf
mov edi, dword [ebp + 8]
mov esi, dword [edi + esi*4 + 0x128]
shr esi, 3
xor ecx, esi
add eax, ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx + edx*4 + 0x128]
mov edx, dword [ebp - 0x24]
and edx, 0xf
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4 + 0x128], eax
mov edx, dword [ebp - 0x24]
and edx, 0xf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 0x128]
mov dword [ebp - 0x2c], ecx
jmp 0x857258
mov edx, dword [ebp - 0x24]
and edx, 0xf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 0x128]
mov dword [ebp - 0x2c], ecx
mov edx, 7
sub edx, dword [ebp - 0x24]
and edx, 7
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x2c]
add esi, dword [ecx + eax*4]
mov eax, 4
sub eax, dword [ebp - 0x24]
and eax, 7
mov ecx, dword [ebp + eax*4 - 0x20]
shr ecx, 6
mov eax, 4
sub eax, dword [ebp - 0x24]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shl eax, 0x1a
or ecx, eax
mov eax, 4
sub eax, dword [ebp - 0x24]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shr eax, 0xb
mov edi, 4
sub edi, dword [ebp - 0x24]
and edi, 7
mov edi, dword [ebp + edi*4 - 0x20]
shl edi, 0x15
or eax, edi
xor ecx, eax
mov eax, 4
sub eax, dword [ebp - 0x24]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shr eax, 0x19
mov edi, 4
sub edi, dword [ebp - 0x24]
and edi, 7
mov edi, dword [ebp + edi*4 - 0x20]
shl edi, 7
or eax, edi
xor ecx, eax
add esi, ecx
mov ecx, 4
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov eax, 5
sub eax, dword [ebp - 0x24]
and eax, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
and ecx, dword [ebp + eax*4 - 0x20]
mov eax, 4
sub eax, dword [ebp - 0x24]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
not eax
mov edi, 6
sub edi, dword [ebp - 0x24]
and edi, 7
and eax, dword [ebp + edi*4 - 0x20]
xor ecx, eax
add esi, ecx
add esi, dword [ebp + edx*4 - 0x20]
mov ecx, 7
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov dword [ebp + ecx*4 - 0x20], esi
mov edx, 3
sub edx, dword [ebp - 0x24]
and edx, 7
mov eax, 7
sub eax, dword [ebp - 0x24]
and eax, 7
mov ecx, dword [ebp + edx*4 - 0x20]
add ecx, dword [ebp + eax*4 - 0x20]
mov edx, 3
sub edx, dword [ebp - 0x24]
and edx, 7
mov dword [ebp + edx*4 - 0x20], ecx
mov eax, 7
sub eax, dword [ebp - 0x24]
and eax, 7
xor ecx, ecx
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov edx, dword [ebp + ecx*4 - 0x20]
shr edx, 2
xor ecx, ecx
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shl ecx, 0x1e
or edx, ecx
xor ecx, ecx
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shr ecx, 0xd
xor esi, esi
sub esi, dword [ebp - 0x24]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 0x13
or ecx, esi
xor edx, ecx
xor ecx, ecx
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shr ecx, 0x16
xor esi, esi
sub esi, dword [ebp - 0x24]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 0xa
or ecx, esi
xor edx, ecx
xor ecx, ecx
sub ecx, dword [ebp - 0x24]
and ecx, 7
mov esi, 1
sub esi, dword [ebp - 0x24]
and esi, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
and ecx, dword [ebp + esi*4 - 0x20]
xor esi, esi
sub esi, dword [ebp - 0x24]
and esi, 7
mov edi, 2
sub edi, dword [ebp - 0x24]
and edi, 7
mov esi, dword [ebp + esi*4 - 0x20]
and esi, dword [ebp + edi*4 - 0x20]
xor ecx, esi
mov esi, 1
sub esi, dword [ebp - 0x24]
and esi, 7
mov edi, 2
sub edi, dword [ebp - 0x24]
and edi, 7
mov esi, dword [ebp + esi*4 - 0x20]
and esi, dword [ebp + edi*4 - 0x20]
xor ecx, esi
add edx, ecx
add edx, dword [ebp + eax*4 - 0x20]
mov eax, 7
sub eax, dword [ebp - 0x24]
and eax, 7
mov dword [ebp + eax*4 - 0x20], edx
jmp 0x8570f2
jmp 0x8570d6
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x108]
add edx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
mov dword [eax + 0x108], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10c]
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov dword [eax + 0x10c], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x110]
add edx, dword [ebp - 0x18]
mov eax, dword [ebp + 8]
mov dword [eax + 0x110], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x114]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [eax + 0x114], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x118]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov dword [eax + 0x118], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x11c]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov dword [eax + 0x11c], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x120]
add edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x120], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x124]
add edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov dword [eax + 0x124], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret