Function at 0x40ff1c
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x5e8
mov eax, dword [0x47d550]
xor eax, ebp
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x74]
push ebx
push esi
push edi
push 0x11
pop edi
push 9
pop ebx
push 0x1d
pop edx
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp + 0x78]
push 0x15
pop ecx
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp + 0x7c]
xor esi, esi
push 0xd
mov dword [ebp - 0x2bc], eax
inc esi
pop eax
mov dword [ebp - 0x47c], 0x3a
mov dword [ebp - 0x478], 0x32
mov dword [ebp - 0x474], 0x2a
mov dword [ebp - 0x470], 0x22
mov dword [ebp - 0x46c], 0x1a
mov dword [ebp - 0x468], 0x12
mov dword [ebp - 0x464], 0xa
mov dword [ebp - 0x460], 2
mov dword [ebp - 0x45c], 0x3c
mov dword [ebp - 0x458], 0x34
mov dword [ebp - 0x454], 0x2c
mov dword [ebp - 0x450], 0x24
mov dword [ebp - 0x44c], 0x1c
mov dword [ebp - 0x448], 0x14
mov dword [ebp - 0x444], 0xc
mov dword [ebp - 0x440], 4
mov dword [ebp - 0x43c], 0x3e
mov dword [ebp - 0x438], 0x36
mov dword [ebp - 0x434], 0x2e
mov dword [ebp - 0x430], 0x26
mov dword [ebp - 0x42c], 0x1e
mov dword [ebp - 0x428], 0x16
mov dword [ebp - 0x424], 0xe
mov dword [ebp - 0x420], 6
mov dword [ebp - 0x41c], 0x40
mov dword [ebp - 0x418], 0x38
mov dword [ebp - 0x414], 0x30
mov dword [ebp - 0x410], 0x28
mov dword [ebp - 0x40c], 0x20
mov dword [ebp - 0x408], 0x18
mov dword [ebp - 0x404], 0x10
mov dword [ebp - 0x400], 8
mov dword [ebp - 0x3fc], 0x39
mov dword [ebp - 0x3f8], 0x31
mov dword [ebp - 0x3f4], 0x29
mov dword [ebp - 0x3f0], 0x21
mov dword [ebp - 0x3ec], 0x19
mov dword [ebp - 0x3e8], edi
mov dword [ebp - 0x3e4], ebx
mov dword [ebp - 0x3e0], esi
mov dword [ebp - 0x3dc], 0x3b
mov dword [ebp - 0x3d8], 0x33
mov dword [ebp - 0x3d4], 0x2b
mov dword [ebp - 0x3d0], 0x23
mov dword [ebp - 0x3cc], 0x1b
mov dword [ebp - 0x3c8], 0x13
mov dword [ebp - 0x3c4], 0xb
mov dword [ebp - 0x3c0], 3
mov dword [ebp - 0x3bc], 0x3d
mov dword [ebp - 0x3b8], 0x35
mov dword [ebp - 0x3b4], 0x2d
mov dword [ebp - 0x3b0], 0x25
mov dword [ebp - 0x3ac], edx
mov dword [ebp - 0x3a8], ecx
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], 5
mov dword [ebp - 0x39c], 0x3f
mov dword [ebp - 0x398], 0x37
mov dword [ebp - 0x394], 0x2f
mov dword [ebp - 0x390], 0x27
mov dword [ebp - 0x38c], 0x1f
mov dword [ebp - 0x388], 0x17
mov dword [ebp - 0x384], 0xf
mov dword [ebp - 0x380], 7
mov dword [ebp - 0x57c], 0x28
mov dword [ebp - 0x578], 8
mov dword [ebp - 0x574], 0x30
mov dword [ebp - 0x570], 0x10
mov dword [ebp - 0x56c], 0x38
mov dword [ebp - 0x568], 0x18
mov dword [ebp - 0x564], 0x40
mov dword [ebp - 0x560], 0x20
mov dword [ebp - 0x55c], 0x27
mov dword [ebp - 0x558], 7
mov dword [ebp - 0x554], 0x2f
mov dword [ebp - 0x550], 0xf
mov dword [ebp - 0x54c], 0x37
mov dword [ebp - 0x548], 0x17
mov dword [ebp - 0x544], 0x3f
mov dword [ebp - 0x540], 0x1f
mov dword [ebp - 0x53c], 0x26
mov dword [ebp - 0x538], 6
mov dword [ebp - 0x534], 0x2e
mov dword [ebp - 0x530], 0xe
mov dword [ebp - 0x52c], 0x36
mov dword [ebp - 0x528], 0x16
mov dword [ebp - 0x524], 0x3e
mov dword [ebp - 0x520], 0x1e
mov dword [ebp - 0x51c], 0x25
mov dword [ebp - 0x518], 5
mov dword [ebp - 0x514], 0x2d
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x50c], 0x35
mov dword [ebp - 0x508], ecx
mov dword [ebp - 0x504], 0x3d
mov dword [ebp - 0x500], edx
mov dword [ebp - 0x4fc], 0x24
mov dword [ebp - 0x4f8], 4
mov dword [ebp - 0x4f4], 0x2c
mov dword [ebp - 0x4f0], 0xc
mov dword [ebp - 0x4ec], 0x34
mov dword [ebp - 0x4e8], 0x14
mov dword [ebp - 0x4e4], 0x3c
mov dword [ebp - 0x4e0], 0x1c
mov dword [ebp - 0x4dc], 0x23
mov dword [ebp - 0x4d8], 3
mov dword [ebp - 0x4d4], 0x2b
mov dword [ebp - 0x4d0], 0xb
mov dword [ebp - 0x4cc], 0x33
mov dword [ebp - 0x4c8], 0x13
mov dword [ebp - 0x4c4], 0x3b
mov dword [ebp - 0x4c0], 0x1b
mov dword [ebp - 0x4bc], 0x22
mov dword [ebp - 0x4b8], 2
mov dword [ebp - 0x4b4], 0x2a
mov dword [ebp - 0x4b0], 0xa
mov dword [ebp - 0x4ac], 0x32
mov dword [ebp - 0x4a8], 0x12
mov dword [ebp - 0x4a4], 0x3a
mov dword [ebp - 0x4a0], 0x1a
mov dword [ebp - 0x49c], 0x21
mov dword [ebp - 0x498], esi
mov dword [ebp - 0x494], 0x29
mov dword [ebp - 0x490], ebx
mov dword [ebp - 0x48c], 0x31
mov dword [ebp - 0x488], edi
mov dword [ebp - 0x484], 0x39
mov dword [ebp - 0x480], 0x19
mov dword [ebp - 0x37c], 0x20
mov dword [ebp - 0x378], esi
mov dword [ebp - 0x374], 2
mov dword [ebp - 0x370], 3
mov dword [ebp - 0x36c], 4
mov dword [ebp - 0x368], 5
mov dword [ebp - 0x364], 4
mov dword [ebp - 0x360], 5
mov dword [ebp - 0x35c], 6
mov dword [ebp - 0x358], 7
mov dword [ebp - 0x354], 8
mov dword [ebp - 0x350], ebx
mov dword [ebp - 0x34c], 8
push 0xc
mov dword [ebp - 0x348], ebx
pop ebx
push 0x10
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x330], eax
pop eax
push 0x14
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x31c], eax
pop eax
push 0x18
mov dword [ebp - 0x30c], eax
mov dword [ebp - 0x304], eax
pop eax
push 0x19
mov dword [ebp - 0x308], ecx
mov dword [ebp - 0x300], ecx
pop ecx
push 0x1c
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2ec], eax
pop eax
mov dword [ebp - 0x2c0], esi
add esi, 0x7f
mov dword [ebp - 0x33c], ebx
mov dword [ebp - 0x334], ebx
xor ebx, ebx
push esi
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d4], eax
lea eax, [ebp - 0x28]
push ebx
push eax
mov dword [ebp - 0x344], 0xa
mov dword [ebp - 0x340], 0xb
mov dword [ebp - 0x32c], 0xe
mov dword [ebp - 0x328], 0xf
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x318], edi
mov dword [ebp - 0x314], 0x12
mov dword [ebp - 0x310], 0x13
mov dword [ebp - 0x2fc], 0x16
mov dword [ebp - 0x2f8], 0x17
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2e4], 0x1a
mov dword [ebp - 0x2e0], 0x1b
mov dword [ebp - 0x2d8], edx
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2cc], 0x1e
mov dword [ebp - 0x2c8], 0x1f
mov dword [ebp - 0x2c4], 0x20
mov byte [ebp + 0x60], bl
mov byte [ebp + 0x61], bl
mov byte [ebp + 0x62], bl
mov byte [ebp + 0x63], bl
mov byte [ebp + 0x64], bl
mov byte [ebp + 0x65], bl
mov byte [ebp + 0x66], bl
mov byte [ebp + 0x67], bl
call fcn.00446500
push esi
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.00446500
push esi
lea eax, [ebp - 0x2b0]
push ebx
push eax
call fcn.00446500
push 0x40
pop esi
push esi
lea eax, [ebp - 0xa8]
push ebx
push eax
call fcn.00446500
push esi
push ebx
lea eax, [ebp - 0x1a8]
push eax
call fcn.00446500
push esi
lea eax, [ebp - 0x68]
push ebx
push eax
call fcn.00446500
add esp, 0x48
push esi
lea eax, [ebp - 0xe8]
push ebx
push eax
call fcn.00446500
push esi
lea eax, [ebp - 0x128]
push ebx
push eax
call fcn.00446500
push esi
lea eax, [ebp - 0x168]
push ebx
push eax
call fcn.00446500
lea eax, [ebp - 0x2b0]
push eax
push dword [ebp - 0x2b4]
call fcn.0040e116
lea eax, [ebp - 0x168]
push eax
push dword [ebp - 0x2b8]
call fcn.0040e0a5
add esp, 0x34
xor eax, eax
mov ecx, dword [ebp + eax*4 - 0x47c]
mov cl, byte [ebp + ecx - 0x169]
mov byte [ebp + eax - 0x128], cl
inc eax
cmp eax, 0x3f
jle 0x410687
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.0040dcc4
pop ecx
pop ecx
lea eax, [ebp - 0x28]
sub eax, 8
lea esi, [ebp + 0x60]
lea edi, [ebp - 0x1b0]
movsd dword es:[edi], dword [esi]
push 8
mov dword [ebp - 0x2b8], eax
lea esi, [ebp + 0x64]
lea edi, [ebp + 0x58]
pop eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2b4], eax
jmp 0x4106e2
mov eax, dword [ebp - 0x2b4]
lea ecx, [ebp + eax + 0x50]
lea edi, [ebp + eax - 0x1c0]
lea eax, [ebp - 0xe8]
push eax
mov esi, ecx
push ecx
movsd dword es:[edi], dword [esi]
call fcn.0040e0a5
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [ebp + eax*4 - 0x37c]
mov cl, byte [ebp + ecx - 0xe9]
mov byte [ebp + eax - 0x68], cl
inc eax
cmp eax, 0x2f
jle 0x410701
mov esi, dword [ebp - 0x2b4]
lea esi, [ebp + esi + 0x50]
lea eax, [ebp - 0x68]
push esi
push eax
call fcn.0040dcc4
mov edi, dword [ebp - 0x2b4]
pop ecx
pop ecx
xor eax, eax
lea edi, [ebp + edi - 0x240]
mov cl, byte [edi + eax]
xor byte [esi + eax], cl
inc eax
cmp eax, 5
jle 0x41073e
push esi
call fcn.0040e6af
mov eax, dword [ebp - 0x2b4]
pop ecx
push 4
add eax, 0x78
pop esi
mov cl, byte [ebp + eax - 0x230]
xor cl, byte [ebp + eax - 0x28]
mov edx, dword [ebp - 0x2b8]
mov byte [edx + eax], cl
inc eax
dec esi
jne 0x41075d
sub dword [ebp - 0x2b4], 8
cmp dword [ebp - 0x2b4], 0xffffff90
jge 0x4106dc
mov eax, dword [ebp - 0x2bc]
mov edi, eax
lea ecx, [ebp - 0x1a8]
lea esi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
push ecx
lea edi, [eax + 4]
lea esi, [ebp - 0x230]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0040e0a5
pop ecx
pop ecx
mov eax, dword [ebp + ebx*4 - 0x57c]
mov al, byte [ebp + eax - 0x1a9]
mov byte [ebp + ebx - 0xa8], al
inc ebx
cmp ebx, 0x3f
jle 0x4107ae
push dword [ebp - 0x2bc]
lea eax, [ebp - 0xa8]
push eax
call fcn.0040dcc4
pop ecx
pop ecx
mov ecx, dword [ebp + 0x68]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004464e5
add ebp, 0x6c
leave
ret