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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
push esi
push edi
movsx eax, word [0x462134]
cvtsi2ss xmm0, eax
movss dword [ebp - 0x3c], xmm0
mov ecx, dword [0x46232c]
cvtsi2ss xmm0, ecx
movss xmm1, dword [0x458a28]
subss xmm1, dword [0x462378]
subss xmm1, xmm0
movss dword [ebp - 0x38], xmm1
mov edx, dword [0x46232c]
sub edx, 1
mov dword [0x46232c], edx
movss xmm0, dword [0x462378]
subss xmm0, dword [0x457bf8]
movss dword [0x462378], xmm0
movss xmm0, dword [ebp - 0x38]
comiss xmm0, dword [ebp - 0x3c]
jb 0x424ced
mov eax, dword [0x462508]
add eax, 1
mov dword [0x462508], eax
mov ecx, dword [0x462508]
add ecx, 0x434cf978
cmp dword [str._v__gD], ecx
jl 0x424ced
mov edx, 0x4fe8
mov word [0x462170], dx
movsd xmm0, qword [0x462300]
mulsd xmm0, qword [0x457dd0]
movsd qword [0x462300], xmm0
movss xmm0, dword [0x462568]
addss xmm0, dword [0x4583cc]
movsx eax, word [0x4620fc]
cvtsi2ss xmm1, eax
subss xmm0, xmm1
movss dword [0x462108], xmm0
mov dword [ebp - 4], 0
jmp 0x424d3e
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0x10
je 0x424deb
movss xmm0, dword [0x458b38]
subss xmm0, dword [0x4624f0]
movss xmm1, dword [0x462354]
mulss xmm1, xmm0
movss dword [0x462354], xmm1
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + edx*4]
shl ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
movzx edx, byte [eax + edx*4 + 1]
shl edx, 0x10
or ecx, edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + eax*4 + 2]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
movzx edx, byte [eax + edx*4 + 3]
or ecx, edx
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x140], ecx
movsx ecx, word [0x462454]
cvtsi2sd xmm0, ecx
movsd xmm1, qword [0x4620f0]
subsd xmm1, xmm0
subsd xmm1, qword [0x457f38]
mov edx, dword [0x462404]
cvtsi2sd xmm0, edx
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x462404], eax
jmp 0x424d35
mov esi, dword [ebp + 8]
add esi, 8
mov ecx, 9
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
push 0x100
push 0x22ef
call fcn.0041f610
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0
jmp 0x424e22
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0x40
je 0x42516d
mov edx, dword [0x46230c]
cvtsi2sd xmm0, edx
movsd xmm1, qword [0x4623d0]
subsd xmm1, xmm0
movsd qword [0x4623d0], xmm1
cmp dword [ebp - 4], 0xf
jle 0x424f40
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x148]
shr ecx, 0x11
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x148]
shl eax, 0xf
or ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x148]
shr eax, 0x13
mov edx, dword [ebp - 4]
mov edx, dword [ebp + edx*4 - 0x148]
shl edx, 0xd
or eax, edx
xor ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp + eax*4 - 0x148]
shr edx, 0xa
xor ecx, edx
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x140], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x140]
mov eax, dword [ebp - 4]
add edx, dword [ebp + eax*4 - 0x15c]
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x140], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x17c]
shr eax, 7
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x17c]
shl edx, 0x19
or eax, edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x17c]
shr edx, 0x12
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp + ecx*4 - 0x17c]
shl ecx, 0xe
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + edx*4 - 0x17c]
shr ecx, 3
xor eax, ecx
mov edx, dword [ebp - 4]
add eax, dword [ebp + edx*4 - 0x140]
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x140], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x140]
mov ecx, dword [ebp - 4]
add eax, dword [ebp + ecx*4 - 0x180]
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x140], eax
mov eax, 4
imul ecx, eax, 7
mov edx, 4
shl edx, 2
mov eax, dword [ebp + edx - 0x2c]
shr eax, 6
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x2c]
shl edx, 0x1a
or eax, edx
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x2c]
shr edx, 0xb
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x2c]
shl esi, 0x15
or edx, esi
xor eax, edx
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x2c]
shr edx, 0x19
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x2c]
shl esi, 7
or edx, esi
xor eax, edx
mov ecx, dword [ebp + ecx - 0x2c]
add ecx, eax
mov edx, 4
imul eax, edx, 6
mov edx, 4
shl edx, 2
mov esi, 4
imul esi, esi, 5
mov edi, 4
imul edi, edi, 6
mov esi, dword [ebp + esi - 0x2c]
xor esi, dword [ebp + edi - 0x2c]
and esi, dword [ebp + edx - 0x2c]
xor esi, dword [ebp + eax - 0x2c]
add ecx, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
add ecx, dword [edx + eax*4]
mov eax, dword [ebp - 4]
add ecx, dword [ebp + eax*4 - 0x140]
mov dword [ebp - 0x30], ecx
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + edx - 0x2c]
shr eax, 2
mov ecx, 4
imul edx, ecx, 0
mov ecx, dword [ebp + edx - 0x2c]
shl ecx, 0x1e
or eax, ecx
mov edx, 4
imul ecx, edx, 0
mov edx, dword [ebp + ecx - 0x2c]
shr edx, 0xd
mov ecx, 4
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx - 0x2c]
shl ecx, 0x13
or edx, ecx
xor eax, edx
mov edx, 4
imul ecx, edx, 0
mov edx, dword [ebp + ecx - 0x2c]
shr edx, 0x16
mov ecx, 4
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx - 0x2c]
shl ecx, 0xa
or edx, ecx
xor eax, edx
mov edx, 4
imul ecx, edx, 0
mov edx, 4
shl edx, 0
mov ecx, dword [ebp + ecx - 0x2c]
and ecx, dword [ebp + edx - 0x2c]
mov edx, 4
shl edx, 1
mov esi, 4
imul esi, esi, 0
mov edi, 4
shl edi, 0
mov esi, dword [ebp + esi - 0x2c]
or esi, dword [ebp + edi - 0x2c]
and esi, dword [ebp + edx - 0x2c]
or ecx, esi
add eax, ecx
mov dword [ebp - 0x40], eax
mov eax, 4
imul ecx, eax, 3
mov edx, dword [ebp + ecx - 0x2c]
add edx, dword [ebp - 0x30]
mov eax, 4
imul ecx, eax, 3
mov dword [ebp + ecx - 0x2c], edx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x40]
mov eax, 4
imul ecx, eax, 7
mov dword [ebp + ecx - 0x2c], edx
movss xmm0, dword [0x462488]
addss xmm0, dword [0x458230]
movss xmm1, dword [0x462190]
mulss xmm1, xmm0
movss dword [0x462190], xmm1
movss xmm0, dword [0x462488]
subss xmm0, dword [0x457bf8]
movss dword [0x462488], xmm0
mov dword [ebp - 8], 8
jmp 0x42511b
mov edx, dword [ebp - 8]
sub edx, 1
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x425150
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x30]
mov dword [ebp + eax*4 - 0x2c], edx
mov eax, dword [0x4620c0]
add eax, 1
mov dword [0x4620c0], eax
mov ecx, dword [0x4620c0]
cvtsi2sd xmm0, ecx
movsd qword [0x462120], xmm0
jmp 0x425112
mov edx, 4
shl edx, 3
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp + edx - 0x2c]
mov dword [ebp + ecx - 0x2c], edx
jmp 0x424e19
mov eax, dword [ebp - 0x34]
push eax
push 0x100
call fcn.00415140
add esp, 8
mov dword [ebp - 4], 0
jmp 0x425190
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 8
je 0x4251e8
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 8]
mov edx, dword [ebp - 4]
add ecx, dword [ebp + edx*4 - 0x2c]
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [edx + eax*4 + 8], ecx
mov ax, word [0x462018]
sub ax, 1
mov word [0x462018], ax
movsx ecx, word [0x462018]
sub ecx, 0x69968f01
cvtsi2sd xmm0, ecx
movsd xmm1, qword [0x462150]
mulsd xmm1, xmm0
movsd qword [0x462150], xmm1
jmp 0x425187
pop edi
pop esi
mov esp, ebp
pop ebp
ret