Function at 0x469aa1
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x150
push esi
xor ecx, ecx
inc eax
push edi
movzx edx, byte [eax - 1]
movzx esi, byte [eax]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
add edx, esi
mov dword [ebp + ecx*4 - 0x150], edx
inc ecx
add eax, 4
cmp ecx, 0x10
jb 0x469ab2
push 0x50
pop edx
cmp ecx, edx
jae 0x469b06
lea eax, [ebp + ecx*4 - 0x188]
sub edx, ecx
mov ecx, dword [eax + 0x2c]
xor ecx, dword [eax + 0x18]
xor ecx, dword [eax - 8]
xor ecx, dword [eax]
add eax, 4
dec edx
rol ecx, 1
mov dword [eax + 0x34], ecx
jne 0x469af0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
mov esi, dword [eax + 0x5c]
mov edi, dword [eax + 0x54]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 0x58]
mov dword [ebp + 8], ecx
mov ecx, dword [eax + 0x60]
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], ecx
xor edx, edx
push ebx
mov ecx, dword [ebp - 4]
mov ebx, edi
not ebx
and ebx, esi
mov esi, dword [ebp + 8]
and esi, edi
rol ecx, 5
xor ebx, esi
mov esi, dword [ebp - 0x10]
add ecx, ebx
add ecx, dword [ebp + edx*4 - 0x150]
add ecx, dword [eax + 0x64]
add ecx, dword [ebp - 8]
ror edi, 2
mov dword [ebp - 8], esi
mov esi, dword [ebp + 8]
inc edx
mov dword [ebp + 8], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], ecx
cmp edx, 0x14
jb 0x469b27
mov dword [ebp - 0xc], edi
cmp edx, 0x28
jae 0x469baa
mov edi, esi
xor edi, dword [ebp + 8]
rol ecx, 5
xor edi, dword [ebp - 0xc]
add ecx, edi
add ecx, dword [ebp + edx*4 - 0x150]
mov edi, dword [ebp - 0xc]
add ecx, dword [eax + 0x68]
add ecx, dword [ebp - 8]
ror edi, 2
mov dword [ebp - 8], esi
mov esi, dword [ebp + 8]
mov dword [ebp + 8], edi
mov edi, dword [ebp - 4]
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], ecx
cmp edx, 0x28
jb 0x469b6f
mov dword [ebp - 0x10], esi
cmp edx, 0x3c
jae 0x469bf0
mov ebx, dword [ebp + 8]
xor ebx, edi
and ebx, esi
mov esi, dword [ebp + 8]
and esi, edi
rol ecx, 5
xor ebx, esi
mov esi, dword [ebp - 0x10]
add ecx, ebx
add ecx, dword [ebp + edx*4 - 0x150]
add ecx, dword [eax + 0x6c]
add ecx, dword [ebp - 8]
ror edi, 2
mov dword [ebp - 8], esi
mov esi, dword [ebp + 8]
inc edx
mov dword [ebp + 8], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], ecx
cmp edx, 0x3c
jb 0x469baf
mov dword [ebp - 0xc], edi
pop ebx
jmp 0x469c26
mov edi, esi
xor edi, dword [ebp + 8]
rol ecx, 5
xor edi, dword [ebp - 0xc]
add ecx, edi
add ecx, dword [ebp + edx*4 - 0x150]
mov edi, dword [ebp - 0xc]
add ecx, dword [eax + 0x70]
add ecx, dword [ebp - 8]
ror edi, 2
mov dword [ebp - 8], esi
mov esi, dword [ebp + 8]
mov dword [ebp + 8], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], ecx
inc edx
cmp edx, 0x50
jb 0x469bf3
mov edx, dword [eax + 0x50]
add edx, ecx
mov ecx, dword [eax + 0x54]
add ecx, edi
mov dword [eax + 0x54], ecx
mov ecx, dword [eax + 0x58]
mov dword [eax + 0x50], edx
mov edx, dword [ebp + 8]
add ecx, edx
mov edx, dword [ebp - 8]
mov dword [eax + 0x58], ecx
mov ecx, dword [eax + 0x5c]
add ecx, esi
mov dword [eax + 0x5c], ecx
mov ecx, dword [eax + 0x60]
add ecx, edx
pop edi
mov dword [eax + 0x60], ecx
pop esi
leave
ret