Function at 0x4e1025
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
lea ebx, [ebp - 0x28]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp dword [edx], 0
je 0x4e104c
mov eax, 0xfffffffb
jmp 0x4e133b
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 0
je 0x4e105f
mov eax, 0xfffffffa
jmp 0x4e133b
test esi, esi
je 0x4e1067
test eax, eax
jg 0x4e106e
xor eax, eax
jmp 0x4e133b
test eax, eax
jns 0x4e1075
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 0x4e1094
je 0x4e10c5
dec ecx
je 0x4e115e
jmp 0x4e1330
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jle 0x4e1335
push dword [ebp + 0x14]
push edi
push esi
call fcn.004e1cfb
add esp, 0xc
add esi, 0x10
add edi, 0x10
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e10a4
jmp 0x4e1335
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0xc]
xor ecx, dword [esi]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x10]
xor edx, dword [esi + 4]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x14]
xor eax, dword [esi + 8]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x18]
xor ecx, dword [esi + 0xc]
mov dword [ebp - 0xc], ecx
push dword [ebp + 0x14]
push edi
lea eax, [ebp - 0x18]
push eax
call fcn.004e1cfb
mov edx, dword [ebp - 8]
add esp, 0xc
dec edx
add esi, 0x10
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jle 0x4e1335
mov ecx, dword [edi]
xor ecx, dword [esi]
mov dword [ebp - 0x18], ecx
mov eax, dword [edi + 4]
xor eax, dword [esi + 4]
mov dword [ebp - 0x14], eax
mov edx, dword [edi + 8]
xor edx, dword [esi + 8]
mov dword [ebp - 0x10], edx
mov ecx, dword [edi + 0xc]
xor ecx, dword [esi + 0xc]
mov dword [ebp - 0xc], ecx
add edi, 0x10
push dword [ebp + 0x14]
push edi
lea eax, [ebp - 0x18]
push eax
call fcn.004e1cfb
add esp, 0xc
add esi, 0x10
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e1118
jmp 0x4e1335
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 0x4e1335
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 eax, eax
mov ecx, esi
mov al, byte [ebp - 0x18]
and ecx, 7
and eax, 0x80
add esp, 0xc
sar eax, cl
mov edx, esi
test edx, edx
jns 0x4e11d7
add edx, 7
sar edx, 3
xor byte [edi + edx], al
xor edx, edx
mov dl, byte [ebx + 1]
mov al, byte [ebx]
sar edx, 7
add eax, eax
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 0x4e12fe
add edx, 7
sar edx, 3
xor eax, eax
inc esi
mov al, byte [edi + edx]
sar eax, cl
mov dl, byte [ebx + 0xf]
and al, 1
add edx, edx
or al, dl
cmp esi, 0x80
mov byte [ebx + 0xf], al
jl 0x4e1193
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x4e1191
jmp 0x4e1335
or eax, 0xffffffff
jmp 0x4e133b
mov eax, dword [ebp - 8]
shl eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret