Function at 0x4246b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
push ebx
push ebp
mov ebp, dword [eax + 0xc]
push esi
mov esi, dword [ecx + 0x204]
xor edx, esi
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x208]
mov dword [esp + 0x24], esi
xor edx, dword [eax + 4]
push edi
mov edi, dword [ecx + 0x20c]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0x210]
xor edi, edx
xor ebp, eax
mov esi, 0xfffffffe
jmp 0x424700
lea eax, [esi - 2]
and eax, 3
mov edx, dword [ecx + eax*4 + 0x204]
mov dword [esp + 0x24], edx
mov eax, ebp
shr eax, 0x15
mov ebx, ebp
shl ebx, 0xb
or eax, ebx
add eax, edi
xor eax, edx
mov edx, eax
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx + ecx + 0x104]
mov ebx, eax
shr ebx, 0x18
mov dh, byte [ebx + ecx + 0x104]
movzx ebx, ah
movzx ebx, byte [ebx + ecx + 0x104]
mov dword [esp + 0x10], eax
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x14]
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl edx, 8
or edx, eax
xor edx, ebx
mov dword [esp + 0x20], edx
mov eax, edi
shr eax, 0xf
mov edx, edi
shl edx, 0x11
or eax, edx
mov edx, dword [esp + 0x24]
xor eax, ebp
add eax, edx
mov edx, eax
shr edx, 0x10
mov ebx, eax
movzx edx, dl
movzx edx, byte [edx + ecx + 0x104]
shr ebx, 0x18
mov dh, byte [ebx + ecx + 0x104]
movzx ebx, ah
movzx ebx, byte [ebx + ecx + 0x104]
mov dword [esp + 0x10], eax
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl edx, 8
or edx, ebx
shl edx, 8
or edx, eax
xor edx, dword [esp + 0x18]
mov dword [esp + 0x14], edi
lea eax, [esi - 1]
and eax, 3
lea eax, [ecx + eax*4 + 0x204]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, edx
shr eax, 0x15
mov edi, edx
shl edi, 0xb
or eax, edi
mov edi, dword [esp + 0x20]
mov ebx, dword [edi]
add eax, ebp
xor eax, ebx
mov dword [esp + 0x10], eax
movzx edi, byte [esp + 0x12]
movzx ebx, byte [edi + ecx + 0x104]
mov edi, eax
shr edi, 0x18
mov bh, byte [edi + ecx + 0x104]
mov dword [esp + 0x1c], edx
movzx edi, ah
shl ebx, 8
movzx edi, byte [edi + ecx + 0x104]
or ebx, edi
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl ebx, 8
or ebx, eax
xor ebx, dword [esp + 0x14]
mov eax, ebp
shr eax, 0xf
mov edi, ebp
shl edi, 0x11
or eax, edi
xor eax, edx
mov edx, dword [esp + 0x20]
add eax, dword [edx]
mov edx, eax
mov edi, eax
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx + ecx + 0x104]
mov dword [esp + 0x10], eax
shr edi, 0x18
mov dh, byte [edi + ecx + 0x104]
movzx edi, ah
movzx edi, byte [edi + ecx + 0x104]
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl edx, 8
or edx, edi
shl edx, 8
or edx, eax
xor edx, dword [esp + 0x18]
mov edi, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
mov eax, esi
and eax, 3
lea eax, [ecx + eax*4 + 0x204]
mov dword [esp + 0x24], eax
mov eax, edi
shr eax, 0x15
mov ebp, edi
shl ebp, 0xb
or eax, ebp
add eax, ebx
mov dword [esp + 0x18], edx
mov edx, ebx
mov ebx, dword [esp + 0x24]
xor eax, dword [ebx]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + ecx + 0x104]
mov ebp, eax
shr ebp, 0x18
mov bh, byte [ecx + ebp + 0x104]
movzx ebp, ah
movzx ebp, byte [ecx + ebp + 0x104]
shl ebx, 8
mov dword [esp + 0x10], eax
or ebx, ebp
mov ebp, dword [esp + 0x14]
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl ebx, 8
or ebx, eax
xor ebx, ebp
mov dword [esp + 0x20], ebx
mov eax, edx
mov ebx, edx
shl ebx, 0x11
shr eax, 0xf
or eax, ebx
mov dword [esp + 0x1c], edi
xor eax, edi
mov edi, dword [esp + 0x24]
add eax, dword [edi]
mov dword [esp + 0x10], eax
movzx edi, byte [esp + 0x12]
movzx ebx, byte [edi + ecx + 0x104]
mov edi, eax
mov ebp, dword [esp + 0x18]
shr edi, 0x18
mov bh, byte [edi + ecx + 0x104]
movzx edi, ah
movzx edi, byte [edi + ecx + 0x104]
shl ebx, 8
or ebx, edi
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
mov edi, dword [esp + 0x20]
shl ebx, 8
or ebx, eax
xor ebp, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
lea eax, [esi + 1]
and eax, 3
lea edx, [ecx + eax*4 + 0x204]
mov dword [esp + 0x24], edx
mov eax, ebp
shr eax, 0x15
mov edx, ebp
shl edx, 0xb
or eax, edx
mov edx, dword [esp + 0x24]
mov ebx, dword [edx]
add eax, edi
xor eax, ebx
mov edx, eax
shr edx, 0x10
mov ebx, eax
shr ebx, 0x18
movzx edx, dl
movzx edx, byte [edx + ecx + 0x104]
mov dh, byte [ebx + ecx + 0x104]
movzx ebx, ah
movzx ebx, byte [ebx + ecx + 0x104]
mov dword [esp + 0x10], eax
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl edx, 8
or edx, ebx
shl edx, 8
or edx, eax
xor edx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov eax, edi
shr eax, 0xf
mov ebx, edi
shl ebx, 0x11
or eax, ebx
mov ebx, dword [esp + 0x24]
xor eax, ebp
add eax, dword [ebx]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [ebx + ecx + 0x104]
mov ebp, eax
shr ebp, 0x18
mov bh, byte [ecx + ebp + 0x104]
movzx ebp, ah
movzx ebp, byte [ecx + ebp + 0x104]
shl ebx, 8
mov dword [esp + 0x10], eax
or ebx, ebp
mov ebp, dword [esp + 0x18]
and eax, 0xff
movzx eax, byte [eax + ecx + 0x104]
shl ebx, 8
or ebx, eax
xor ebp, ebx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], eax
lea eax, [esi + 2]
cmp eax, 0x20
mov edi, edx
jl 0x424700
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
xor esi, edx
mov dword [eax], esi
mov edx, dword [ecx + 0x208]
mov esi, dword [esp + 0x18]
xor edx, ebp
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x20c]
xor edx, edi
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x210]
pop edi
xor edx, esi
pop esi
pop ebp
mov dword [eax + 0xc], edx
pop ebx
add esp, 0x1c
mov dword [esp + 4], eax
jmp fcn.004243a0