Function at 0x40c690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe64
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x5b]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [0x40f578]
movzx eax, byte [eax]
mov ecx, 0x14
cdq
idiv ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [0x40f6e0]
xor ecx, ecx
mov edx, 8
call fcn.00402a98
mov eax, dword [ebp - 8]
test eax, eax
jns 0x40c6de
add eax, 7
sar eax, 3
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x19c], 3
mov dword [ebp - 0x198], 5
mov dword [ebp - 0x194], 4
mov dword [ebp - 0x190], 0xb
mov dword [ebp - 0x18c], 9
mov dword [ebp - 0x188], 8
mov dword [ebp - 0x184], 3
mov dword [ebp - 0x180], 1
mov dword [ebp - 0x17c], 8
mov dword [ebp - 0x178], 1
mov dword [ebp - 0x174], 2
mov dword [ebp - 0x170], 5
mov dword [ebp - 0x16c], 2
mov dword [ebp - 0x168], 0xb
mov dword [ebp - 0x164], 0xa
mov dword [ebp - 0x160], 5
mov dword [ebp - 0x15c], 3
xor eax, eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], 1
mov dword [ebp - 0x150], 7
mov dword [ebp - 0x14c], 1
mov dword [ebp - 0x148], 0xa
mov dword [ebp - 0x144], 3
mov dword [ebp - 0x140], 7
mov dword [ebp - 0x13c], 7
mov dword [ebp - 0x138], 3
mov dword [ebp - 0x134], 5
mov dword [ebp - 0x130], 0xb
xor eax, eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x124], 9
mov dword [ebp - 0x120], 4
xor eax, eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], 4
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x110], 0xa
mov dword [ebp - 0x10c], 0xb
mov dword [ebp - 0x108], 8
mov dword [ebp - 0x104], 1
mov dword [ebp - 0x100], 3
mov dword [ebp - 0xfc], 8
mov dword [ebp - 0xf8], 4
mov dword [ebp - 0xf4], 2
mov dword [ebp - 0xf0], 5
mov dword [ebp - 0xec], 6
mov dword [ebp - 0xe8], 1
xor eax, eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], 9
mov dword [ebp - 0xdc], 4
mov dword [ebp - 0xd8], 3
mov dword [ebp - 0xd4], 8
mov dword [ebp - 0xd0], 9
xor eax, eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], 4
mov dword [ebp - 0xc4], 2
mov dword [ebp - 0xc0], 0xa
mov dword [ebp - 0xbc], 3
mov dword [ebp - 0xb8], 0xa
mov dword [ebp - 0xb4], 8
mov dword [ebp - 0xb0], 7
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], 0xb
xor eax, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 3
mov dword [ebp - 0x9c], 6
mov dword [ebp - 0x98], 5
mov dword [ebp - 0x94], 1
xor eax, eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], 2
mov dword [ebp - 0x84], 4
mov dword [ebp - 0x80], 8
mov dword [ebp - 0x7c], 5
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], 4
mov dword [ebp - 0x6c], 0xa
mov dword [ebp - 0x68], 3
mov dword [ebp - 0x64], 5
mov dword [ebp - 0x60], 1
mov eax, 0x93e
call fcn.004081bc
mov edx, dword [0x40f654]
mov dword [edx], eax
mov eax, dword [0x40f654]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 8]
add edx, 8
mov eax, dword [ebp - 0x14]
xor ecx, ecx
call fcn.00402a98
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
call fcn.00404e10
mov eax, dword [ebp - 8]
and eax, 0x80000007
jns 0x40ca20
dec eax
or eax, 0xfffffff8
inc eax
test eax, eax
je 0x40ca27
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x10]
jge 0x40cd2e
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 8
jge 0x40ca67
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
mov edx, dword [0x40f6e0]
mov ecx, dword [ebp - 0x20]
xor byte [edx + ecx], al
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 8
jl 0x40ca49
cmp dword [ebp - 0x1c], 0
jne 0x40ccfb
mov eax, dword [0x40f6c4]
cmp byte [eax], 0
je 0x40cc5a
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x19c]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
xor eax, dword [ebp - 0x57]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x198]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 8
xor dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x194]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 0x10
xor dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x190]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 0x18
xor dword [ebp - 0x30], eax
mov eax, dword [0x40f6e0]
mov dword [ebp - 0x34], eax
mov al, byte [ebp - 0x30]
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0xff
jbe 0x40cb26
cmp dword [ebp - 0x30], 0xffffff00
jae 0x40cb26
mov eax, dword [ebp - 0x30]
shr eax, 8
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0x7d00
jbe 0x40cb48
cmp dword [ebp - 0x30], 0xffff8300
jae 0x40cb48
mov eax, dword [ebp - 0x30]
shr eax, 0x10
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0xf42400
jbe 0x40cb6a
cmp dword [ebp - 0x30], 0xff0bdc00
jae 0x40cb6a
mov eax, dword [ebp - 0x30]
shr eax, 0x18
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x19c]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
xor eax, dword [ebp - 0x53]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x198]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 8
xor dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x194]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 0x10
xor dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x190]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
shl eax, 0x18
xor dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0xff
jbe 0x40cc09
cmp dword [ebp - 0x30], 0xffffff00
jae 0x40cc09
mov eax, dword [ebp - 0x30]
shr eax, 8
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0x7d00
jbe 0x40cc2b
cmp dword [ebp - 0x30], 0xffff8300
jae 0x40cc2b
mov eax, dword [ebp - 0x30]
shr eax, 0x10
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0xf42400
jbe 0x40ccfb
cmp dword [ebp - 0x30], 0xff0bdc00
jae 0x40ccfb
mov eax, dword [ebp - 0x30]
shr eax, 0x18
and al, 0xff
mov edx, dword [ebp - 0x34]
xor byte [edx], al
inc dword [ebp - 0x34]
jmp 0x40ccfb
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 8
jge 0x40ccfb
mov eax, dword [ebp - 0x20]
and eax, 3
shl eax, 3
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, 0xff
shl eax, cl
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
shr eax, 2
mov eax, dword [ebp + eax*4 - 0x57]
and eax, dword [ebp - 0x28]
shr eax, cl
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
and eax, 3
mov edx, dword [ebp - 0x2c]
add edx, edx
lea edx, [ebp + edx*8 - 0x19c]
mov eax, dword [edx + eax*4]
mov edx, dword [0x40f634]
movzx eax, byte [edx + eax]
xor dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
mov edx, dword [0x40f6e0]
mov ecx, dword [ebp - 0x20]
xor byte [edx + ecx], al
mov eax, dword [0x40f6c4]
cmp byte [eax], 0
jne 0x40ccee
mov eax, dword [0x40f6e0]
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
call fcn.0040b78c
mov edx, dword [0x40f6e0]
mov ecx, dword [ebp - 0x20]
mov byte [edx + ecx], al
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 8
jl 0x40cc69
mov eax, dword [0x40f6c4]
cmp byte [eax], 0
je 0x40cd11
mov eax, dword [0x40f6e0]
call fcn.0040bb5c
jmp 0x40cd1b
mov eax, dword [0x40f6e0]
call fcn.0040b99c
add dword [ebp - 0x18], 8
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x10]
jl 0x40ca3e
cmp dword [ebp + 8], 0x66d8b337
jne 0x40cd96
mov eax, dword [0x40f6e0]
mov al, byte [eax + 7]
call fcn.0040b78c
mov edx, dword [0x40f6e0]
mov byte [edx + 7], al
mov eax, dword [0x40f6e0]
mov al, byte [eax + 6]
call fcn.0040b78c
mov edx, dword [0x40f6e0]
mov byte [edx + 6], al
mov eax, dword [0x40f6e0]
mov al, byte [eax + 7]
mov edx, dword [0x40f6e0]
add byte [edx], al
mov eax, dword [0x40f6e0]
mov al, byte [eax + 6]
mov edx, dword [0x40f6e0]
add byte [edx + 1], al
mov eax, dword [0x40f6e0]
mov byte [eax + 6], 0
mov eax, dword [0x40f6e0]
mov byte [eax + 7], 0
mov eax, dword [0x40f654]
mov eax, dword [eax]
call fcn.00402558
mov eax, dword [0x40f6e0]
mov edx, dword [ebp + 8]
call fcn.0040bc74
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4