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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffec8
mov dword [esp], eax
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x90]
mov eax, dword [esp]
mov eax, dword [eax + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x98]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x9c]
mov dword [esp + 0x14], eax
mov esi, dword [esp]
mov esi, dword [esi + 0xa0]
mov eax, dword [esp]
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x18], eax
mov eax, dword [esp]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0xac]
mov dword [esp + 0x20], eax
lea edx, [esp + 0x38]
mov eax, dword [esp]
mov ecx, 0x40
call fcn.004076a0
mov edx, 0x10
lea eax, [esp + 0x38]
mov ecx, dword [eax]
mov edi, ecx
shr edi, 0x18
mov ebp, ecx
shl ebp, 0x18
or edi, ebp
mov ebp, ecx
shr ebp, 8
and ebp, 0xff00
or edi, ebp
shl ecx, 8
and ecx, 0xff0000
or edi, ecx
mov dword [eax], edi
add eax, 4
dec edx
jne 0x45156f
mov edx, 0x30
lea eax, [esp + 0x3c]
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x19
mov edi, dword [esp + 0x24]
shr edi, 7
or ecx, edi
mov edi, dword [esp + 0x28]
shl edi, 0xe
mov ebp, dword [esp + 0x28]
shr ebp, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [eax]
shr edi, 3
xor ecx, edi
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0xf
mov edi, dword [esp + 0x2c]
shr edi, 0x11
or ecx, edi
mov edi, dword [esp + 0x30]
shl edi, 0xd
mov ebp, dword [esp + 0x30]
shr ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, dword [eax + 0x34]
shr edi, 0xa
xor ecx, edi
mov edi, dword [eax - 4]
add edi, dword [esp + 4]
add edi, dword [eax + 0x20]
add ecx, edi
mov dword [eax + 0x3c], ecx
add eax, 4
dec edx
jne 0x4515a6
mov edx, 0x40
mov eax, 0x843cf8
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], ecx
mov ecx, ebx
shl ecx, 0x1e
mov edi, ebx
shr edi, 2
or ecx, edi
mov edi, ebx
shl edi, 0x13
mov ebp, ebx
shr ebp, 0xd
or edi, ebp
xor ecx, edi
mov edi, ebx
shl edi, 0xa
mov ebp, ebx
shr ebp, 0x16
or edi, ebp
xor ecx, edi
mov dword [esp + 4], ecx
mov ecx, ebx
and ecx, dword [esp + 0xc]
mov edi, ebx
and edi, dword [esp + 0x10]
xor ecx, edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x10]
xor ecx, edi
add ecx, dword [esp + 4]
mov dword [esp + 8], ecx
mov ecx, esi
shl ecx, 0x1a
mov edi, esi
shr edi, 6
or ecx, edi
mov edi, esi
shl edi, 0x15
mov ebp, esi
shr ebp, 0xb
or edi, ebp
xor ecx, edi
mov edi, esi
shl edi, 7
mov ebp, esi
shr ebp, 0x19
or edi, ebp
xor ecx, edi
mov edi, esi
and edi, dword [esp + 0x18]
mov ebp, esi
not ebp
and ebp, dword [esp + 0x1c]
xor edi, ebp
add ecx, dword [esp + 0x20]
add edi, ecx
add edi, dword [eax]
mov ecx, dword [esp + 0x34]
add edi, dword [ecx]
mov ecx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
add esi, ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov ebx, ecx
add ebx, dword [esp + 8]
add dword [esp + 0x34], 4
add eax, 4
dec edx
jne 0x45163f
mov eax, dword [esp]
add dword [eax + 0x90], ebx
mov eax, dword [esp]
mov edx, dword [esp + 0xc]
add dword [eax + 0x94], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
add dword [eax + 0x98], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
add dword [eax + 0x9c], edx
mov eax, dword [esp]
add dword [eax + 0xa0], esi
mov eax, dword [esp]
mov edx, dword [esp + 0x18]
add dword [eax + 0xa4], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x1c]
add dword [eax + 0xa8], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x20]
add dword [eax + 0xac], edx
add esp, 0x138
pop ebp
pop edi
pop esi
pop ebx
ret