Function at 0x4e14f7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea ebx, [ebp - 0x28]
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x4e151b
mov eax, 0xfffffffb
jmp 0x4e1828
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 4], 2
je 0x4e1537
mov edx, dword [ebp + 0x14]
cmp dword [edx + 8], 0
jne 0x4e1537
mov eax, 0xfffffffa
jmp 0x4e1828
test edi, edi
je 0x4e153f
test eax, eax
jg 0x4e1546
xor eax, eax
jmp 0x4e1828
test eax, eax
jns 0x4e154d
add eax, 0x7f
sar eax, 7
mov dword [ebp - 8], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
sub ecx, 1
jb 0x4e156c
je 0x4e15a0
dec ecx
je 0x4e1648
jmp 0x4e181d
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jle 0x4e1822
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
call fcn.004e2051
add esp, 0xc
add edi, 0x10
add dword [ebp + 0x10], 0x10
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e157c
jmp 0x4e1822
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0xc]
mov dword [ebx], ecx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x10]
mov dword [ebx + 4], edx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x14]
mov dword [ebx + 8], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x18]
mov dword [ebx + 0xc], ecx
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jle 0x4e1822
push dword [ebp + 0x14]
lea edx, [ebp - 0x18]
push edx
push edi
call fcn.004e2051
add esp, 0xc
mov ecx, dword [ebx]
xor dword [ebp - 0x18], ecx
mov eax, dword [ebx + 4]
xor dword [ebp - 0x14], eax
mov edx, dword [ebx + 8]
xor dword [ebp - 0x10], edx
mov ecx, dword [ebx + 0xc]
xor dword [ebp - 0xc], ecx
mov eax, dword [edi]
mov dword [ebx], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [edx], ecx
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [edx + 4], ecx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [edx + 8], ecx
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0xc], ecx
add edi, 0x10
add dword [ebp + 0x10], 0x10
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e15d3
jmp 0x4e1822
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
mov dword [ebx], edx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 4], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x14]
mov dword [ebx + 8], ecx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x18]
mov dword [ebx + 0xc], edx
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jle 0x4e1822
xor esi, esi
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
mov edx, dword [ebx + 4]
mov dword [ebp - 0x14], edx
lea edx, [ebp - 0x18]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x18]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xc], eax
push dword [ebp + 0x14]
push edx
push ecx
call fcn.004e1cfb
xor edx, edx
mov al, byte [ebx]
mov dl, byte [ebx + 1]
add eax, eax
sar edx, 7
add esp, 0xc
or al, dl
mov byte [ebx], al
xor eax, eax
mov al, byte [ebx + 2]
mov cl, byte [ebx + 1]
sar eax, 7
add ecx, ecx
or cl, al
mov byte [ebx + 1], cl
xor ecx, ecx
mov cl, byte [ebx + 3]
mov dl, byte [ebx + 2]
sar ecx, 7
add edx, edx
or dl, cl
mov byte [ebx + 2], dl
xor edx, edx
mov dl, byte [ebx + 4]
mov al, byte [ebx + 3]
sar edx, 7
add eax, eax
or al, dl
mov byte [ebx + 3], al
xor eax, eax
mov al, byte [ebx + 5]
mov cl, byte [ebx + 4]
sar eax, 7
add ecx, ecx
or cl, al
mov byte [ebx + 4], cl
xor ecx, ecx
mov cl, byte [ebx + 6]
mov dl, byte [ebx + 5]
sar ecx, 7
add edx, edx
or dl, cl
mov byte [ebx + 5], dl
xor edx, edx
mov dl, byte [ebx + 7]
mov al, byte [ebx + 6]
sar edx, 7
add eax, eax
or al, dl
mov byte [ebx + 6], al
xor eax, eax
mov al, byte [ebx + 8]
mov cl, byte [ebx + 7]
sar eax, 7
add ecx, ecx
or cl, al
mov byte [ebx + 7], cl
xor ecx, ecx
mov cl, byte [ebx + 9]
mov dl, byte [ebx + 8]
sar ecx, 7
add edx, edx
or dl, cl
mov byte [ebx + 8], dl
xor edx, edx
mov dl, byte [ebx + 0xa]
mov al, byte [ebx + 9]
sar edx, 7
add eax, eax
or al, dl
mov byte [ebx + 9], al
xor eax, eax
mov al, byte [ebx + 0xb]
mov cl, byte [ebx + 0xa]
sar eax, 7
add ecx, ecx
or cl, al
mov byte [ebx + 0xa], cl
xor ecx, ecx
mov cl, byte [ebx + 0xc]
mov dl, byte [ebx + 0xb]
sar ecx, 7
add edx, edx
or dl, cl
mov byte [ebx + 0xb], dl
xor edx, edx
mov dl, byte [ebx + 0xd]
mov al, byte [ebx + 0xc]
sar edx, 7
add eax, eax
or al, dl
mov byte [ebx + 0xc], al
xor eax, eax
mov al, byte [ebx + 0xe]
mov cl, byte [ebx + 0xd]
sar eax, 7
add ecx, ecx
or cl, al
mov eax, esi
mov byte [ebx + 0xd], cl
xor ecx, ecx
mov cl, byte [ebx + 0xf]
mov dl, byte [ebx + 0xe]
sar ecx, 7
add edx, edx
or dl, cl
and eax, 7
mov byte [ebx + 0xe], dl
mov ecx, 7
sub ecx, eax
mov edx, esi
test edx, edx
jns 0x4e17c8
add edx, 7
sar edx, 3
xor eax, eax
mov al, byte [edi + edx]
mov dl, byte [ebx + 0xf]
sar eax, cl
and al, 1
add edx, edx
or al, dl
mov ecx, esi
mov byte [ebx + 0xf], al
xor eax, eax
mov al, byte [ebp - 0x18]
and ecx, 7
and eax, 0x80
mov edx, esi
sar eax, cl
test edx, edx
jns 0x4e17f8
add edx, 7
sar edx, 3
mov ecx, dword [ebp + 0x10]
xor byte [ecx + edx], al
inc esi
cmp esi, 0x80
jl 0x4e167d
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e167b
jmp 0x4e1822
or eax, 0xffffffff
jmp 0x4e1828
mov eax, dword [ebp - 8]
shl eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret