Function at 0x40c3da
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, 0x43cd38
lea edi, [esp + 0x10]
xor ebx, ebx
push 0x34
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
cmp byte [0x43cd41], bl
je 0x40c415
mov ecx, ebx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xa
jl 0x40c402
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str._QHTQX
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x34
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, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c43f
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str.UJ___X
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x34
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, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c47c
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, 0x43ce20
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 [0x43ce29], bl
je 0x40c4d3
push 0x34
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xa
jl 0x40c4c0
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str.YMUV
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x34
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 9
jl 0x40c4fb
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str.K_SS
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x34
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, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jl 0x40c538
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str.NPLZPYW
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 [0x43cfe3], bl
je 0x40c58e
push 0x34
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xc
jl 0x40c57b
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, 0x43cf8c
lea edi, [esp + 0x28]
add esp, 0x18
mov ecx, ebx
movsd dword es:[edi], dword [esi]
push 0x34
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, 0x38
xor byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xf
jl 0x40c5b9
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
mov esi, str.ZKULOXL
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 [0x43cf57], bl
je 0x40c60d
push 0x34
pop ecx
xor edx, edx
mov eax, ebx
div ecx
add dl, 0x38
xor byte [esp + ebx + 0x10], dl
inc ebx
cmp ebx, 0xc
jl 0x40c5fa
sub esp, 0x18
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004040bd
call fcn.00407a89
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret