Function at 0x40c4ff
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
push edi
mov esi, str.VGWA_
lea edi, [esp + 0x10]
xor ebx, ebx
push 0x36
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
cmp byte [0x44029d], bl
je 0x40c53a
mov ecx, ebx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xa
jl 0x40c527
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str.W_DXU_
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x36
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c564
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str.YFSS__
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x36
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c5a1
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str._ESEY
lea edi, [esp + 0x28]
add esp, 0x18
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [0x4400c9], bl
je 0x40c5f8
push 0x36
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xa
jl 0x40c5e5
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str.UAYZ
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x36
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 9
jl 0x40c620
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str.PGWPWW
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x36
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c65d
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, 0x4400d4
lea edi, [esp + 0x28]
add esp, 0x18
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [0x4400df], bl
je 0x40c6b3
push 0x36
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xc
jl 0x40c6a0
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, 0x43fe70
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x36
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xf
jl 0x40c6de
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
mov esi, str.VGY_KH
lea edi, [esp + 0x28]
add esp, 0x18
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [0x4400b3], bl
je 0x40c732
push 0x36
pop ecx
xor edx, edx
mov eax, ebx
div ecx
add dl, 0x34
xor byte [esp + ebx + 0x10], dl
inc ebx
cmp ebx, 0xc
jl 0x40c71f
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407bd8
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret