Function at 0x411015
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1be4
call fcn.004118a0
push ebx
push esi
push edi
xor ebx, ebx
push 0x3ff
lea eax, [ebp - 0xcbf]
push ebx
push eax
mov byte [ebp - 0xcc0], bl
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0xc]
add esp, 0xc
lea edi, [ebp - 0xcc0]
call fcn.00410e8a
push dword [ebp + 8]
mov dword [ebp + 0xc], eax
call sub.msvcrt.dll_strlen
cmp dword [ebp + 0xc], 4
pop ecx
mov dword [ebp - 4], eax
jle 0x411298
cmp eax, ebx
jle 0x411298
mov esi, str.salu
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x41e
push esi
lea eax, [ebp - 0x8bf]
push ebx
push eax
mov byte [ebp - 0x8c0], bl
call sub.msvcrt.dll_memset
push esi
lea eax, [ebp - 0x49f]
push ebx
push eax
mov byte [ebp - 0x4a0], bl
call sub.msvcrt.dll_memset
push esi
lea eax, [ebp - 0x14df]
push ebx
push eax
mov byte [ebp - 0x14e0], bl
call sub.msvcrt.dll_memset
xor eax, eax
mov byte [ebp - 0x24], bl
lea edi, [ebp - 0x23]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x3ff
stosb byte es:[edi], al
lea eax, [ebp - 0x10bf]
push ebx
push eax
mov byte [ebp - 0x10c0], bl
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x80]
call fcn.0040bc49
push dword [ebp + 8]
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x80]
call fcn.0040bc6d
lea eax, [ebp - 0x8c0]
push eax
lea esi, [ebp - 0x80]
call fcn.0040bd0b
push 8
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x8b0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x44
mov eax, esi
call fcn.0040bc49
lea eax, [ebp - 0x8c0]
push eax
push 0x18
pop eax
mov ecx, esi
call fcn.0040bc6d
lea eax, [ebp - 0x4a0]
push eax
call fcn.0040bd0b
push 0x10
lea eax, [ebp - 0x8c0]
push eax
lea eax, [ebp - 0x490]
push eax
call sub.msvcrt.dll_memcpy
push 8
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x480]
push eax
call sub.msvcrt.dll_memcpy
mov eax, esi
call fcn.0040bc49
lea eax, [ebp - 0x4a0]
push eax
push 0x28
pop eax
mov ecx, esi
call fcn.0040bc6d
lea eax, [ebp - 0x14e0]
push eax
call fcn.0040bd0b
lea eax, [ebp - 0x14e0]
push eax
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x4a0]
lea eax, [ebp - 0x17e0]
call fcn.0040535a
lea eax, [ebp - 0x17e0]
push eax
lea edi, [ebp - 0x10c0]
lea eax, [ebp - 0x14d8]
call fcn.004053d6
mov edi, dword [ebp + 0xc]
mov eax, edi
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
add esp, 0x34
cmp esi, ebx
mov dword [ebp + 8], ebx
jle 0x411209
mov eax, dword [ebp + 8]
shl eax, 3
lea ecx, [ebp - 0x17e0]
lea edi, [ebp + eax - 0x10b8]
lea eax, [ebp + eax - 0xcc0]
push ecx
call fcn.004053d6
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
pop ecx
jl 0x4111dd
mov edi, dword [ebp + 0xc]
xor eax, eax
cmp edi, ebx
jle 0x411229
mov cl, byte [ebp + eax - 0x10c0]
xor cl, byte [ebp + eax - 0xcc0]
inc eax
cmp eax, edi
mov byte [ebp + eax - 0x1be1], cl
jl 0x41120f
lea eax, [ebp - 0x1bdc]
push eax
push dword [ebp + 0x10]
mov byte [ebp + edi - 0x1be0], bl
call sub.msvcrt.dll_strcpy
lea eax, [ebp - 0x80]
call fcn.0040bc49
push dword [ebp + 0x10]
lea eax, [edi - 4]
lea ecx, [ebp - 0x80]
call fcn.0040bc6d
lea eax, [ebp - 0x24]
push eax
lea esi, [ebp - 0x80]
call fcn.0040bd0b
push 4
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 4]
push eax
call sub.msvcrt.dll_memcpy
push 4
lea eax, [ebp - 0x1be0]
push eax
lea eax, [ebp - 8]
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 4]
xor eax, eax
add esp, 0x28
cmp ecx, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
sete al
xor ebx, ebx
inc ebx
mov dword [ecx], eax
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret 0x10