Function at 0x402490
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 8], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
pushal
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov edi, 0x405968
push 4
xor esi, esi
add eax, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add eax, dword [esi]
mov esi, ecx
xor esi, edx
and esi, ebx
xor esi, edx
add eax, esi
rol eax, 7
add eax, ebx
pop esi
add esi, 4
add edx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add edx, dword [esi]
mov esi, ebx
xor esi, ecx
and esi, eax
xor esi, ecx
add edx, esi
rol edx, 0xc
add edx, eax
pop esi
add esi, 4
add ecx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ecx, dword [esi]
mov esi, eax
xor esi, ebx
and esi, edx
xor esi, ebx
add ecx, esi
rol ecx, 0x11
add ecx, edx
pop esi
add esi, 4
add ebx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ebx, dword [esi]
mov esi, edx
xor esi, eax
and esi, ecx
xor esi, eax
add ebx, esi
rol ebx, 0x16
add ebx, ecx
pop esi
add esi, 4
dec dword [esp]
jne 0x4024c9
push 4
mov esi, 4
add eax, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add eax, dword [esi]
mov esi, ecx
xor esi, ebx
and esi, edx
xor esi, ecx
add eax, esi
rol eax, 5
pop esi
add eax, ebx
add esi, 0x14
and esi, 0x3f
add edx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add edx, dword [esi]
mov esi, ebx
xor esi, eax
and esi, ecx
xor esi, ebx
add edx, esi
rol edx, 9
pop esi
add edx, eax
add esi, 0x14
and esi, 0x3f
add ecx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ecx, dword [esi]
mov esi, eax
xor esi, edx
and esi, ebx
xor esi, eax
add ecx, esi
rol ecx, 0xe
pop esi
add ecx, edx
add esi, 0x14
and esi, 0x3f
add ebx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ebx, dword [esi]
mov esi, edx
xor esi, ecx
and esi, eax
xor esi, edx
add ebx, esi
rol ebx, 0x14
pop esi
add ebx, ecx
add esi, 0x14
and esi, 0x3f
dec dword [esp]
jne 0x40254d
push 4
mov esi, 0x14
add eax, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add eax, dword [esi]
mov esi, edx
xor esi, ecx
xor esi, ebx
add eax, esi
rol eax, 4
add eax, ebx
pop esi
add esi, 0xc
and esi, 0x3f
add edx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add edx, dword [esi]
mov esi, ecx
xor esi, ebx
xor esi, eax
add edx, esi
rol edx, 0xb
add edx, eax
pop esi
add esi, 0xc
and esi, 0x3f
add ecx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ecx, dword [esi]
mov esi, ebx
xor esi, eax
xor esi, edx
add ecx, esi
rol ecx, 0x10
add ecx, edx
pop esi
add esi, 0xc
and esi, 0x3f
add ebx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ebx, dword [esi]
mov esi, eax
xor esi, edx
xor esi, ecx
add ebx, esi
rol ebx, 0x17
add ebx, ecx
pop esi
add esi, 0xc
and esi, 0x3f
dec dword [esp]
jne 0x4025e1
push 4
xor esi, esi
add eax, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add eax, dword [esi]
mov esi, edx
not esi
or esi, ebx
xor esi, ecx
add eax, esi
rol eax, 6
add eax, ebx
pop esi
add esi, 0x1c
and esi, 0x3f
add edx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add edx, dword [esi]
mov esi, ecx
not esi
or esi, eax
xor esi, ebx
add edx, esi
rol edx, 0xa
add edx, eax
pop esi
add esi, 0x1c
and esi, 0x3f
add ecx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ecx, dword [esi]
mov esi, ebx
not esi
or esi, edx
xor esi, eax
add ecx, esi
rol ecx, 0xf
add ecx, edx
pop esi
add esi, 0x1c
and esi, 0x3f
add ebx, dword [edi]
add edi, 4
push esi
add esi, dword [ebp + 0xc]
add ebx, dword [esi]
mov esi, eax
not esi
or esi, ecx
xor esi, edx
add ebx, esi
rol ebx, 0x15
add ebx, ecx
pop esi
add esi, 0x1c
and esi, 0x3f
dec dword [esp]
jne 0x40266a
add esp, 0x10
mov dword [ebp - 4], eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
popal
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov edi, dword [eax]
mov esi, dword [eax + 4]
add edi, ecx
mov ecx, dword [ebp - 0xc]
add esi, edx
mov edx, dword [eax + 8]
add edx, ecx
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x10]
mov dword [eax], edi
mov dword [eax + 4], esi
add ecx, edx
pop edi
pop esi
mov dword [eax + 0xc], ecx
pop ebx
mov esp, ebp
pop ebp
ret