Function at 0x40e2f7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
push ebx
push esi
push edi
push 8
pop ecx
lea esi, [eax + 0xc]
mov dword [ebp - 0x30], esi
push 0x10
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
pop ecx
lea esi, [eax + 0x2c]
lea edi, [ebp - 0x130]
push 0x30
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xf8]
pop esi
mov ecx, dword [eax]
mov edx, dword [eax - 0x34]
mov edi, ecx
ror edi, 0x13
mov ebx, ecx
shr ecx, 0xa
ror ebx, 0x11
xor edi, ebx
xor edi, ecx
mov ecx, edx
ror ecx, 0x12
mov ebx, edx
ror ebx, 7
xor ecx, ebx
shr edx, 3
xor ecx, edx
add edi, ecx
add edi, dword [eax - 0x38]
add eax, 4
add edi, dword [eax - 0x18]
dec esi
mov dword [eax + 4], edi
jne 0x40e328
mov edx, dword [ebp - 0x20]
xor eax, eax
mov esi, dword [ebp - 0x1c]
mov ecx, esi
ror ecx, 0x19
mov edi, esi
ror edi, 0xb
xor ecx, edi
mov edi, esi
ror edi, 6
xor ecx, edi
mov edi, dword [ebp - 0x18]
xor edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
and edi, esi
xor edi, dword [ebp - 0x14]
add ecx, edi
add ecx, dword [eax + 0x430550]
mov edi, dword [ebp - 0x2c]
add ecx, dword [ebp + eax - 0x130]
mov esi, edi
add ecx, dword [ebp - 0x10]
ror esi, 2
or ebx, edi
and ebx, dword [ebp - 0x24]
mov dword [ebp - 4], esi
mov esi, edi
ror esi, 0xd
mov dword [ebp - 8], esi
mov esi, edi
ror esi, 0x16
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x28]
and esi, edi
or ebx, esi
mov esi, dword [ebp - 0xc]
xor esi, dword [ebp - 8]
add edx, ecx
xor esi, dword [ebp - 4]
add ebx, ecx
add esi, ebx
mov ecx, edx
ror ecx, 0x19
mov edi, edx
ror edi, 0xb
xor ecx, edi
mov edi, edx
ror edi, 6
xor ecx, edi
mov edi, dword [ebp - 0x18]
xor edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x2c]
and edi, edx
xor edi, dword [ebp - 0x18]
and ebx, esi
add ecx, edi
add ecx, dword [ebp + eax - 0x12c]
mov edi, esi
add ecx, dword [eax + 0x430554]
mov dword [ebp - 0x10], esi
add ecx, dword [ebp - 0x14]
ror edi, 2
add dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], edi
mov edi, esi
ror edi, 0xd
mov dword [ebp - 8], edi
mov edi, esi
ror edi, 0x16
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x2c]
or edi, esi
and edi, dword [ebp - 0x28]
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
or edi, ebx
xor esi, dword [ebp - 0xc]
add edi, ecx
add esi, edi
mov edi, dword [ebp - 0x24]
mov ecx, edi
mov dword [ebp - 0x14], esi
ror ecx, 0x19
mov ebx, edi
ror ebx, 0xb
xor ecx, ebx
mov ebx, edi
ror ebx, 6
xor ecx, ebx
mov ebx, edx
xor ebx, dword [ebp - 0x1c]
and ebx, edi
xor ebx, dword [ebp - 0x1c]
mov edi, esi
add ecx, ebx
add ecx, dword [ebp + eax - 0x128]
add ecx, dword [eax + 0x430558]
add ecx, dword [ebp - 0x18]
ror edi, 2
mov dword [ebp - 0xc], edi
add dword [ebp - 0x28], ecx
mov edi, esi
ror edi, 0xd
mov dword [ebp - 8], edi
mov edi, esi
ror edi, 0x16
mov dword [ebp - 4], edi
mov edi, esi
or edi, dword [ebp - 0x10]
and esi, dword [ebp - 0x10]
and edi, dword [ebp - 0x2c]
or edi, esi
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
add edi, ecx
xor esi, dword [ebp - 0xc]
add esi, edi
mov edi, dword [ebp - 0x28]
mov ecx, edi
ror ecx, 0x19
mov ebx, edi
ror ebx, 0xb
xor ecx, ebx
mov ebx, edi
ror ebx, 6
xor ecx, ebx
mov ebx, edx
xor ebx, dword [ebp - 0x24]
mov dword [ebp - 0x18], esi
and ebx, edi
xor ebx, edx
add ecx, ebx
add ecx, dword [ebp + eax - 0x124]
mov edi, esi
add ecx, dword [eax + 0x43055c]
add ecx, dword [ebp - 0x1c]
ror edi, 2
mov dword [ebp - 0xc], edi
add dword [ebp - 0x2c], ecx
mov edi, esi
ror edi, 0xd
mov dword [ebp - 8], edi
mov edi, esi
ror edi, 0x16
mov dword [ebp - 4], edi
mov edi, esi
or edi, dword [ebp - 0x14]
and esi, dword [ebp - 0x14]
and edi, dword [ebp - 0x10]
or edi, esi
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
add edi, ecx
xor esi, dword [ebp - 0xc]
add esi, edi
mov edi, dword [ebp - 0x2c]
mov ecx, edi
ror ecx, 0x19
mov ebx, edi
ror ebx, 0xb
xor ecx, ebx
mov ebx, edi
mov dword [ebp - 0x1c], esi
ror ebx, 6
xor ecx, ebx
mov ebx, dword [ebp - 0x24]
xor ebx, dword [ebp - 0x28]
and ebx, edi
xor ebx, dword [ebp - 0x24]
add ecx, ebx
add ecx, dword [ebp + eax - 0x120]
mov ebx, dword [ebp - 0x18]
add ecx, dword [eax + 0x430560]
or ebx, esi
and ebx, dword [ebp - 0x14]
add ecx, edx
add dword [ebp - 0x10], ecx
mov edx, esi
ror edx, 2
mov dword [ebp - 8], edx
mov edx, esi
ror edx, 0xd
mov dword [ebp - 4], edx
mov edx, esi
mov esi, dword [ebp - 0x18]
and esi, dword [ebp - 0x1c]
ror edx, 0x16
xor edx, dword [ebp - 4]
or ebx, esi
xor edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
add ebx, ecx
add edx, ebx
mov ecx, esi
ror ecx, 0x19
mov ebx, esi
ror ebx, 0xb
xor ecx, ebx
mov ebx, esi
ror ebx, 6
xor ecx, ebx
mov ebx, dword [ebp - 0x28]
xor ebx, edi
and ebx, esi
xor ebx, dword [ebp - 0x28]
mov esi, edx
add ecx, ebx
add ecx, dword [ebp + eax - 0x11c]
mov edi, edx
add ecx, dword [eax + 0x430564]
or edi, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x24]
and edi, dword [ebp - 0x18]
ror esi, 2
add dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], esi
mov esi, edx
ror esi, 0xd
mov dword [ebp - 8], esi
mov esi, edx
ror esi, 0x16
mov dword [ebp - 4], esi
mov esi, edx
and esi, dword [ebp - 0x1c]
or edi, esi
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
add edi, ecx
xor esi, dword [ebp - 0xc]
add esi, edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
ror ecx, 0x19
mov ebx, edi
ror ebx, 0xb
xor ecx, ebx
mov ebx, edi
ror ebx, 6
xor ecx, ebx
mov ebx, dword [ebp - 0x2c]
xor ebx, dword [ebp - 0x10]
mov dword [ebp - 0x24], esi
and ebx, edi
xor ebx, dword [ebp - 0x2c]
add ecx, ebx
add ecx, dword [ebp + eax - 0x118]
mov edi, esi
add ecx, dword [eax + 0x430568]
mov ebx, edx
add ecx, dword [ebp - 0x28]
ror edi, 2
add dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], edi
and ebx, esi
mov edi, esi
ror edi, 0xd
mov dword [ebp - 8], edi
mov edi, esi
ror edi, 0x16
mov dword [ebp - 4], edi
mov edi, edx
or edi, esi
and edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
or edi, ebx
xor esi, dword [ebp - 0xc]
add edi, ecx
add esi, edi
mov edi, dword [ebp - 0x18]
mov ecx, edi
mov ebx, edi
ror ecx, 0x19
ror ebx, 0xb
xor ecx, ebx
mov ebx, edi
ror ebx, 6
xor ecx, ebx
mov ebx, dword [ebp - 0x14]
xor ebx, dword [ebp - 0x10]
mov dword [ebp - 0x28], esi
and ebx, edi
xor ebx, dword [ebp - 0x10]
mov edi, esi
add ecx, ebx
add ecx, dword [ebp + eax - 0x114]
mov ebx, dword [ebp - 0x24]
add ecx, dword [eax + 0x43056c]
and ebx, esi
add ecx, dword [ebp - 0x2c]
ror edi, 2
add dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], edi
mov edi, esi
ror edi, 0xd
mov dword [ebp - 8], edi
mov edi, esi
ror edi, 0x16
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x24]
or edi, esi
mov esi, dword [ebp - 4]
xor esi, dword [ebp - 8]
and edi, edx
xor esi, dword [ebp - 0xc]
or edi, ebx
add edi, ecx
add esi, edi
add eax, 0x20
cmp eax, 0x100
mov dword [ebp - 0x2c], esi
jl 0x40e365
mov eax, dword [ebp - 0x30]
pop edi
pop esi
mov dword [ebp - 0x20], edx
xor ecx, ecx
pop ebx
mov edx, dword [ebp + ecx*4 - 0x2c]
add dword [eax], edx
inc ecx
add eax, 4
cmp ecx, 8
jl 0x40e6d1
leave
ret