Function at 0x4bc000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov eax, dword [ebp + 8]
mov esi, edx
mov dword [ebp - 0x14], edx
lea edi, [edx + eax]
add edi, 0xdeadbeef
mov dword [ebp - 0x10], ecx
test cl, 3
je 0x4bc0a0
test byte [ebp - 0x10], 1
jne 0x4bc116
cmp dword [ebp - 0x14], 0xd
jb 0x4bc217
mov edx, edi
mov ebx, edi
mov esi, dword [ebp - 0x10]
add ebx, dword [esi]
add edx, dword [esi + 4]
add edi, dword [esi + 8]
mov ecx, edi
rol edi, 4
sub ebx, ecx
xor edi, ebx
add ecx, edx
sub edx, edi
mov esi, edi
rol esi, 6
xor esi, edx
add edi, ecx
mov eax, esi
rol eax, 8
sub ecx, esi
xor eax, ecx
add esi, edi
sub edi, eax
mov ebx, eax
rol ebx, 0x10
xor ebx, edi
add eax, esi
mov edx, ebx
rol edx, 0x13
sub esi, ebx
xor edx, esi
mov esi, dword [ebp - 0x14]
add ebx, eax
sub eax, edx
mov edi, edx
rol edi, 4
xor edi, eax
add edx, ebx
add esi, 0xfffffff4
add dword [ebp - 0x10], 0xc
mov eax, esi
mov dword [ebp - 0x14], esi
cmp esi, 0xc
ja 0x4bc03a
jmp 0x4bc21b
cmp dword [ebp - 0x14], 0xd
jb 0x4bc1f0
mov edx, edi
mov ebx, edi
mov esi, dword [ebp - 0x10]
add ebx, dword [esi]
add edx, dword [esi + 4]
add edi, dword [esi + 8]
mov eax, edi
rol eax, 4
sub ebx, edi
xor eax, ebx
add edi, edx
sub edx, eax
mov ecx, edi
mov edi, eax
rol edi, 6
xor edi, edx
add eax, ecx
mov esi, edi
rol esi, 8
sub ecx, edi
xor esi, ecx
add edi, eax
sub eax, esi
mov ebx, esi
rol ebx, 0x10
xor ebx, eax
add esi, edi
mov edx, ebx
rol edx, 0x13
sub edi, ebx
xor edx, edi
add ebx, esi
sub esi, edx
mov edi, edx
rol edi, 4
xor edi, esi
mov ecx, dword [ebp - 0x14]
add edx, ebx
add ecx, 0xfffffff4
add dword [ebp - 0x10], 0xc
mov eax, ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0xc
ja 0x4bc0ae
jmp 0x4bc1f4
cmp dword [ebp - 0x14], 0xd
jb 0x4bc246
mov edx, edi
mov ebx, edi
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
movzx esi, byte [ecx]
add esi, ebx
movzx eax, byte [ecx + 1]
shl eax, 8
add eax, esi
movzx esi, byte [ecx + 2]
shl esi, 0x10
movzx ebx, byte [ecx + 3]
shl ebx, 0x18
add ebx, esi
add ebx, eax
mov dword [ebp - 0x18], ebx
movzx esi, byte [ecx + 4]
add esi, edx
movzx eax, byte [ecx + 5]
shl eax, 8
add eax, esi
movzx ebx, byte [ecx + 6]
shl ebx, 0x10
movzx esi, byte [ecx + 7]
shl esi, 0x18
add esi, ebx
add esi, eax
movzx eax, byte [ecx + 8]
add eax, edi
movzx ebx, byte [ecx + 9]
shl ebx, 8
add ebx, eax
movzx edi, byte [ecx + 0xa]
shl edi, 0x10
movzx eax, byte [ecx + 0xb]
shl eax, 0x18
add eax, edi
add eax, ebx
mov ebx, eax
rol ebx, 4
mov ecx, dword [ebp - 0x18]
sub ecx, eax
xor ebx, ecx
add eax, esi
sub esi, ebx
mov edi, ebx
rol edi, 6
xor edi, esi
add ebx, eax
mov esi, edi
rol esi, 8
sub eax, edi
xor esi, eax
add edi, ebx
sub ebx, esi
mov eax, esi
rol eax, 0x10
xor eax, ebx
add esi, edi
mov edx, eax
rol edx, 0x13
sub edi, eax
xor edx, edi
add eax, esi
sub esi, edx
mov edi, edx
rol edi, 4
xor edi, esi
mov ecx, dword [ebp - 0x14]
mov ebx, eax
add edx, eax
add ecx, 0xfffffff4
add dword [ebp - 0x10], 0xc
mov eax, ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0xc
ja 0x4bc124
jmp 0x4bc24a
mov ebx, edi
mov edx, edi
cmp dword [ebp - 0x14], 0xc
ja case.default.0x4bc201
mov eax, dword [ebp - 0x14]
jmp dword [eax*4 + 0x52d3b0]
mov eax, 0xffffff
mov ecx, dword [ebp - 0x10]
and eax, dword [ecx]
jmp 0x4bc2e2
mov ebx, edi
mov edx, edi
cmp dword [ebp - 0x14], 0xc
ja case.default.0x4bc201
mov eax, dword [ebp - 0x14]
jmp dword [eax*4 + 0x52d37c]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 2]
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
jmp 0x4bc2e2
mov ebx, edi
mov edx, edi
cmp dword [ebp - 0x14], 0xc
ja case.default.0x4bc201
mov eax, dword [ebp - 0x14]
jmp dword [eax*4 + 0x52d348]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xb]
shl eax, 0x18
add edi, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xa]
shl eax, 0x10
add edi, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 9]
shl eax, 8
add edi, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 8]
add edi, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 6]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 5]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 4]
add edx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 3]
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 2]
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 1]
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
add ebx, eax
jmp case.default.0x4bc201
mov esi, dword [ebp - 0x10]
add edi, dword [esi + 8]
jmp 0x4bc367
mov esi, dword [ebp - 0x10]
movzx eax, byte [esi + 4]
jmp 0x4bc340
mov eax, 0xffffff
mov esi, dword [ebp - 0x10]
and eax, dword [esi + 4]
jmp 0x4bc340
mov esi, dword [ebp - 0x10]
movzx eax, byte [esi + 8]
jmp 0x4bc365
mov eax, 0xffffff
mov esi, dword [ebp - 0x10]
and eax, dword [esi + 8]
jmp 0x4bc365
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 4]
add edx, eax
mov eax, dword [ebp - 0x10]
add ebx, dword [eax]
jmp case.default.0x4bc201
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 6]
shl eax, 0x10
add edx, eax
mov esi, dword [ebp - 0x10]
movzx eax, word [esi + 4]
add edx, eax
jmp 0x4bc36a
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 8]
add edi, eax
mov esi, dword [ebp - 0x10]
jmp 0x4bc367
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xa]
shl eax, 0x10
add edi, eax
mov esi, dword [ebp - 0x10]
movzx eax, word [esi + 8]
add edi, eax
add edx, dword [esi + 4]
add ebx, dword [esi]
xor edi, edx
mov eax, edx
rol eax, 0xe
sub edi, eax
xor ebx, edi
mov eax, edi
rol eax, 0xb
sub ebx, eax
mov eax, ebx
rol eax, 0x19
xor edx, ebx
sub edx, eax
xor edi, edx
mov eax, edx
rol eax, 0x10
sub edi, eax
xor ebx, edi
mov eax, edi
rol eax, 4
sub ebx, eax
xor edx, ebx
rol ebx, 0xe
sub edx, ebx
xor edi, edx
rol edx, 0x18
sub edi, edx
mov eax, edi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret