Function at 0x4e7dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ebx, ecx
mov eax, dword [ebp + 8]
add eax, edx
add eax, 0xdeadbeef
test bl, 3
je 0x4e7e62
test bl, 1
jne 0x4e7ed1
cmp edx, 0xd
jb 0x4e7fc5
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x10], ebx
add ecx, dword [ebx]
add esi, dword [ebx + 4]
add eax, dword [ebx + 8]
sub ecx, eax
mov edi, eax
rol edi, 4
xor edi, ecx
add eax, esi
sub esi, edi
mov ebx, edi
rol ebx, 6
xor ebx, esi
add edi, eax
sub eax, ebx
mov esi, ebx
rol esi, 8
xor esi, eax
add ebx, edi
mov ecx, esi
rol ecx, 0x10
sub edi, esi
xor ecx, edi
add esi, ebx
sub ebx, ecx
mov edi, ecx
rol edi, 0x13
xor edi, ebx
mov ebx, dword [ebp - 0x10]
add ecx, esi
sub esi, edi
mov eax, edi
rol eax, 4
xor eax, esi
mov esi, edi
add esi, ecx
add edx, 0xfffffff4
add ebx, 0xc
cmp edx, 0xc
ja 0x4e7e00
jmp 0x4e7fc9
cmp edx, 0xd
jb 0x4e7fa3
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x10], ebx
add ecx, dword [ebx]
add esi, dword [ebx + 4]
add eax, dword [ebx + 8]
sub ecx, eax
mov ebx, esi
mov esi, eax
rol esi, 4
xor esi, ecx
add eax, ebx
sub ebx, esi
mov edi, esi
rol edi, 6
xor edi, ebx
add esi, eax
sub eax, edi
mov ebx, edi
rol ebx, 8
xor ebx, eax
add edi, esi
mov ecx, ebx
rol ecx, 0x10
sub esi, ebx
xor ecx, esi
add ebx, edi
sub edi, ecx
mov esi, ecx
rol esi, 0x13
xor esi, edi
add ecx, ebx
sub ebx, esi
mov eax, esi
rol eax, 4
xor eax, ebx
mov ebx, dword [ebp - 0x10]
add esi, ecx
add edx, 0xfffffff4
add ebx, 0xc
cmp edx, 0xc
ja 0x4e7e6f
jmp 0x4e7fa7
cmp edx, 0xd
jb 0x4e7fe9
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ebx
movzx esi, byte [ebx]
add esi, ecx
movzx edx, byte [ebx + 1]
shl edx, 8
add edx, esi
movzx esi, byte [ebx + 2]
shl esi, 0x10
add esi, edx
movzx edi, byte [ebx + 3]
shl edi, 0x18
add edi, esi
movzx edx, byte [ebx + 4]
add edx, dword [ebp - 0x14]
movzx ecx, byte [ebx + 5]
shl ecx, 8
add ecx, edx
movzx edx, byte [ebx + 6]
shl edx, 0x10
add edx, ecx
movzx esi, byte [ebx + 7]
shl esi, 0x18
add esi, edx
movzx ecx, byte [ebx + 8]
add ecx, eax
movzx edx, byte [ebx + 9]
shl edx, 8
add edx, ecx
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add eax, edx
movzx ecx, byte [ebx + 0xb]
shl ecx, 0x18
add ecx, eax
sub edi, ecx
mov eax, ecx
rol eax, 4
xor eax, edi
add ecx, esi
sub esi, eax
mov ebx, eax
rol ebx, 6
xor ebx, esi
mov edx, dword [ebp - 0x18]
add eax, ecx
sub ecx, ebx
mov edi, ebx
rol edi, 8
xor edi, ecx
add ebx, eax
mov ecx, edi
rol ecx, 0x10
sub eax, edi
xor ecx, eax
add edi, ebx
sub ebx, ecx
mov esi, ecx
rol esi, 0x13
xor esi, ebx
mov ebx, dword [ebp - 0x10]
add ecx, edi
sub edi, esi
mov eax, esi
rol eax, 4
xor eax, edi
add esi, ecx
add edx, 0xfffffff4
add ebx, 0xc
cmp edx, 0xc
ja 0x4e7ede
jmp 0x4e7fed
mov ecx, eax
mov esi, eax
cmp edx, 0xc
ja case.default.0x4e7fb2
mov edi, esi
jmp dword [edx*4 + 0x515934]
mov esi, 0xffffff
and esi, dword [ebx]
jmp 0x4e805b
mov ecx, eax
mov esi, eax
cmp edx, 0xc
ja case.default.0x4e7fb2
mov edi, esi
jmp dword [edx*4 + 0x515900]
movzx esi, byte [ebx + 2]
shl esi, 0x10
add ecx, esi
movzx esi, word [ebx]
jmp 0x4e805b
mov ecx, eax
mov esi, eax
cmp edx, 0xc
ja case.default.0x4e7fb2
mov edi, esi
jmp dword [edx*4 + 0x5158cc]
movzx esi, byte [ebx + 0xb]
shl esi, 0x18
add eax, esi
movzx esi, byte [ebx + 0xa]
shl esi, 0x10
add eax, esi
movzx esi, byte [ebx + 9]
shl esi, 8
add eax, esi
movzx esi, byte [ebx + 8]
add eax, esi
movzx esi, byte [ebx + 7]
shl esi, 0x18
add edi, esi
movzx esi, byte [ebx + 6]
shl esi, 0x10
add edi, esi
movzx esi, byte [ebx + 5]
shl esi, 8
add edi, esi
movzx esi, byte [ebx + 4]
add edi, esi
movzx esi, byte [ebx + 3]
shl esi, 0x18
add ecx, esi
movzx esi, byte [ebx + 2]
shl esi, 0x10
add ecx, esi
movzx esi, byte [ebx + 1]
shl esi, 8
add ecx, esi
movzx esi, byte [ebx]
add ecx, esi
mov esi, edi
xor eax, esi
mov edx, esi
rol esi, 0xe
sub eax, esi
xor ecx, eax
mov esi, eax
rol esi, 0xb
sub ecx, esi
xor edx, ecx
mov esi, ecx
rol esi, 0x19
sub edx, esi
xor eax, edx
mov esi, edx
rol esi, 0x10
sub eax, esi
xor ecx, eax
mov esi, eax
rol esi, 4
sub ecx, esi
xor edx, ecx
rol ecx, 0xe
sub edx, ecx
xor eax, edx
rol edx, 0x18
sub eax, edx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
movzx esi, byte [ebx + 8]
jmp 0x4e80f1
add eax, dword [ebx + 8]
jmp case.0x4e7fb2.8
movzx esi, byte [ebx + 4]
jmp 0x4e80de
mov esi, 0xffffff
and esi, dword [ebx + 4]
jmp 0x4e80de
mov esi, 0xffffff
and esi, dword [ebx + 8]
jmp 0x4e80f1
movzx esi, byte [ebx + 4]
add edi, esi
add ecx, dword [ebx]
jmp 0x4e805d
movzx esi, byte [ebx + 6]
shl esi, 0x10
add edi, esi
movzx esi, word [ebx + 4]
add edi, esi
mov esi, edi
jmp 0x4e80f8
movzx esi, byte [ebx + 0xa]
shl esi, 0x10
add eax, esi
movzx esi, word [ebx + 8]
add eax, esi
mov esi, edi
add esi, dword [ebx + 4]
add ecx, dword [ebx]
jmp case.default.0x4e7fb2