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

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
push edi
mov dword [esp + 0x28], 0x30
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x14]
mov edx, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x18]
lea edi, [esi + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
mov eax, dword [edi + 0x34]
mov edi, dword [edi]
mov dword [esp + 0x1c], edi
mov ebx, eax
mov edi, eax
mov ebp, eax
shr ebx, 0x11
shl edi, 0xf
or ebx, edi
mov edi, eax
shr edi, 0x13
shl ebp, 0xd
or edi, ebp
xor ebx, edi
shr eax, 0xa
xor ebx, eax
mov eax, dword [esp + 0x1c]
mov edi, eax
mov ebp, eax
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, eax
shl ebp, 0x19
shr eax, 7
or ebp, eax
mov eax, dword [esp + 0x1c]
xor edi, ebp
shr eax, 3
xor edi, eax
add ebx, edi
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x20]
mov ebp, dword [edi - 4]
add ebx, eax
mov eax, dword [esp + 0x28]
add ebx, ebp
mov dword [edi + 0x3c], ebx
add edi, 4
dec eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
jne 0x4160a9
mov edi, 0x441eb4
lea eax, [esi + 0x2c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], eax
mov eax, ecx
mov ebx, ecx
shl eax, 0x15
shr ebx, 0xb
or eax, ebx
mov ebx, ecx
mov ebp, ecx
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, ecx
xor eax, ebx
mov ebx, ecx
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor eax, ebx
mov ebx, ecx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x10]
and ebp, ecx
or ebx, ebp
add eax, ebx
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx]
mov ebx, dword [edi]
add eax, ebp
mov ebp, dword [esp + 0x2c]
add eax, ebx
mov edi, edx
mov ebx, edx
add eax, ebp
shl edi, 0x13
shr ebx, 0xd
or edi, ebx
mov ebx, edx
mov ebp, edx
shr ebx, 0x16
shl ebp, 0xa
or ebx, ebp
mov ebp, edx
xor edi, ebx
mov ebx, edx
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x18]
xor edi, ebx
mov ebx, dword [esp + 0x34]
or ebx, edx
and ebx, ebp
mov ebp, dword [esp + 0x34]
and ebp, edx
or ebx, ebp
mov ebp, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x34], edx
lea edx, [edi + eax]
mov edi, dword [esp + 0x1c]
add ecx, eax
add edi, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x28]
add edi, 4
mov dword [esp + 0x18], ebp
cmp edi, 0x441fb4
mov dword [esp + 0x28], edi
jl 0x41612b
mov eax, dword [esi]
mov edi, dword [esi + 4]
add eax, edx
mov edx, dword [esp + 0x34]
add edi, edx
mov edx, dword [esi + 0x14]
mov dword [esi + 4], edi
mov edi, dword [esi + 0x10]
mov dword [esi], eax
mov eax, dword [esi + 8]
add edi, ecx
mov ecx, dword [esp + 0x10]
add eax, ebp
mov ebp, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
add ebp, eax
mov eax, dword [esi + 0x1c]
add ecx, edx
add eax, ebx
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], ebp
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret