Function at 0x10041e90
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push ebx
push ebp
mov ebp, dword [eax + 0x20c]
xor ebp, dword [ecx + 8]
push esi
mov esi, dword [eax + 0x204]
xor edx, esi
mov dword [esp + 0xc], edx
mov edx, dword [eax + 0x208]
xor edx, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
xor ecx, dword [eax + 0x210]
push edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov ebx, 0xfffffffe
lea edx, [ebx - 2]
and edx, 3
mov esi, dword [eax + edx*4 + 0x204]
mov edx, ecx
rol edx, 0xb
add edx, ebp
xor edx, esi
mov dword [esp + 0x1c], esi
mov esi, edx
shr esi, 0x10
and esi, 0xff
movzx edi, byte [esi + eax + 0x104]
mov esi, edx
shr esi, 0x18
movzx esi, byte [esi + eax + 0x104]
shl esi, 8
or edi, esi
mov esi, edx
shr esi, 8
and esi, 0xff
movzx esi, byte [esi + eax + 0x104]
shl edi, 8
or edi, esi
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl edi, 8
or edi, edx
xor edi, dword [esp + 0x10]
mov edx, ebp
ror edx, 0xf
xor edx, ecx
add edx, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
movzx esi, byte [ecx + eax + 0x104]
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx + eax + 0x104]
shl ecx, 8
or esi, ecx
mov ecx, edx
shr ecx, 8
and ecx, 0xff
movzx ecx, byte [ecx + eax + 0x104]
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl esi, 8
or esi, ecx
mov ecx, dword [esp + 0x18]
shl esi, 8
or esi, edx
xor esi, dword [esp + 0x14]
lea edx, [ebx - 1]
and edx, 3
lea ebp, [eax + edx*4 + 0x204]
mov edx, esi
rol edx, 0xb
add edx, edi
xor edx, dword [ebp]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ecx
mov ecx, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
movzx edi, byte [edi + eax + 0x104]
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [eax + ebp + 0x104]
shl ebp, 8
or edi, ebp
mov ebp, edx
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [eax + ebp + 0x104]
shl edi, 8
or edi, ebp
mov dword [esp + 0x18], esi
shl edi, 8
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
or edi, edx
xor edi, dword [esp + 0x10]
mov edx, ecx
ror edx, 0xf
xor edx, esi
mov esi, dword [esp + 0x1c]
add edx, dword [esi]
mov dword [esp + 0x10], ecx
mov esi, edx
mov ebp, edx
shr esi, 0x10
and esi, 0xff
movzx esi, byte [esi + eax + 0x104]
shr ebp, 0x18
movzx ebp, byte [eax + ebp + 0x104]
mov ecx, dword [esp + 0x18]
shl ebp, 8
or esi, ebp
mov ebp, edx
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shr ebp, 8
shl esi, 8
and ebp, 0xff
movzx ebp, byte [eax + ebp + 0x104]
or esi, ebp
shl esi, 8
or esi, edx
xor esi, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov edx, ebx
and edx, 3
lea ecx, [eax + edx*4 + 0x204]
mov dword [esp + 0x1c], ecx
mov edx, esi
rol edx, 0xb
add edx, edi
xor edx, dword [ecx]
mov ebp, edi
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
movzx edi, byte [ecx + eax + 0x104]
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx + eax + 0x104]
shl ecx, 8
or edi, ecx
mov ecx, edx
shr ecx, 8
and ecx, 0xff
movzx ecx, byte [ecx + eax + 0x104]
shl edi, 8
or edi, ecx
mov ecx, dword [esp + 0x1c]
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl edi, 8
or edi, edx
xor edi, dword [esp + 0x10]
mov edx, ebp
ror edx, 0xf
xor edx, esi
add edx, dword [ecx]
mov dword [esp + 0x18], esi
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
movzx esi, byte [ecx + eax + 0x104]
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx + eax + 0x104]
shl ecx, 8
or esi, ecx
mov ecx, edx
shr ecx, 8
shl esi, 8
and ecx, 0xff
movzx ecx, byte [ecx + eax + 0x104]
or esi, ecx
mov ecx, dword [esp + 0x18]
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl esi, 8
or esi, edx
xor esi, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
lea edx, [ebx + 1]
and edx, 3
lea ebp, [eax + edx*4 + 0x204]
mov edx, esi
mov dword [esp + 0x1c], ebp
rol edx, 0xb
add edx, edi
xor edx, dword [ebp]
mov dword [esp + 0x14], ecx
mov ecx, edi
mov edi, edx
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [eax + ebp + 0x104]
shr edi, 0x10
shl ebp, 8
and edi, 0xff
movzx edi, byte [edi + eax + 0x104]
or edi, ebp
mov ebp, edx
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [eax + ebp + 0x104]
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl edi, 8
or edi, ebp
mov dword [esp + 0x18], esi
shl edi, 8
or edi, edx
xor edi, dword [esp + 0x10]
mov edx, ecx
ror edx, 0xf
xor edx, esi
mov esi, dword [esp + 0x1c]
add edx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov esi, edx
shr esi, 0x10
and esi, 0xff
movzx esi, byte [esi + eax + 0x104]
mov ebp, edx
shr ebp, 0x18
movzx ebp, byte [eax + ebp + 0x104]
shl ebp, 8
or esi, ebp
mov ebp, edx
shr ebp, 8
and ebp, 0xff
movzx ebp, byte [eax + ebp + 0x104]
shl esi, 8
or esi, ebp
and edx, 0xff
movzx edx, byte [edx + eax + 0x104]
shl esi, 8
or esi, edx
xor esi, dword [esp + 0x14]
add ebx, 4
mov dword [esp + 0x14], ecx
lea edx, [ebx + 2]
cmp edx, 0x20
mov ecx, esi
mov ebp, edi
mov dword [esp + 0x18], ecx
jl 0x10041ed1
mov edx, dword [eax + 0x204]
mov ecx, dword [esp + 0x28]
xor edx, edi
mov dword [ecx], edx
mov edx, dword [eax + 0x208]
xor edx, esi
mov dword [ecx + 4], edx
mov edx, dword [eax + 0x20c]
xor edx, dword [esp + 0x10]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x210]
xor edx, dword [esp + 0x14]
mov dword [ecx + 0xc], edx
call fcn.10042710
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 4