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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x64], 0
jmp 0x49575e
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 8
jae 0x495776
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp + 8]
mov edx, dword [eax + edx*4]
mov dword [ebp + ecx*4 - 0x20], edx
jmp 0x495755
mov dword [ebp - 0x64], 0
jmp 0x495788
mov eax, dword [ebp - 0x64]
add eax, 0x10
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0x40
jae 0x495a98
mov dword [ebp - 0x68], 0
jmp 0x4957a4
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x68], 0x10
jae 0x495a93
cmp dword [ebp - 0x64], 0
je 0x49589a
mov edx, dword [ebp - 0x68]
and edx, 0xf
mov eax, dword [ebp - 0x68]
sub eax, 2
and eax, 0xf
mov ecx, dword [ebp + eax*4 - 0x60]
shr ecx, 0x11
mov eax, dword [ebp - 0x68]
sub eax, 2
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x60]
shl eax, 0xf
or ecx, eax
mov eax, dword [ebp - 0x68]
sub eax, 2
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x60]
shr eax, 0x13
mov esi, dword [ebp - 0x68]
sub esi, 2
and esi, 0xf
mov esi, dword [ebp + esi*4 - 0x60]
shl esi, 0xd
or eax, esi
xor ecx, eax
mov eax, dword [ebp - 0x68]
sub eax, 2
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x60]
shr eax, 0xa
xor ecx, eax
mov eax, dword [ebp - 0x68]
sub eax, 7
and eax, 0xf
add ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x68]
sub eax, 0xf
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x60]
shr eax, 7
mov esi, dword [ebp - 0x68]
sub esi, 0xf
and esi, 0xf
mov esi, dword [ebp + esi*4 - 0x60]
shl esi, 0x19
or eax, esi
mov esi, dword [ebp - 0x68]
sub esi, 0xf
and esi, 0xf
mov esi, dword [ebp + esi*4 - 0x60]
shr esi, 0x12
mov edi, dword [ebp - 0x68]
sub edi, 0xf
and edi, 0xf
mov edi, dword [ebp + edi*4 - 0x60]
shl edi, 0xe
or esi, edi
xor eax, esi
mov esi, dword [ebp - 0x68]
sub esi, 0xf
and esi, 0xf
mov esi, dword [ebp + esi*4 - 0x60]
shr esi, 3
xor eax, esi
add ecx, eax
add ecx, dword [ebp + edx*4 - 0x60]
mov edx, dword [ebp - 0x68]
and edx, 0xf
mov dword [ebp + edx*4 - 0x60], ecx
mov eax, dword [ebp - 0x68]
and eax, 0xf
mov ecx, dword [ebp + eax*4 - 0x60]
mov dword [ebp - 0x70], ecx
jmp 0x4958b4
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ebp + edx*4 - 0x60], eax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp + ecx*4 - 0x60]
mov dword [ebp - 0x70], edx
mov eax, 7
sub eax, dword [ebp - 0x68]
and eax, 7
mov ecx, 4
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov edx, dword [ebp + ecx*4 - 0x20]
shr edx, 6
mov ecx, 4
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shl ecx, 0x1a
or edx, ecx
mov ecx, 4
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shr ecx, 0xb
mov esi, 4
sub esi, dword [ebp - 0x68]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 0x15
or ecx, esi
xor edx, ecx
mov ecx, 4
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov ecx, dword [ebp + ecx*4 - 0x20]
shr ecx, 0x19
mov esi, 4
sub esi, dword [ebp - 0x68]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 7
or ecx, esi
xor edx, ecx
mov ecx, 6
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov esi, 4
sub esi, dword [ebp - 0x68]
and esi, 7
mov edi, 5
sub edi, dword [ebp - 0x68]
and edi, 7
mov ebx, 6
sub ebx, dword [ebp - 0x68]
and ebx, 7
mov edi, dword [ebp + edi*4 - 0x20]
xor edi, dword [ebp + ebx*4 - 0x20]
and edi, dword [ebp + esi*4 - 0x20]
xor edi, dword [ebp + ecx*4 - 0x20]
add edx, edi
mov ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x64]
add edx, dword [ecx*4 + 0x5b46a8]
add edx, dword [ebp - 0x70]
add edx, dword [ebp + eax*4 - 0x20]
mov eax, 7
sub eax, dword [ebp - 0x68]
and eax, 7
mov dword [ebp + eax*4 - 0x20], edx
mov ecx, 3
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov edx, 7
sub edx, dword [ebp - 0x68]
and edx, 7
mov eax, dword [ebp + ecx*4 - 0x20]
add eax, dword [ebp + edx*4 - 0x20]
mov ecx, 3
sub ecx, dword [ebp - 0x68]
and ecx, 7
mov dword [ebp + ecx*4 - 0x20], eax
mov edx, 7
sub edx, dword [ebp - 0x68]
and edx, 7
xor eax, eax
sub eax, dword [ebp - 0x68]
and eax, 7
mov ecx, dword [ebp + eax*4 - 0x20]
shr ecx, 2
xor eax, eax
sub eax, dword [ebp - 0x68]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shl eax, 0x1e
or ecx, eax
xor eax, eax
sub eax, dword [ebp - 0x68]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shr eax, 0xd
xor esi, esi
sub esi, dword [ebp - 0x68]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 0x13
or eax, esi
xor ecx, eax
xor eax, eax
sub eax, dword [ebp - 0x68]
and eax, 7
mov eax, dword [ebp + eax*4 - 0x20]
shr eax, 0x16
xor esi, esi
sub esi, dword [ebp - 0x68]
and esi, 7
mov esi, dword [ebp + esi*4 - 0x20]
shl esi, 0xa
or eax, esi
xor ecx, eax
xor eax, eax
sub eax, dword [ebp - 0x68]
and eax, 7
mov esi, 1
sub esi, dword [ebp - 0x68]
and esi, 7
mov eax, dword [ebp + eax*4 - 0x20]
and eax, dword [ebp + esi*4 - 0x20]
mov esi, 2
sub esi, dword [ebp - 0x68]
and esi, 7
xor edi, edi
sub edi, dword [ebp - 0x68]
and edi, 7
mov ebx, 1
sub ebx, dword [ebp - 0x68]
and ebx, 7
mov edi, dword [ebp + edi*4 - 0x20]
or edi, dword [ebp + ebx*4 - 0x20]
and edi, dword [ebp + esi*4 - 0x20]
or eax, edi
add ecx, eax
add ecx, dword [ebp + edx*4 - 0x20]
mov edx, 7
sub edx, dword [ebp - 0x68]
and edx, 7
mov dword [ebp + edx*4 - 0x20], ecx
jmp 0x49579b
jmp 0x49577f
mov dword [ebp - 0x64], 0
jmp 0x495aaa
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 8
jae 0x495acb
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebp - 0x64]
add eax, dword [ebp + ecx*4 - 0x20]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4], eax
jmp 0x495aa1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8