Function at 0x4aecc0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push esi
mov esi, dword [esp + 0x18]
push edi
push esi
push dword [esp + 0x1c]
movzx eax, byte [esi + 0xf]
mov cl, byte [esi]
mov byte [esi], al
movzx eax, byte [esi + 0xe]
mov byte [esi + 0xf], cl
mov cl, byte [esi + 1]
mov byte [esi + 1], al
movzx eax, byte [esi + 0xd]
mov byte [esi + 0xe], cl
mov cl, byte [esi + 2]
mov byte [esi + 2], al
movzx eax, byte [esi + 0xc]
mov byte [esi + 0xd], cl
mov cl, byte [esi + 3]
mov byte [esi + 3], al
movzx eax, byte [esi + 0xb]
mov byte [esi + 0xc], cl
mov cl, byte [esi + 4]
mov byte [esi + 4], al
movzx eax, byte [esi + 0xa]
mov byte [esi + 0xb], cl
mov cl, byte [esi + 5]
mov byte [esi + 5], al
movzx eax, byte [esi + 9]
mov byte [esi + 0xa], cl
mov cl, byte [esi + 6]
mov byte [esi + 6], al
movzx eax, byte [esi + 8]
mov byte [esi + 9], cl
mov cl, byte [esi + 7]
mov byte [esi + 7], al
push esi
mov byte [esi + 8], cl
call fcn.004996d0
movzx eax, byte [esi + 0xf]
add esp, 0xc
mov cl, byte [esi]
xor edi, edi
mov byte [esi], al
movzx eax, byte [esi + 0xe]
mov byte [esi + 0xf], cl
mov cl, byte [esi + 1]
mov edx, dword [esp + 0x24]
mov byte [esi + 1], al
movzx eax, byte [esi + 0xd]
mov byte [esi + 0xe], cl
mov cl, byte [esi + 2]
mov byte [esi + 2], al
movzx eax, byte [esi + 0xc]
mov byte [esi + 0xd], cl
mov cl, byte [esi + 3]
mov byte [esi + 3], al
movzx eax, byte [esi + 0xb]
mov byte [esi + 0xc], cl
mov cl, byte [esi + 4]
mov byte [esi + 4], al
movzx eax, byte [esi + 0xa]
mov byte [esi + 0xb], cl
mov cl, byte [esi + 5]
mov byte [esi + 5], al
movzx eax, byte [esi + 9]
mov byte [esi + 0xa], cl
mov cl, byte [esi + 6]
mov byte [esi + 6], al
movzx eax, byte [esi + 8]
mov byte [esi + 9], cl
mov cl, byte [esi + 7]
mov byte [esi + 7], al
mov byte [esi + 8], cl
test edx, edx
jle 0x4aee94
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x28]
cmp edx, 0x20
jb 0x4aee6d
lea eax, [ebp - 1]
lea ecx, [ebx - 1]
add eax, edx
add ecx, edx
cmp ebx, eax
ja 0x4aedda
cmp ecx, ebp
jae 0x4aee6d
lea eax, [esi - 1]
add eax, edx
cmp ebx, eax
ja 0x4aedeb
cmp ecx, esi
jae 0x4aee6d
mov eax, edx
and eax, 0x8000001f
jns 0x4aedf9
dec eax
or eax, 0xffffffe0
inc eax
mov ecx, edx
mov edx, esi
sub edx, ebp
sub ecx, eax
mov dword [esp + 0x20], edx
mov eax, ebp
mov edx, ebx
mov dword [esp + 0x18], ecx
sub edx, ebp
lea ecx, [ebx + 0x10]
mov dword [esp + 0x10], edx
mov edx, esi
mov esi, dword [esp + 0x10]
sub edx, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
nop
movups xmm0, xmmword [eax]
add edi, 0x20
lea eax, [eax + 0x20]
lea ecx, [ecx + 0x20]
movups xmm1, xmmword [ebx + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [esi + eax - 0x20], xmm1
movups xmm1, xmmword [ecx + ebp - 0x20]
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [ecx - 0x20], xmm1
cmp edi, dword [esp + 0x18]
jl 0x4aee30
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
cmp edi, edx
jge 0x4aee92
sub esi, ebp
lea eax, [edi + ebp]
sub ebx, ebp
sub edx, edi
nop word [eax + eax]
mov cl, byte [eax + esi]
lea eax, [eax + 1]
xor cl, byte [eax - 1]
mov byte [eax + ebx - 1], cl
sub edx, 1
jne 0x4aee80
pop ebp
pop ebx
pop edi
pop esi
add esp, 0xc
ret 0x14