Function at 0x42c7f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x20
mov ebx, dword [ecx + 0x14]
mov eax, dword [esp + 0x34]
mov esi, dword [ebx + 4]
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 4], esi
mov esi, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [esp + 8], esi
mov esi, dword [ebx + 0xc]
mov dword [esp], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xc], esi
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x10], esi
mov esi, dword [ebx + 0x14]
mov dword [esp + 0x14], esi
mov esi, dword [ebx + 0x18]
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov ebx, 3
mov esi, dword [esp]
lea ecx, [esi + edx]
mov esi, ecx
movzx ebp, cl
shr esi, 0x18
mov esi, dword [eax + esi*4 + 0xc00]
or esi, dword [eax + ebp*4]
movzx ebp, ch
shr ecx, 0x10
movzx ecx, cl
or esi, dword [eax + ebp*4 + 0x400]
or esi, dword [eax + ecx*4 + 0x800]
xor edi, esi
mov esi, dword [esp + 4]
lea ecx, [edi + esi]
mov ebp, ecx
movzx esi, cl
shr ebp, 0x18
mov ebp, dword [eax + ebp*4 + 0xc00]
or ebp, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebp, dword [eax + esi*4 + 0x400]
mov esi, dword [esp + 8]
or ebp, dword [eax + ecx*4 + 0x800]
xor edx, ebp
lea ecx, [edx + esi]
mov esi, ecx
movzx ebp, cl
shr esi, 0x18
mov esi, dword [eax + esi*4 + 0xc00]
or esi, dword [eax + ebp*4]
movzx ebp, ch
shr ecx, 0x10
movzx ecx, cl
or esi, dword [eax + ebp*4 + 0x400]
or esi, dword [eax + ecx*4 + 0x800]
xor edi, esi
mov esi, dword [esp + 0xc]
lea ecx, [edi + esi]
mov ebp, ecx
movzx esi, cl
shr ebp, 0x18
mov ebp, dword [eax + ebp*4 + 0xc00]
or ebp, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebp, dword [eax + esi*4 + 0x400]
mov esi, dword [esp + 0x10]
or ebp, dword [eax + ecx*4 + 0x800]
xor edx, ebp
lea ecx, [edx + esi]
mov esi, ecx
movzx ebp, cl
shr esi, 0x18
mov esi, dword [eax + esi*4 + 0xc00]
or esi, dword [eax + ebp*4]
movzx ebp, ch
shr ecx, 0x10
movzx ecx, cl
or esi, dword [eax + ebp*4 + 0x400]
or esi, dword [eax + ecx*4 + 0x800]
xor esi, edi
mov edi, dword [esp + 0x14]
lea ecx, [esi + edi]
mov ebp, ecx
movzx edi, cl
shr ebp, 0x18
mov ebp, dword [eax + ebp*4 + 0xc00]
or ebp, dword [eax + edi*4]
movzx edi, ch
or ebp, dword [eax + edi*4 + 0x400]
shr ecx, 0x10
movzx ecx, cl
or ebp, dword [eax + ecx*4 + 0x800]
xor ebp, edx
mov edx, dword [esp + 0x18]
lea ecx, [ebp + edx]
mov edi, ecx
movzx edx, cl
shr edi, 0x18
mov edi, dword [eax + edi*4 + 0xc00]
or edi, dword [eax + edx*4]
movzx edx, ch
shr ecx, 0x10
movzx ecx, cl
or edi, dword [eax + edx*4 + 0x400]
mov edx, dword [esp + 0x1c]
or edi, dword [eax + ecx*4 + 0x800]
xor edi, esi
lea ecx, [edi + edx]
mov esi, ecx
movzx edx, cl
shr esi, 0x18
mov esi, dword [eax + esi*4 + 0xc00]
or esi, dword [eax + edx*4]
movzx edx, ch
shr ecx, 0x10
movzx ecx, cl
or esi, dword [eax + edx*4 + 0x400]
or esi, dword [eax + ecx*4 + 0x800]
mov edx, esi
xor edx, ebp
sub ebx, 1
jne 0x42c841
mov ebx, dword [esp + 0x1c]
add ebx, edx
mov ecx, ebx
movzx esi, bl
shr ecx, 0x18
mov ecx, dword [eax + ecx*4 + 0xc00]
or ecx, dword [eax + esi*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
or ecx, dword [eax + esi*4 + 0x400]
or ecx, dword [eax + ebx*4 + 0x800]
xor edi, ecx
mov ecx, dword [esp + 0x18]
add ecx, edi
mov ebx, ecx
movzx esi, cl
shr ebx, 0x18
mov ebx, dword [eax + ebx*4 + 0xc00]
or ebx, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebx, dword [eax + esi*4 + 0x400]
or ebx, dword [eax + ecx*4 + 0x800]
xor edx, ebx
mov ebx, dword [esp + 0x14]
add ebx, edx
mov ecx, ebx
movzx esi, bl
shr ecx, 0x18
mov ecx, dword [eax + ecx*4 + 0xc00]
or ecx, dword [eax + esi*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
or ecx, dword [eax + esi*4 + 0x400]
or ecx, dword [eax + ebx*4 + 0x800]
xor edi, ecx
mov ecx, dword [esp + 0x10]
add ecx, edi
mov ebx, ecx
movzx esi, cl
shr ebx, 0x18
mov ebx, dword [eax + ebx*4 + 0xc00]
or ebx, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebx, dword [eax + esi*4 + 0x400]
or ebx, dword [eax + ecx*4 + 0x800]
xor edx, ebx
mov ebx, dword [esp + 0xc]
add ebx, edx
mov ecx, ebx
movzx esi, bl
shr ecx, 0x18
mov ecx, dword [eax + ecx*4 + 0xc00]
or ecx, dword [eax + esi*4]
movzx esi, bh
or ecx, dword [eax + esi*4 + 0x400]
shr ebx, 0x10
movzx ebx, bl
or ecx, dword [eax + ebx*4 + 0x800]
xor edi, ecx
mov ecx, dword [esp + 8]
add ecx, edi
mov ebx, ecx
movzx esi, cl
shr ebx, 0x18
mov ebx, dword [eax + ebx*4 + 0xc00]
or ebx, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebx, dword [eax + esi*4 + 0x400]
or ebx, dword [eax + ecx*4 + 0x800]
xor edx, ebx
mov ebx, dword [esp + 4]
add ebx, edx
mov ecx, ebx
movzx esi, bl
shr ecx, 0x18
mov ecx, dword [eax + ecx*4 + 0xc00]
or ecx, dword [eax + esi*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
or ecx, dword [eax + esi*4 + 0x400]
or ecx, dword [eax + ebx*4 + 0x800]
xor edi, ecx
mov ecx, dword [esp]
add ecx, edi
mov ebx, ecx
movzx esi, cl
shr ebx, 0x18
mov ebx, dword [eax + ebx*4 + 0xc00]
or ebx, dword [eax + esi*4]
movzx esi, ch
shr ecx, 0x10
movzx ecx, cl
or ebx, dword [eax + esi*4 + 0x400]
or ebx, dword [eax + ecx*4 + 0x800]
mov eax, dword [esp + 0x38]
xor edx, ebx
mov dword [eax], edi
mov dword [eax + 4], edx
add esp, 0x20
pop ebx
pop esi
pop edi
pop ebp
ret 8