Function at 0x568850
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [ebp + 8]
add eax, edx
add eax, 0xdeadbeef
test cl, 3
je 0x5688f2
test cl, 1
jne 0x56896f
mov esi, ecx
mov edi, edx
cmp edx, 0xd
jb 0x568a6f
mov edx, eax
mov ecx, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], esi
add ecx, dword [esi]
add edx, dword [esi + 4]
add eax, dword [esi + 8]
sub ecx, eax
mov esi, eax
rol esi, 4
xor esi, ecx
add eax, edx
sub edx, esi
mov edi, esi
rol edi, 6
xor edi, edx
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 edx, ecx
rol edx, 0x13
xor edx, edi
add ecx, ebx
sub ebx, edx
mov eax, edx
rol eax, 4
xor eax, ebx
add edx, ecx
mov edi, dword [ebp - 0x10]
add edi, 0xfffffff4
mov esi, dword [ebp - 0x14]
add esi, 0xc
mov dword [ebp - 0x10], edi
cmp edi, 0xc
ja 0x568889
mov edi, dword [ebp - 0x10]
jmp 0x568a73
mov esi, ecx
mov edi, edx
cmp edx, 0xd
jb 0x568a4b
mov edx, eax
mov ecx, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], esi
add ecx, dword [esi]
add edx, dword [esi + 4]
add eax, dword [esi + 8]
sub ecx, eax
mov ebx, eax
rol ebx, 4
xor ebx, ecx
add eax, edx
sub edx, ebx
mov esi, ebx
rol esi, 6
xor esi, edx
add ebx, eax
sub eax, esi
mov edi, esi
rol edi, 8
xor edi, eax
add esi, ebx
mov ecx, edi
rol ecx, 0x10
sub ebx, edi
xor ecx, ebx
add edi, esi
sub esi, ecx
mov edx, ecx
rol edx, 0x13
xor edx, esi
add ecx, edi
sub edi, edx
mov eax, edx
rol eax, 4
xor eax, edi
add edx, ecx
mov edi, dword [ebp - 0x10]
add edi, 0xfffffff4
mov esi, dword [ebp - 0x14]
add esi, 0xc
mov dword [ebp - 0x10], edi
cmp edi, 0xc
ja 0x568906
mov edi, dword [ebp - 0x10]
jmp 0x568a4f
mov ebx, ecx
mov esi, edx
cmp edx, 0xd
jb 0x568a8c
mov edx, eax
mov ecx, eax
mov edi, eax
mov dword [ebp - 0x10], esi
movzx esi, byte [ebx]
add esi, ecx
movzx eax, byte [ebx + 1]
shl eax, 8
add eax, esi
movzx esi, byte [ebx + 2]
shl esi, 0x10
add esi, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
add eax, esi
mov dword [ebp - 0x14], eax
movzx eax, byte [ebx + 4]
add eax, edx
movzx edx, byte [ebx + 5]
shl edx, 8
add edx, eax
movzx eax, byte [ebx + 6]
shl eax, 0x10
add eax, edx
movzx esi, byte [ebx + 7]
shl esi, 0x18
add esi, eax
movzx eax, byte [ebx + 8]
add eax, edi
movzx ecx, byte [ebx + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add eax, ecx
movzx ecx, byte [ebx + 0xb]
shl ecx, 0x18
add ecx, eax
mov eax, dword [ebp - 0x14]
sub eax, ecx
mov edx, ecx
rol edx, 4
xor edx, eax
add ecx, esi
sub esi, edx
mov edi, edx
rol edi, 6
xor edi, esi
add edx, ecx
sub ecx, edi
mov esi, edi
rol esi, 8
xor esi, ecx
add edi, edx
mov ecx, esi
rol ecx, 0x10
sub edx, esi
xor ecx, edx
add esi, edi
sub edi, ecx
mov edx, ecx
rol edx, 0x13
xor edx, edi
add ecx, esi
sub esi, edx
mov edi, edx
rol edi, 4
xor edi, esi
add edx, ecx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff4
add ebx, 0xc
mov dword [ebp - 0x10], eax
cmp eax, 0xc
ja 0x568985
mov esi, dword [ebp - 0x10]
mov eax, edi
jmp 0x568a90
mov ecx, eax
mov edx, eax
cmp edi, 0xc
ja case.default.0x568a5c
mov ebx, edi
mov edi, esi
jmp dword [ebx*4 + 0x5968b0]
mov esi, 0xffffff
and esi, dword [edi]
jmp 0x568b00
mov ecx, eax
mov edx, eax
cmp edi, 0xc
ja case.default.0x568a5c
mov ebx, edi
mov edi, esi
jmp dword [ebx*4 + 0x59687c]
movzx esi, byte [edi]
jmp 0x568b00
mov ecx, eax
mov edx, eax
cmp esi, 0xc
ja case.default.0x568a5c
jmp dword [esi*4 + 0x596848]
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 edx, esi
movzx esi, byte [ebx + 6]
shl esi, 0x10
add edx, esi
movzx esi, byte [ebx + 5]
shl esi, 8
add edx, esi
movzx esi, byte [ebx + 4]
add edx, 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
jmp case.default.0x568a5c
movzx esi, byte [edi + 4]
jmp 0x568b44
movzx esi, byte [edi + 8]
jmp 0x568b55
add eax, dword [edi + 8]
jmp case.0x568a5c.8
mov esi, 0xffffff
and esi, dword [edi + 4]
jmp 0x568b44
mov esi, 0xffffff
and esi, dword [edi + 8]
jmp 0x568b55
movzx esi, byte [edi + 2]
shl esi, 0x10
add ecx, esi
movzx esi, word [edi]
jmp 0x568b00
movzx esi, byte [edi + 6]
shl esi, 0x10
add edx, esi
movzx esi, word [edi + 4]
add edx, esi
jmp case.0x568a5c.4
movzx esi, byte [edi + 0xa]
shl esi, 0x10
add eax, esi
movzx esi, word [edi + 8]
add eax, esi
add edx, dword [edi + 4]
add ecx, dword [edi]
xor eax, edx
mov esi, edx
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, 8
pop esi
pop edi
pop ebx
pop ebp
ret