Function at 0x4040e6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7e0
mov eax, dword [0x444664]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov ebx, ecx
mov esi, 0x3e8
mov dword [ebp - 0x7dc], eax
push edi
mov dword [ebp - 0x7d8], ebx
mov ecx, esi
lea eax, [ebp - 0x3ec]
mov byte [eax], 0
inc eax
dec ecx
jne 0x40411a
mov ecx, esi
lea eax, [ebp - 0x7d4]
mov byte [eax], 0
inc eax
dec ecx
jne 0x404129
lea eax, [ebp - 0x3ec]
push str.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
push eax
call fcn.0041fbf0
lea eax, [ebp - 0x7d4]
push str.2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
push eax
call fcn.0041fbf0
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x40
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x20
lea eax, [ebx + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x40
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
mov byte [ebx + edi], 0
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x40
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
xor ebx, ebx
add esp, 0x20
cmp dword [ebp - 0x7d8], ebx
jbe 0x404587
mov eax, dword [ebp + 8]
sub eax, edi
mov dword [ebp - 0x7e0], eax
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x40
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
push dword [ebp - 0x7dc]
lea esi, [ebx + edi]
call fcn.0041fac0
mov ecx, eax
xor edx, edx
mov eax, ebx
div ecx
mov eax, dword [ebp - 0x7dc]
mov ecx, dword [ebp - 0x7e0]
mov al, byte [edx + eax]
xor al, byte [ecx + esi]
mov byte [esi], al
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x44
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x20
inc ebx
cmp ebx, dword [ebp - 0x7d8]
jb 0x4043c6
mov esi, 0x3e8
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
add esp, 0x40
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
lea eax, [ebp - 0x7d4]
push eax
lea eax, [ebp - 0x3ec]
push eax
call fcn.0041fb50
push esi
lea eax, [ebp - 0x3ec]
push 0
push eax
call fcn.0041fa40
push esi
lea eax, [ebp - 0x7d4]
push 0
push eax
call fcn.0041fa40
mov ecx, dword [ebp - 4]
add esp, 0x28
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041fa2e
leave
ret 8