Function at 0x418550
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [eax]
mov edx, dword [esi + 4]
xor ecx, dword [esi]
push edi
lea esi, [eax + 8]
mov edi, 2
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov dword [esp + 0x10], edx
mov ebp, ecx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov edx, ecx
shr edx, 8
movzx ebp, dl
xor ebx, dword [eax + ebp*4 + 0x890]
mov edx, dword [esp + 0x10]
movzx ebp, cl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], ecx
xor ebx, dword [esi - 4]
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, edx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov ecx, edx
shr ecx, 8
movzx ebp, cl
xor ebx, dword [eax + ebp*4 + 0x890]
mov ecx, dword [esp + 0x10]
movzx ebp, dl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], edx
xor ebx, dword [esi]
xor ecx, ebx
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, ecx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov edx, ecx
shr edx, 8
movzx ebp, dl
xor ebx, dword [eax + ebp*4 + 0x890]
mov edx, dword [esp + 0x10]
movzx ebp, cl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], ecx
xor ebx, dword [esi + 4]
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, edx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov ecx, edx
shr ecx, 8
movzx ebp, cl
xor ebx, dword [eax + ebp*4 + 0x890]
mov ecx, dword [esp + 0x10]
movzx ebp, dl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], edx
xor ebx, dword [esi + 8]
xor ecx, ebx
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, ecx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov edx, ecx
shr edx, 8
movzx ebp, dl
xor ebx, dword [eax + ebp*4 + 0x890]
movzx ebp, cl
add ebx, dword [eax + ebp*4 + 0xc90]
mov edx, dword [esp + 0x10]
xor ebx, dword [esi + 0xc]
mov dword [esp + 0x10], ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, edx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov ecx, edx
shr ecx, 8
movzx ebp, cl
xor ebx, dword [eax + ebp*4 + 0x890]
mov ecx, dword [esp + 0x10]
movzx ebp, dl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], edx
xor ebx, dword [esi + 0x10]
add esi, 0x20
xor ecx, ebx
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, ecx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov edx, ecx
shr edx, 8
movzx ebp, dl
xor ebx, dword [eax + ebp*4 + 0x890]
mov edx, dword [esp + 0x10]
movzx ebp, cl
add ebx, dword [eax + ebp*4 + 0xc90]
mov dword [esp + 0x10], ecx
xor ebx, dword [esi - 0xc]
xor edx, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [eax + ebx*4 + 0x490]
mov ebp, edx
shr ebp, 0x18
add ebx, dword [eax + ebp*4 + 0x90]
mov ecx, edx
shr ecx, 8
movzx ebp, cl
xor ebx, dword [eax + ebp*4 + 0x890]
mov ecx, dword [esp + 0x10]
movzx ebp, dl
add ebx, dword [eax + ebp*4 + 0xc90]
xor ebx, dword [esi - 8]
xor ecx, ebx
sub edi, 1
jne 0x418566
mov esi, dword [eax + 0x44]
mov eax, dword [esp + 0x18]
xor esi, edx
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], ecx
pop ebx
pop ecx
ret