Function at 0x40f4c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [str.ecf1236909c49a73c6a1502a1f7614b9]
mov dword [esp + 0xd0], 0x4b8fbb66
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov word [esp + 0xdc], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xd
ja 0x40f573
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [eax - 0x4f5fe9f6]
lea edi, [eax + 0xa]
xor edi, esi
and esi, edx
and edi, edx
add eax, edx
add eax, 0xb0a0160a
lea edx, [edi + esi*2]
sub eax, edx
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0xba
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xe
jb 0x40f520
mov edx, dword [str.MhMcwl__Vicky]
mov dword [esp + 0x2e0], 0x2e662a2d
mov dword [esp + 0x2e4], 0x1e111466
mov dword [esp + 0x2e8], 0x1619106e
mov dword [esp + 0x2ec], 0x1e696e1d
mov dword [esp + 0x2f0], 0x79c81817
mov dword [esp + 0x2f4], 0x333b7705
mov dword [esp + 0x2f8], 0x7c03536
mov dword [esp + 0x2fc], 0xef330d01
mov dword [esp + 0x300], 0
mov byte [esp + 0x304], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x24
ja 0x40f652
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [eax - 0x297d62]
add eax, 0x9e
and eax, esi
or edi, esi
sub edi, eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
add al, 0xae
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x25
jb 0x40f600
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40f67b
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f670
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f69b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f690
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f6cb
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f6c0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f6eb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f6e0
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x9b0d995b
mov dword [esp + 0x2e4], 0x871a8512
mov dword [esp + 0x2e8], 0x8314812d
mov dword [esp + 0x2ec], 0x8f5b8d10
mov dword [esp + 0x2f0], 0x8b138934
mov dword [esp + 0x2f4], 0x77db75e4
mov dword [esp + 0x2f8], 0x739271aa
mov dword [esp + 0x2fc], 0x7fee7ddd
mov dword [esp + 0x300], 0x7bee79e8
mov dword [esp + 0x304], 0x67c565cd
mov dword [esp + 0x308], 0x63fe61c1
mov dword [esp + 0x30c], 0x6ff96dc5
mov dword [esp + 0x310], 0x6bbd69fe
mov dword [esp + 0x314], 0x578355cc
mov dword [esp + 0x318], 0x53cd51cf
mov dword [esp + 0x31c], 0x5f8b5dc3
mov dword [esp + 0x320], 0x5bcd59f6
mov dword [esp + 0x324], 0x47d345d6
mov dword [esp + 0x328], 0x43df4195
mov dword [esp + 0x32c], 0x4fda4dde
mov dword [esp + 0x330], 0x4bdc49e5
mov dword [esp + 0x334], 0x37a13597
mov dword [esp + 0x338], 0x339f319c
mov dword [esp + 0x33c], 0x3fcb3d90
mov dword [esp + 0x340], 0x3b3a3932
mov word [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x6d
ja 0x40f88b
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0x2ada63ec]
add edx, 0xec
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xd0]
add dl, 0x8c
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x6e
jb 0x40f840
sub eax, ecx
mov dword [esp + 0xd0], 0xc363c12f
mov dword [esp + 0xd4], 0xc76fc574
mov word [esp + 0xd8], 0xc9c8
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov dword [esp + 0xe2], 0
mov byte [esp + 0xe6], 0
mov dword [esp + 0x1f8], 0
mov edx, dword [esp + 0x1f8]
cmp edx, 0x16
ja 0x40f944
nop
nop
nop
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1f8]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx + 0x5c8779a0]
add edx, 0xa0
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0xa0
mov esi, dword [esp + 0x1f8]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
cmp edx, 0x17
jb 0x40f8f0
lea edx, [esp + 0xc8]
lea esi, [esp + 0xb4]
lea ebx, [esp + 0x2e0]
lea edi, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x4484e4
call fcn.0040b220
add esp, 0x1c
movzx eax, al
mov eax, dword [eax*4 + 0x441b04]
mov ecx, 0xafa5e111
xor ecx, dword [0x441b0c]
add eax, ecx
inc eax
jmp eax
add byte [eax], al
add byte [eax], al
mov ecx, dword [esi + 0x3c]
mov dword [ecx], 0
mov edx, 0x98b6c01c
jmp eax
mov ecx, dword [0x4426b8]
xor ecx, edx
add eax, ecx
inc eax
jmp eax