Function at 0x49e530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd8
mov eax, dword [ebp + 8]
test eax, eax
je 0x49e549
mov edx, dword [ebp + 8]
mov cl, byte [edx]
test cl, cl
jne 0x49e550
xor eax, eax
jmp 0x49e738
push dword [ebp + 8]
call fcn.0066ca1c
pop ecx
shr eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, 0x40
jle 0x49e56d
mov dword [ebp - 0x1c], 0x40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x49e64f
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dl, byte [ecx + eax*2]
mov byte [ebp - 0x1d], dl
mov cl, byte [ebp - 0x1d]
cmp cl, 0x30
jb 0x49e5a1
mov al, byte [ebp - 0x1d]
cmp al, 0x39
ja 0x49e5a1
add byte [ebp - 0x1d], 0xd0
jmp 0x49e5d0
mov dl, byte [ebp - 0x1d]
cmp dl, 0x61
jb 0x49e5b7
mov cl, byte [ebp - 0x1d]
cmp cl, 0x66
ja 0x49e5b7
add byte [ebp - 0x1d], 0xa9
jmp 0x49e5d0
mov al, byte [ebp - 0x1d]
cmp al, 0x41
jb 0x49e5cc
mov dl, byte [ebp - 0x1d]
cmp dl, 0x46
ja 0x49e5cc
add byte [ebp - 0x1d], 0xc9
jmp 0x49e5d0
mov byte [ebp - 0x1d], 0
mov cl, byte [ebp - 0x1d]
shl ecx, 4
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0x228], cl
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov al, byte [edx + ecx*2 + 1]
mov byte [ebp - 0x1d], al
mov dl, byte [ebp - 0x1d]
cmp dl, 0x30
jb 0x49e603
mov cl, byte [ebp - 0x1d]
cmp cl, 0x39
ja 0x49e603
add byte [ebp - 0x1d], 0xd0
jmp 0x49e631
mov al, byte [ebp - 0x1d]
cmp al, 0x61
jb 0x49e618
mov dl, byte [ebp - 0x1d]
cmp dl, 0x66
ja 0x49e618
add byte [ebp - 0x1d], 0xa9
jmp 0x49e631
mov cl, byte [ebp - 0x1d]
cmp cl, 0x41
jb 0x49e62d
mov al, byte [ebp - 0x1d]
cmp al, 0x46
ja 0x49e62d
add byte [ebp - 0x1d], 0xc9
jmp 0x49e631
mov byte [ebp - 0x1d], 0
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x1d]
add byte [ebp + edx - 0x228], cl
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jl 0x49e580
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x228], 0
mov dword [ebp - 0x18], 0x3e76f499
xor dword [ebp - 0x18], 0x20060624
push dword [ebp - 0x18]
push 0x767bab
lea eax, [ebp - 0xc]
push eax
call fcn.00670e94
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx*4 + 0x767894]
mov dl, byte [ebp + eax - 0xc]
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx + 0x7678b4]
xor dl, al
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x124], dl
inc dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
cmp edx, 8
jl 0x49e681
mov al, byte [ebp - 0x228]
mov dl, byte [ebp - 0x11f]
xor al, dl
not al
xor ecx, ecx
mov cl, al
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x49e6d5
mov edx, dword [ebp - 0x1c]
cmp edx, 0x40
jle 0x49e6d9
xor eax, eax
jmp 0x49e738
xor edx, edx
mov dword [ebp - 0x14], edx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x49e729
mov ecx, dword [ebp - 0x10]
mov al, byte [ebp + ecx - 0x227]
mov edx, dword [ebp - 0x14]
mov cl, byte [ebp + edx - 0x124]
xor al, cl
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 8
jl 0x49e71c
xor eax, eax
mov dword [ebp - 0x14], eax
inc dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
jl 0x49e6ed
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0
mov eax, 1
mov esp, ebp
pop ebp
ret