Function at 0x49ecd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd08
xor eax, eax
mov dword [ebp - 0xa88], 1
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, 0x20
push edi
lea edi, [ebp - 0x108]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x3f
mov dword [ebp - 0x88], 1
lea edi, [ebp - 0xa84]
mov dword [ebp - 0x84], eax
rep stosd dword es:[edi], eax
mov ecx, 0xfe
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], ecx
mov eax, ecx
test eax, eax
jns 0x49ed80
add eax, 7
sar eax, 3
mov edx, dword [ebp + 0xc]
movzx ecx, cl
and ecx, 7
movzx ebx, byte [eax + edx]
shr ebx, cl
and ebx, 1
dec ebx
xor esi, esi
mov dword [ebp - 8], ebx
jmp 0x49eda0
mov eax, dword [ebp + esi - 0x108]
mov ecx, eax
mov edx, dword [ebp + esi - 0xa88]
xor ecx, edx
and ecx, ebx
xor eax, ecx
xor edx, ecx
mov dword [ebp + esi - 0x608], eax
mov dword [ebp + esi - 0x708], edx
add esi, 4
cmp esi, 0x100
jb 0x49eda0
xor ecx, ecx
xor edx, edx
jmp 0x49ede0
mov eax, dword [ebp + edx - 0x588]
add eax, dword [ebp + edx - 0x608]
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x408], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49ede0
mov esi, dword [ebp - 0x58c]
mov edi, dword [ebp - 0x50c]
lea eax, [esi + edi]
add eax, ecx
mov ecx, 0xda
mov dword [ebp - 0x38c], eax
xor edx, edx
jmp 0x49ee30
mov eax, dword [ebp + edx - 0x608]
sub eax, dword [ebp + edx - 0x588]
add eax, 0xff00
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x388], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49ee30
sub esi, edi
add esi, ecx
xor ecx, ecx
mov dword [ebp - 0x30c], esi
xor edx, edx
jmp 0x49ee70
mov eax, dword [ebp + edx - 0x688]
add eax, dword [ebp + edx - 0x708]
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x888], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49ee70
mov esi, dword [ebp - 0x68c]
mov edi, dword [ebp - 0x60c]
lea eax, [esi + edi]
add eax, ecx
mov ecx, 0xda
mov dword [ebp - 0x80c], eax
xor edx, edx
jmp 0x49eec0
mov eax, dword [ebp + edx - 0x708]
sub eax, dword [ebp + edx - 0x688]
add eax, 0xff00
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x808], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49eec0
lea eax, [ebp - 0x408]
sub esi, edi
push eax
lea eax, [ebp - 0x288]
add esi, ecx
push eax
mov dword [ebp - 0x78c], esi
call fcn.0049f890
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.0049f890
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x888]
push eax
lea eax, [ebp - 0x508]
push eax
call fcn.0049f1c0
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x488]
push eax
call fcn.0049f1c0
add esp, 0x28
xor ecx, ecx
xor edx, edx
jmp 0x49ef60
mov eax, dword [ebp + edx - 0x488]
add eax, dword [ebp + edx - 0x508]
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x988], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49ef60
mov esi, dword [ebp - 0x48c]
mov edi, dword [ebp - 0x40c]
lea eax, [esi + edi]
add eax, ecx
mov ecx, 0xda
mov dword [ebp - 0x90c], eax
xor edx, edx
jmp 0x49efb0
mov eax, dword [ebp + edx - 0x508]
sub eax, dword [ebp + edx - 0x488]
add eax, 0xff00
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x908], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49efb0
lea eax, [ebp - 0x908]
sub esi, edi
push eax
lea eax, [ebp - 0xb08]
add esi, ecx
push eax
mov dword [ebp - 0x88c], esi
call fcn.0049f890
add esp, 8
mov ecx, 0xda
xor edx, edx
mov eax, dword [ebp + edx - 0x288]
sub eax, dword [ebp + edx - 0x208]
add eax, 0xff00
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x308], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49f001
mov edi, dword [ebp - 0x20c]
mov esi, edi
sub esi, dword [ebp - 0x18c]
add esi, ecx
xor ecx, ecx
mov dword [ebp - 0x28c], esi
xor edx, edx
jmp 0x49f050
imul eax, dword [ebp + edx - 0x308], 0x1db41
add ecx, eax
movzx eax, cl
mov dword [ebp + edx - 0x188], eax
add edx, 4
shr ecx, 8
cmp edx, 0x7c
jb 0x49f050
imul eax, esi, 0x1db41
add ecx, eax
mov eax, ecx
shr ecx, 7
and eax, 0x7f
imul ecx, ecx, 0x13
mov dword [ebp - 0x10c], eax
xor edx, edx
lea ecx, [ecx]
add ecx, dword [ebp + edx*4 - 0x188]
movzx eax, cl
mov dword [ebp + edx*4 - 0x188], eax
inc edx
shr ecx, 8
cmp edx, 0x1f
jb 0x49f090
add dword [ebp + edx*4 - 0x188], ecx
xor edx, edx
xor eax, eax
jmp 0x49f0c0
mov ecx, dword [ebp + eax - 0x188]
add ecx, dword [ebp + eax - 0x288]
add edx, ecx
movzx ecx, dl
mov dword [ebp + eax - 0x788], ecx
add eax, 4
shr edx, 8
cmp eax, 0x7c
jb 0x49f0c0
mov eax, dword [ebp - 0x10c]
add eax, edi
add eax, edx
mov dword [ebp - 0x70c], eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0xd08]
push eax
call fcn.0049f1c0
lea eax, [ebp - 0x788]
push eax
lea eax, [ebp - 0x308]
push eax
lea eax, [ebp - 0xc88]
push eax
call fcn.0049f1c0
lea eax, [ebp - 0x988]
push eax
lea eax, [ebp - 0xc08]
push eax
call fcn.0049f890
push dword [ebp + 8]
lea eax, [ebp - 0xb08]
push eax
lea eax, [ebp - 0xb88]
push eax
call fcn.0049f1c0
mov edi, dword [ebp - 8]
add esp, 0x2c
xor ebx, ebx
lea ebx, [ebx]
mov esi, dword [ebp + ebx - 0xd08]
mov edx, esi
mov ecx, dword [ebp + ebx - 0xc08]
xor edx, ecx
and edx, edi
mov eax, edx
xor esi, edx
xor eax, ecx
mov dword [ebp + ebx - 0x108], esi
mov dword [ebp + ebx - 0xa88], eax
add ebx, 4
cmp ebx, 0x100
jb 0x49f160
mov ecx, dword [ebp - 4]
sub ecx, 1
mov dword [ebp - 4], ecx
jns 0x49ed77
mov edi, dword [ebp + 8]
lea esi, [ebp - 0xa88]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret