Function at 0x49e818
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd8
mov eax, dword [ebp + 8]
test eax, eax
je 0x49e831
mov edx, dword [ebp + 8]
mov cl, byte [edx]
test cl, cl
jne 0x49e838
xor eax, eax
jmp 0x49ea20
push dword [ebp + 8]
call fcn.0066ce38
pop ecx
shr eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, 0x40
jle 0x49e855
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 0x49e937
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 0x49e889
mov al, byte [ebp - 0x1d]
cmp al, 0x39
ja 0x49e889
add byte [ebp - 0x1d], 0xd0
jmp 0x49e8b8
mov dl, byte [ebp - 0x1d]
cmp dl, 0x61
jb 0x49e89f
mov cl, byte [ebp - 0x1d]
cmp cl, 0x66
ja 0x49e89f
add byte [ebp - 0x1d], 0xa9
jmp 0x49e8b8
mov al, byte [ebp - 0x1d]
cmp al, 0x41
jb 0x49e8b4
mov dl, byte [ebp - 0x1d]
cmp dl, 0x46
ja 0x49e8b4
add byte [ebp - 0x1d], 0xc9
jmp 0x49e8b8
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 0x49e8eb
mov cl, byte [ebp - 0x1d]
cmp cl, 0x39
ja 0x49e8eb
add byte [ebp - 0x1d], 0xd0
jmp 0x49e919
mov al, byte [ebp - 0x1d]
cmp al, 0x61
jb 0x49e900
mov dl, byte [ebp - 0x1d]
cmp dl, 0x66
ja 0x49e900
add byte [ebp - 0x1d], 0xa9
jmp 0x49e919
mov cl, byte [ebp - 0x1d]
cmp cl, 0x41
jb 0x49e915
mov al, byte [ebp - 0x1d]
cmp al, 0x46
ja 0x49e915
add byte [ebp - 0x1d], 0xc9
jmp 0x49e919
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 0x49e868
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 0x770cb7
lea eax, [ebp - 0xc]
push eax
call fcn.006712b0
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx*4 + 0x7709a0]
mov dl, byte [ebp + eax - 0xc]
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx + 0x7709c0]
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 0x49e969
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 0x49e9bd
mov edx, dword [ebp - 0x1c]
cmp edx, 0x40
jle 0x49e9c1
xor eax, eax
jmp 0x49ea20
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 0x49ea11
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 0x49ea04
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 0x49e9d5
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], 0
mov eax, 1
mov esp, ebp
pop ebp
ret