Function at 0x40471c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
push 0x2b
xor eax, eax
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
mov esi, eax
pop ebx
mov dword [ebp - 0x34], 0x58
mov dword [ebp - 0x30], 0xffffff7d
add ebx, dword [ebp + esi*4 - 0x34]
inc esi
cmp esi, 2
jl 0x404740
push 0x3c
pop edx
mov dword [ebp - 0x34], 0x3e
mov ecx, eax
mov dword [ebp - 0x30], 0xffffff86
add edx, dword [ebp + ecx*4 - 0x34]
inc ecx
cmp ecx, 2
jl 0x40475d
push 0xa
pop edi
mov dword [ebp - 0x10], edx
mov ecx, eax
mov edx, eax
mov dword [ebp - 0x4c], 8
mov dword [ebp - 0x48], 0x33
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], 0xffffffba
sub edx, dword [ebp + ecx*4 - 0x4c]
inc ecx
cmp ecx, 5
jl 0x404790
mov dword [ebp - 0xc], edx
mov ecx, eax
mov edx, dword [0x44a020]
push 7
sub edx, 0x60855768
mov dword [ebp - 0x38], 0x49
pop esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], 0xffffffb3
sub esi, dword [ebp + ecx*4 - 0x38]
inc ecx
cmp ecx, 3
jl 0x4047bf
push 0x19
pop edi
push 0x4c
mov dword [ebp - 0x1c], esi
mov ecx, eax
pop esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], 0xffffff9c
add edi, dword [ebp + ecx*4 - 0x34]
inc ecx
cmp ecx, 2
jl 0x4047de
mov dword [ebp - 0x48], 0x5d
xorps xmm2, xmm2
mov dword [ebp - 0x44], 0x56
mov dword [ebp - 0x40], 0x3f
mov dword [ebp - 0x3c], 0xfffffee0
movups xmm1, xmmword [ebp - 0x48]
push 0x10
mov dword [ebp - 0x18], edi
movaps xmm0, xmm1
mov dword [ebp - 0x4c], 0x39
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x48], 0x62
movups xmm0, xmm1
mov dword [ebp - 0x44], 0x18
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x40], 0x5d
movd ecx, xmm1
pop edi
mov dword [ebp - 0x3c], 0xfffffefe
add ecx, 0x2f
and edx, 0x65f18ae1
mov dword [ebp - 0x14], ecx
mov ecx, eax
sub edi, dword [ebp + ecx*4 - 0x4c]
inc ecx
cmp ecx, 5
jl 0x40485e
mov dword [ebp - 0x28], edi
mov ecx, eax
mov dword [ebp - 0x38], 0x5b
mov dword [ebp - 0x34], 0x42
mov dword [ebp - 0x30], 0xffffff19
add esi, dword [ebp + ecx*4 - 0x38]
inc ecx
cmp ecx, 3
jl 0x404882
mov dword [ebp - 0x48], 0x28
movaps xmm1, xmm2
mov dword [ebp - 0x44], 0x50
mov dword [ebp - 0x40], 0x48
mov dword [ebp - 0x3c], 0xffffff39
movups xmm0, xmmword [ebp - 0x48]
mov dword [ebp - 0x44], 0x34
mov dword [ebp - 0x40], 0x1c
paddd xmm1, xmm0
mov dword [ebp - 0x3c], 0xffffff84
movaps xmm0, xmm1
mov dword [ebp - 0x48], 0x3e
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x24], esi
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x48]
push 0x2a
movd ecx, xmm1
psubd xmm2, xmm0
mov dword [ebp - 0x44], 0x61
movaps xmm0, xmm2
mov dword [ebp - 0x40], 0x26
psrldq xmm0, 8
add ecx, 9
paddd xmm2, xmm0
mov dword [ebp - 0x20], ecx
movups xmm0, xmm2
mov dword [ebp - 0x3c], 0xffffffa0
psrldq xmm0, 4
paddd xmm2, xmm0
movd ecx, xmm2
pop edi
add ecx, 0x15
mov dword [ebp - 0x30], ecx
mov ecx, eax
sub edi, dword [ebp + ecx*4 - 0x44]
and edx, 0x2446cc2d
inc ecx
cmp ecx, 3
jl 0x404938
push 0x21
mov dword [ebp - 0x2c], edi
pop edi
mov dword [ebp - 0x44], 0x46
mov dword [ebp - 0x40], 0x57
mov dword [ebp - 0x3c], 0xffffff81
sub edi, dword [ebp + eax*4 - 0x44]
xor edx, 0x2e09fe9b
inc eax
cmp eax, 3
jl 0x404963
mov eax, dword [ebp - 4]
and edx, 0xc08006c
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov dword [0x44a020], edx
mov edx, dword [ebp - 4]
mov al, byte [ecx + eax]
mov ecx, dword [ebp - 0x10]
xor al, byte [ecx + esi]
mov ecx, dword [ebp + 8]
mov byte [ebx + ecx], al
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x14]
mov al, byte [ebx + eax]
mov ebx, dword [ebp - 0x18]
xor al, byte [ebx + esi]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 8]
mov byte [esi + ecx], al
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov al, byte [eax + edx]
xor al, byte [esi + ebx]
mov esi, dword [ebp - 0x28]
mov byte [esi + ecx], al
mov al, byte [edi + edx]
mov edx, dword [ebp - 0x2c]
pop edi
pop esi
xor al, byte [edx + ebx]
mov edx, dword [ebp - 0x30]
pop ebx
mov byte [edx + ecx], al
leave
ret