Function at 0x4ea8b6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 8]
xor edx, edx
cmp dword [edi + 0xc], edx
jne 0x4ea8d5
mov dword [ebp - 0x10], 1
jmp 0x4ea8db
mov ecx, dword [edi + 0x64]
mov dword [ebp - 0x10], ecx
mov cl, byte [edi + 0x8084]
mov byte [ebp - 1], cl
mov cl, byte [edi + 0x8085]
mov byte [ebp - 2], cl
mov ecx, dword [edi + 0x8588]
mov ebx, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebp - 0x20], ebx
mov ebx, dword [edi + 0x85d8]
shl ebx, 6
lea ecx, [ebx + ecx - 0x40]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x10], edx
jbe 0x4ea92e
lea ecx, [edi + 0x8660]
mov ebx, dword [ecx]
mov esi, edx
and esi, 0xf
inc edx
add ecx, 4
mov dword [ebp + esi*4 - 0x7c], ebx
cmp edx, dword [ebp - 0x10]
jb 0x4ea917
mov esi, dword [ebp + 0x14]
cmp dword [edi + 0x8590], 0
je 0x4ea949
mov ecx, dword [edi + 0x8760]
mov dword [ebp - 0x78], ecx
mov ecx, dword [edi + 0x8764]
mov dword [ebp - 0x74], ecx
mov ecx, dword [edi + 0x10]
dec ecx
je 0x4eae52
dec ecx
je 0x4ead90
dec ecx
je 0x4eacc5
dec ecx
je 0x4eac12
dec ecx
je 0x4eab65
dec ecx
je 0x4eaab8
dec ecx
jne 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
jmp 0x4eaa94
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp - 0x14]
mov edx, dword [edi + 0x8090]
and dword [ebp - 0x24], 0
cmp dword [ebp - 0x10], 0
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x3c], ecx
jbe 0x4eaa93
mov esi, dword [ebp - 0x2c]
movzx ecx, byte [ebp - 1]
mov edx, eax
and edx, 0xf
lea edx, [edx + esi + 0x679970]
xor edi, edi
mov dword [ebp - 0x34], edx
movsx edx, byte [ebp - 2]
and eax, 0xfffffff0
inc edi
shl eax, 4
mov dword [ebp - 0x28], 0x17
shl edi, cl
sub dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], edx
jmp 0x4eaa02
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ecx]
add ecx, eax
mov eax, dword [ebp - 0x24]
and eax, 0xf
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [eax + ecx*4]
add eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x18]
mov esi, eax
sar esi, 0x1f
mov ebx, esi
xor ebx, eax
sub ebx, esi
mov edx, ebx
shr edx, cl
lea eax, [edi - 1]
and eax, ebx
or eax, edi
test edx, edx
jne 0x4eaa3f
xor eax, edi
inc edx
push 0x7f
pop ecx
sub ecx, dword [ebp - 0x38]
add edx, ecx
cmp eax, edi
jge 0x4eaa63
cmp edx, 1
jle 0x4eaa5b
test eax, eax
jle 0x4eaa5b
add eax, eax
dec edx
cmp eax, edi
jl 0x4eaa4b
cmp eax, edi
jge 0x4eaa63
xor edx, edx
jmp 0x4eaa65
xor eax, edi
mov ecx, dword [ebp - 0x28]
shl eax, cl
mov ecx, dword [ebp - 0x24]
shl edx, 0x17
and esi, 0x80000000
or eax, edx
mov edx, dword [ebp - 0x3c]
or eax, esi
mov dword [edx + ecx*4], eax
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, dword [ebp - 0x10]
jb 0x4ea9ff
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp + 0x10]
jb 0x4ea9a2
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp - 0x2c], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4ea98e
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + esi*4]
cmp eax, dword [ebp + 0x10]
mov edx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4eab48
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edx*4]
add eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x8090]
xor esi, esi
lea eax, [ecx + eax*4]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x10], esi
jbe 0x4eab44
mov ecx, dword [ebp + 8]
mov eax, edx
and eax, 0xf
lea eax, [eax + ecx + 0x679970]
movzx ecx, byte [ebp - 1]
and edx, 0xfffffff0
shl edx, 4
mov dword [ebp - 0x18], ecx
movzx ecx, byte [eax]
add ecx, edx
mov ebx, esi
and ebx, 0xf
mov ebx, dword [ebp + ebx*4 - 0x7c]
mov ebx, dword [ebx + ecx*4]
add ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar ebx, cl
mov ecx, dword [ebp - 0x18]
shl ebx, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + esi*4], ebx
inc esi
cmp esi, dword [ebp - 0x10]
jb 0x4eab17
mov edx, dword [ebp - 0xc]
inc edx
cmp edx, dword [ebp + 0x10]
mov dword [ebp - 0xc], edx
jb 0x4eaadf
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eaac9
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + esi*4]
cmp eax, dword [ebp + 0x10]
mov edx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4eabf5
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edx*4]
add eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x8090]
xor esi, esi
lea eax, [ecx + eax*4]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x10], esi
jbe 0x4eabf1
mov ecx, dword [ebp + 8]
mov eax, edx
and eax, 0xf
lea eax, [eax + ecx + 0x679970]
movzx ecx, byte [ebp - 1]
and edx, 0xfffffff0
shl edx, 4
mov dword [ebp - 0x18], ecx
movzx ecx, byte [eax]
add ecx, edx
mov ebx, esi
and ebx, 0xf
mov ebx, dword [ebp + ebx*4 - 0x7c]
mov ebx, dword [ebx + ecx*4]
add ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar ebx, cl
mov ecx, dword [ebp - 0x18]
shl ebx, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + esi*4], ebx
inc esi
cmp esi, dword [ebp - 0x10]
jb 0x4eabc4
mov edx, dword [ebp - 0xc]
inc edx
cmp edx, dword [ebp + 0x10]
mov dword [ebp - 0xc], edx
jb 0x4eab8c
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eab76
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], ecx
jmp 0x4eaca8
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
add eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x8090]
xor edx, edx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x10], edx
jbe 0x4eaca2
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov eax, esi
and eax, 0xf
and esi, 0xfffffff0
lea ebx, [eax + ecx + 0x679970]
shl esi, 4
movzx eax, byte [ebx]
add eax, esi
mov ecx, edx
and ecx, 0xf
mov ecx, dword [ebp + ecx*4 - 0x7c]
mov eax, dword [ecx + eax*4]
add eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar eax, cl
mov ecx, eax
sar ecx, 0x1f
and eax, 0x7fff
xor eax, ecx
sub eax, ecx
mov ecx, dword [ebp - 0x3c]
mov word [ecx + edx*2], ax
inc edx
cmp edx, dword [ebp - 0x10]
jb 0x4eac6e
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp + 0x10]
jb 0x4eac37
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eac23
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
jmp 0x4ead6c
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp - 0x14]
mov edx, dword [edi + 0x8090]
xor ebx, ebx
lea ecx, [edx + ecx*2]
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x10], ebx
jbe 0x4ead6b
mov edx, dword [ebp + 8]
mov ecx, eax
and ecx, 0xf
lea esi, [ecx + edx + 0x679970]
mov edx, eax
movzx eax, byte [ebp - 1]
and edx, 0xfffffff0
shl edx, 4
mov dword [ebp - 0x18], eax
movzx eax, byte [esi]
add eax, edx
mov ecx, ebx
and ecx, 0xf
mov ecx, dword [ebp + ecx*4 - 0x7c]
mov eax, dword [ecx + eax*4]
add eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x18]
shl eax, cl
cmp eax, 0xffff8000
jge 0x4ead50
mov eax, 0xffff8000
jmp 0x4ead5b
mov ecx, 0x7fff
cmp eax, ecx
jle 0x4ead5b
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
mov word [ecx + ebx*2], ax
inc ebx
cmp ebx, dword [ebp - 0x10]
jb 0x4ead24
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp + 0x10]
jb 0x4eacea
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eacd6
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
jmp 0x4eae2e
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp - 0x14]
mov edx, dword [edi + 0x8090]
xor ebx, ebx
lea ecx, [edx + ecx*2]
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x10], ebx
jbe 0x4eae2d
mov edx, dword [ebp + 8]
mov ecx, eax
and ecx, 0xf
lea esi, [ecx + edx + 0x679970]
mov edx, eax
movzx eax, byte [ebp - 1]
and edx, 0xfffffff0
shl edx, 4
mov dword [ebp - 0x18], eax
movzx eax, byte [esi]
add eax, edx
mov ecx, ebx
and ecx, 0xf
mov ecx, dword [ebp + ecx*4 - 0x7c]
mov eax, dword [ecx + eax*4]
add eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar eax, cl
mov ecx, dword [ebp - 0x18]
shl eax, cl
test eax, eax
jge 0x4eae12
xor eax, eax
jmp 0x4eae1d
mov ecx, 0xffff
cmp eax, ecx
jle 0x4eae1d
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
mov word [ecx + ebx*2], ax
inc ebx
cmp ebx, dword [ebp - 0x10]
jb 0x4eadec
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp + 0x10]
jb 0x4eadb2
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eada1
jmp 0x4eaf02
mov dword [ebp - 8], eax
cmp eax, esi
jae 0x4eaf02
shl eax, 4
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], ecx
jmp 0x4eaeea
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax + ecx*4]
add eax, dword [edi + 0x8090]
and dword [ebp - 0x24], 0
add eax, dword [ebp - 0x14]
cmp dword [ebp - 0x10], 0
jbe 0x4eaee4
mov edx, dword [ebp + 8]
mov esi, ecx
and ecx, 0xf
and esi, 0xfffffff0
lea ebx, [ecx + edx + 0x679970]
shl esi, 4
movzx ecx, byte [ebx]
mov edx, dword [ebp - 0x24]
and edx, 0xf
mov edx, dword [ebp + edx*4 - 0x7c]
add ecx, esi
mov edx, dword [edx + ecx*4]
add edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
sar edx, cl
test edx, edx
jge 0x4eaeca
xor edx, edx
jmp 0x4eaed5
mov ecx, 0xff
cmp edx, ecx
jle 0x4eaed5
mov edx, ecx
mov ecx, dword [ebp - 0x24]
mov byte [eax + ecx], dl
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, dword [ebp - 0x10]
jb 0x4eaea8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp + 0x10]
jb 0x4eae77
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 0x10
cmp eax, dword [ebp + 0x14]
jb 0x4eae63
pop edi
pop esi
pop ebx
leave
ret