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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
push 0x10
pop ecx
lea edi, [ebp - 0x164]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x10], 0x30
mov ecx, dword [eax - 0x34]
mov edx, dword [eax]
mov esi, ecx
mov edi, ecx
shl edi, 0xe
shr esi, 0x12
or esi, edi
mov edi, ecx
mov ebx, ecx
shl edi, 0x19
shr ebx, 7
or edi, ebx
xor esi, edi
shr ecx, 3
xor esi, ecx
mov ecx, edx
shr ecx, 0x11
mov edi, edx
shl edi, 0xf
or ecx, edi
mov edi, edx
mov ebx, edx
shr edi, 0x13
shl ebx, 0xd
or edi, ebx
xor ecx, edi
shr edx, 0xa
xor ecx, edx
add esi, ecx
add esi, dword [eax - 0x38]
add eax, 4
add esi, dword [eax - 0x18]
dec dword [ebp - 0x10]
mov dword [eax + 4], esi
jne 0x42165c
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0x18]
mov dword [ebp - 8], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], esi
xor eax, eax
jmp 0x4216eb
mov esi, dword [ebp - 0x10]
mov edx, esi
shl edx, 0x15
mov edi, esi
shr edi, 0xb
or edx, edi
mov edi, esi
shl edi, 0x1a
mov ebx, esi
shr ebx, 6
or edi, ebx
xor edx, edi
mov edi, esi
shr edi, 0x19
mov ebx, esi
shl ebx, 7
or edi, ebx
xor edx, edi
mov ebx, dword [ebp - 0xc]
and ebx, esi
mov edi, esi
mov esi, dword [ebp - 4]
not edi
and edi, dword [ebp - 8]
xor edi, ebx
add edx, edi
mov edi, dword [ebp - 0x18]
xor edi, esi
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x18]
and edi, esi
add edx, dword [eax + 0x442568]
mov dword [ebp - 0x24], edi
add edx, dword [ebp + eax - 0x164]
mov edi, esi
add edx, dword [ebp + 8]
shl edi, 0x13
add dword [ebp - 0x20], edx
mov ebx, esi
shr ebx, 0xd
or edi, ebx
mov ebx, esi
shr ebx, 0x16
shl esi, 0xa
or ebx, esi
mov esi, dword [ebp - 4]
xor edi, ebx
mov ebx, dword [ebp - 4]
shr ebx, 2
shl esi, 0x1e
or esi, ebx
xor edi, esi
mov esi, dword [ebp - 0x14]
and esi, dword [ebp - 0x1c]
add edi, edx
xor esi, dword [ebp - 0x24]
add esi, edi
mov dword [ebp + 8], esi
mov esi, dword [ebp - 0x20]
mov edx, esi
shl edx, 0x15
mov edi, esi
shr edi, 0xb
or edx, edi
mov edi, esi
shl edi, 0x1a
mov ebx, esi
shr ebx, 6
or edi, ebx
xor edx, edi
mov edi, esi
shr edi, 0x19
mov ebx, esi
shl ebx, 7
or edi, ebx
mov ebx, dword [ebp - 0x10]
xor edx, edi
mov edi, esi
not edi
and edi, dword [ebp - 0xc]
and ebx, esi
xor edi, ebx
add edx, edi
mov esi, dword [ebp + 8]
add edx, dword [eax + 0x44256c]
mov edi, esi
add edx, dword [ebp + eax - 0x160]
mov ebx, esi
add edx, dword [ebp - 8]
shl edi, 0x13
add dword [ebp - 0x1c], edx
shr ebx, 0xd
or edi, ebx
mov ebx, esi
shl esi, 0xa
shr ebx, 0x16
or ebx, esi
mov esi, dword [ebp + 8]
xor edi, ebx
mov ebx, dword [ebp + 8]
shl esi, 0x1e
shr ebx, 2
or esi, ebx
xor edi, esi
mov esi, dword [ebp - 0x14]
and esi, dword [ebp + 8]
add edi, edx
xor esi, dword [ebp - 0x24]
add esi, edi
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 8], esi
mov edx, edi
mov esi, edi
shr esi, 0xb
mov ebx, edi
shl edx, 0x15
or edx, esi
mov esi, edi
shl esi, 0x1a
shr ebx, 6
or esi, ebx
xor edx, esi
mov esi, edi
mov ebx, edi
shr esi, 0x19
not edi
and edi, dword [ebp - 0x10]
shl ebx, 7
or esi, ebx
xor edx, esi
mov esi, dword [ebp - 0x20]
and esi, dword [ebp - 0x1c]
xor edi, esi
add edx, edi
add edx, dword [eax + 0x442570]
add edx, dword [ebp + eax - 0x15c]
add edx, dword [ebp - 0xc]
add dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 8]
mov esi, edx
shl esi, 0x13
mov edi, edx
shr edi, 0xd
or esi, edi
mov edi, edx
shr edi, 0x16
mov ebx, edx
shl ebx, 0xa
or edi, ebx
xor esi, edi
mov edi, edx
shl edi, 0x1e
mov ebx, edx
shr ebx, 2
or edi, ebx
xor esi, edi
mov edi, edx
xor edi, dword [ebp - 4]
and edx, dword [ebp - 4]
and edi, dword [ebp + 8]
xor edi, edx
add esi, dword [ebp - 0x14]
add esi, edi
mov edi, dword [ebp - 0x18]
mov edx, edi
mov ebx, edi
shr ebx, 0xb
shl edx, 0x15
or edx, ebx
mov ebx, edi
shr edi, 6
shl ebx, 0x1a
or ebx, edi
xor edx, ebx
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x18]
shr edi, 0x19
shl ebx, 7
or edi, ebx
xor edx, edi
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x1c]
and ebx, dword [ebp - 0x18]
not edi
and edi, dword [ebp - 0x20]
mov dword [ebp - 0xc], esi
xor edi, ebx
add edx, edi
add edx, dword [eax + 0x442574]
mov edi, esi
add edx, dword [ebp + eax - 0x158]
shr edi, 0xd
add edx, dword [ebp - 0x10]
mov ebx, esi
add dword [ebp - 4], edx
mov dword [ebp - 0x14], edx
shl ebx, 0xa
mov edx, esi
shl edx, 0x13
or edx, edi
mov edi, esi
shr edi, 0x16
or edi, ebx
xor edx, edi
mov edi, esi
shl edi, 0x1e
mov ebx, esi
shr ebx, 2
or edi, ebx
mov ebx, dword [ebp - 8]
xor edx, edi
mov edi, dword [ebp - 8]
add edx, dword [ebp - 0x14]
xor edi, esi
and edi, dword [ebp + 8]
and ebx, esi
xor edi, ebx
add edi, edx
mov esi, edi
mov edi, dword [ebp - 4]
mov edx, edi
mov ebx, edi
shr ebx, 0xb
shl edx, 0x15
or edx, ebx
mov ebx, edi
shr edi, 6
shl ebx, 0x1a
or ebx, edi
mov edi, dword [ebp - 4]
xor edx, ebx
mov ebx, dword [ebp - 4]
shr edi, 0x19
shl ebx, 7
or edi, ebx
mov ebx, dword [ebp - 0x18]
and ebx, dword [ebp - 4]
xor edx, edi
mov edi, dword [ebp - 4]
not edi
and edi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], esi
xor edi, ebx
add edx, edi
add edx, dword [eax + 0x442578]
mov edi, esi
add edx, dword [ebp + eax - 0x154]
shr edi, 0xd
add edx, dword [ebp - 0x20]
mov ebx, esi
add dword [ebp + 8], edx
mov dword [ebp - 0x14], edx
shl ebx, 0xa
mov edx, esi
shl edx, 0x13
or edx, edi
mov edi, esi
shr edi, 0x16
or edi, ebx
xor edx, edi
mov edi, esi
shl edi, 0x1e
mov ebx, esi
shr ebx, 2
or edi, ebx
xor edx, edi
add edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0xc]
xor edi, esi
and edi, dword [ebp - 8]
and ebx, esi
xor edi, ebx
add edi, edx
mov esi, edi
mov edi, dword [ebp + 8]
mov edx, edi
mov ebx, edi
shl edx, 0x15
shr ebx, 0xb
or edx, ebx
mov ebx, edi
shr edi, 6
shl ebx, 0x1a
or ebx, edi
mov edi, dword [ebp + 8]
xor edx, ebx
mov ebx, dword [ebp + 8]
shr edi, 0x19
shl ebx, 7
or edi, ebx
mov ebx, dword [ebp + 8]
and ebx, dword [ebp - 4]
xor edx, edi
mov edi, dword [ebp + 8]
not edi
and edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
xor edi, ebx
add edx, edi
add edx, dword [eax + 0x44257c]
mov edi, esi
add edx, dword [ebp + eax - 0x150]
shr edi, 0xd
add edx, dword [ebp - 0x1c]
mov ebx, esi
add dword [ebp - 8], edx
mov dword [ebp - 0x14], edx
mov edx, esi
shl edx, 0x13
or edx, edi
shl ebx, 0xa
mov edi, esi
shr edi, 0x16
or edi, ebx
xor edx, edi
mov edi, esi
shl edi, 0x1e
mov ebx, esi
shr ebx, 2
or edi, ebx
xor edx, edi
mov edi, dword [ebp - 0x10]
xor edi, esi
and edi, dword [ebp - 0xc]
add edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
and ebx, esi
xor edi, ebx
add edi, edx
mov esi, edi
mov edi, dword [ebp - 8]
mov edx, edi
mov ebx, edi
shr ebx, 0xb
shl edx, 0x15
or edx, ebx
mov ebx, edi
shr edi, 6
shl ebx, 0x1a
or ebx, edi
xor edx, ebx
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 8]
shr edi, 0x19
shl ebx, 7
or edi, ebx
xor edx, edi
mov edi, dword [ebp - 8]
mov ebx, dword [ebp + 8]
and ebx, dword [ebp - 8]
not edi
and edi, dword [ebp - 4]
mov dword [ebp - 0x1c], esi
xor edi, ebx
add edx, edi
add edx, dword [eax + 0x442580]
mov edi, esi
add edx, dword [ebp + eax - 0x14c]
shr edi, 0xd
add edx, dword [ebp - 0x18]
mov ebx, esi
add dword [ebp - 0xc], edx
mov dword [ebp - 0x14], edx
shl ebx, 0xa
mov edx, esi
shl edx, 0x13
or edx, edi
mov edi, esi
shr edi, 0x16
or edi, ebx
xor edx, edi
mov edi, esi
shl edi, 0x1e
mov ebx, esi
shr ebx, 2
or edi, ebx
mov ebx, dword [ebp - 0x20]
xor edx, edi
mov edi, dword [ebp - 0x20]
add edx, dword [ebp - 0x14]
xor edi, esi
and edi, dword [ebp - 0x10]
and ebx, esi
xor edi, ebx
add edi, edx
mov esi, edi
mov edi, dword [ebp - 0xc]
mov edx, edi
mov ebx, edi
shr ebx, 0xb
shl edx, 0x15
or edx, ebx
mov ebx, edi
shr edi, 6
shl ebx, 0x1a
or ebx, edi
mov edi, dword [ebp - 0xc]
xor edx, ebx
mov ebx, dword [ebp - 0xc]
shr edi, 0x19
shl ebx, 7
or edi, ebx
mov dword [ebp - 0x18], esi
xor edx, edi
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 8]
and ebx, dword [ebp - 0xc]
not edi
and edi, dword [ebp + 8]
add eax, 0x20
xor edi, ebx
add edx, edi
add edx, dword [eax + 0x442564]
mov edi, esi
add edx, dword [ebp + eax - 0x168]
shr edi, 0xd
add edx, dword [ebp - 4]
mov ebx, esi
add dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
mov edx, esi
shl edx, 0x13
or edx, edi
shl ebx, 0xa
mov edi, esi
shr edi, 0x16
or edi, ebx
xor edx, edi
mov edi, esi
shl edi, 0x1e
mov ebx, esi
shr ebx, 2
or edi, ebx
mov ebx, dword [ebp - 0x1c]
xor edx, edi
mov edi, dword [ebp - 0x1c]
add edx, dword [ebp - 0x14]
xor edi, esi
and edi, dword [ebp - 0x20]
and ebx, esi
xor edi, ebx
add edx, edi
cmp eax, 0x100
mov dword [ebp - 4], edx
jl 0x4216e8
mov eax, dword [ecx]
add eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [ecx + 4]
add eax, esi
mov dword [ecx + 4], eax
mov eax, dword [ecx + 8]
add eax, edx
mov edx, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov eax, dword [ecx + 0xc]
add eax, edx
mov edx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x10]
add eax, edx
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x14]
add eax, edx
mov edx, dword [ebp - 8]
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x18]
add eax, edx
mov edx, dword [ebp + 8]
mov dword [ecx + 0x18], eax
mov eax, dword [ecx + 0x1c]
pop edi
add eax, edx
pop esi
mov dword [ecx + 0x1c], eax
pop ebx
leave
ret