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

Disassembly:
sub esp, 0x148
mov eax, dword [esp + 0x14c]
push ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x154]
shr eax, 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x158]
push ebp
push esi
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0xc]
mov ebp, dword [eax + 8]
mov ebx, dword [eax + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0xc], esi
mov esi, dword [eax + 0x1c]
push edi
mov edi, dword [eax + 4]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x160]
mov dword [esp + 0x18], edx
add dword [eax + 0x20], esi
cmp dword [eax + 0x20], esi
mov edx, dword [eax + 0x10]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
jae 0x10006237
inc dword [eax + 0x24]
mov esi, dword [esp + 0x24]
test esi, esi
jbe 0x10006487
lea eax, [esi + 0xf]
mov esi, dword [esp + 0x10]
shr eax, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], eax
lea ebx, [esp + 0x58]
mov dword [esp + 0x1c], 0x10
mov eax, dword [esp + 0x30]
add ebx, 4
mov eax, dword [eax]
mov esi, eax
mov ebp, eax
and esi, 0xff0000
shr ebp, 0x10
or esi, ebp
mov ebp, eax
shl ebp, 0x10
and eax, 0xff00
or ebp, eax
mov eax, dword [esp + 0x1c]
shr esi, 8
shl ebp, 8
or esi, ebp
mov ebp, dword [esp + 0x30]
mov dword [ebx - 4], esi
add ebp, 4
dec eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x1c], eax
jne 0x10006285
lea esi, [esp + 0x90]
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x34], esi
mov eax, dword [esi - 0x34]
mov esi, dword [esi]
mov dword [esp + 0x1c], esi
mov ebx, eax
mov esi, eax
mov ebp, eax
shr ebx, 0x12
shl esi, 0xe
or ebx, esi
mov esi, eax
shl esi, 0x19
shr ebp, 7
or esi, ebp
xor ebx, esi
shr eax, 3
xor ebx, eax
mov eax, dword [esp + 0x1c]
mov esi, eax
mov ebp, eax
shr esi, 0x11
shl ebp, 0xf
or esi, ebp
mov ebp, eax
shr ebp, 0x13
shl eax, 0xd
or ebp, eax
mov eax, dword [esp + 0x1c]
xor esi, ebp
shr eax, 0xa
xor esi, eax
add ebx, esi
mov esi, dword [esp + 0x34]
mov eax, dword [esi - 0x38]
mov ebp, dword [esi - 0x14]
add ebx, eax
mov eax, dword [esp + 0x20]
add ebx, ebp
mov dword [esi + 8], ebx
add esi, 4
dec eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], eax
jne 0x100062dd
xor esi, esi
mov dword [esp + 0x20], esi
mov eax, edx
mov ebx, edx
shl eax, 0x15
shr ebx, 0xb
or eax, ebx
mov ebx, edx
mov ebp, edx
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, edx
xor eax, ebx
mov ebx, edx
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x10]
xor eax, ebx
mov ebx, edx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x2c]
and ebp, edx
xor ebx, ebp
mov ebp, dword [esi + 0x10011798]
add eax, ebx
mov ebx, dword [esp + esi + 0x58]
add eax, ebp
mov ebp, dword [esp + 0x14]
add eax, ebx
mov esi, ecx
mov ebx, ecx
add eax, ebp
shl esi, 0x13
shr ebx, 0xd
or esi, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 0x16
shl ebp, 0xa
or ebx, ebp
mov ebp, ecx
xor esi, ebx
mov ebx, ecx
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x28]
xor esi, ebx
mov ebx, edi
xor ebx, ecx
and ebx, ebp
mov ebp, edi
and ebp, ecx
xor ebx, ebp
mov ebp, dword [esp + 0x28]
add esi, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov ebx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], ebp
mov ebp, edi
mov edi, ecx
lea ecx, [esi + eax]
mov esi, dword [esp + 0x20]
add esi, 4
add edx, eax
cmp esi, 0x100
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], esi
jl 0x10006355
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x38]
add edi, esi
mov esi, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x54]
add esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x40]
add edx, eax
mov eax, dword [esp + 0x48]
add ebx, esi
mov esi, dword [esp + 0x10]
add esi, eax
mov eax, dword [esp + 0x50]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], eax
jne 0x10006251
mov eax, dword [esp + 0x164]
jmp 0x1000648b
mov esi, dword [esp + 0x10]
mov dword [eax + 4], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x14]
mov dword [eax + 0x18], esi
pop edi
mov dword [eax + 8], ebp
pop esi
mov dword [eax + 0x14], ebx
pop ebp
mov dword [eax + 0xc], ecx
mov dword [eax + 0x1c], edx
pop ebx
add esp, 0x148
ret