Function at 0x563f40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov eax, dword [eax]
push edi
lea edi, [edx - 0x21524111]
add edi, eax
mov eax, dword [ebp + 0x14]
mov esi, edi
mov ecx, edi
mov dword [ebp - 4], esi
add edi, dword [eax]
test bl, 3
jne 0x56407d
cmp edx, 0xc
jbe switch.0x00563ffe
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
mov eax, edx
shr eax, 3
inc eax
mov dword [ebp + 8], eax
nop dword [eax + eax]
add edi, dword [ebx + 8]
add ecx, dword [ebx + 4]
mov esi, edi
mov eax, dword [ebx]
add ebx, 0xc
sub eax, edi
rol esi, 4
add eax, dword [ebp - 4]
add edi, ecx
xor esi, eax
sub ecx, esi
mov eax, esi
rol eax, 6
add esi, edi
xor eax, ecx
sub edi, eax
mov edx, eax
rol edx, 8
add eax, esi
xor edx, edi
sub esi, edx
mov ecx, edx
rol ecx, 0x10
add edx, eax
xor ecx, esi
mov esi, ecx
mov dword [ebp - 4], ecx
ror ecx, 0xd
sub eax, esi
xor ecx, eax
add esi, edx
sub edx, ecx
mov dword [ebp - 4], esi
mov edi, ecx
add ecx, esi
rol edi, 4
xor edi, edx
mov edx, dword [ebp + 0xc]
sub edx, 0xc
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], edx
jne 0x563f90
cmp edx, 0xc
ja 0x56431f
jmp dword [edx*4 + 0x564374]
add edi, dword [ebx + 8]
add ecx, dword [ebx + 4]
add esi, dword [ebx]
jmp 0x56431c
mov eax, dword [ebx + 8]
add ecx, dword [ebx + 4]
and eax, 0xffffff
add edi, eax
add esi, dword [ebx]
jmp 0x56431c
movzx eax, word [ebx + 8]
add ecx, dword [ebx + 4]
add edi, eax
add esi, dword [ebx]
jmp 0x56431c
movzx eax, byte [ebx + 8]
add ecx, dword [ebx + 4]
add edi, eax
add esi, dword [ebx]
jmp 0x56431c
mov eax, dword [ebx + 4]
and eax, 0xffffff
add ecx, eax
add esi, dword [ebx]
jmp 0x56431c
movzx eax, word [ebx + 4]
add ecx, eax
add esi, dword [ebx]
jmp 0x56431c
movzx eax, byte [ebx + 4]
add ecx, eax
add esi, dword [ebx]
jmp 0x56431c
mov eax, dword [ebx]
and eax, 0xffffff
jmp 0x56431a
test bl, 1
jne 0x5641cf
cmp edx, 0xc
jbe switch.0x00564133
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
mov eax, edx
shr eax, 3
inc eax
mov dword [ebp + 8], eax
movzx esi, word [ebx + 6]
movzx edx, word [ebx + 4]
movzx eax, word [ebx]
add edx, ecx
movzx ecx, word [ebx + 0xa]
shl esi, 0x10
add edx, esi
shl ecx, 0x10
movzx esi, word [ebx + 8]
add esi, edi
add esi, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
mov edi, esi
add ecx, eax
rol edi, 4
sub ecx, esi
add ebx, 0xc
add ecx, dword [ebp - 4]
add esi, edx
xor edi, ecx
sub edx, edi
mov eax, edi
add edi, esi
rol eax, 6
xor eax, edx
sub esi, eax
mov edx, eax
rol edx, 8
add eax, edi
xor edx, esi
sub edi, edx
mov esi, edx
rol esi, 0x10
add edx, eax
xor esi, edi
mov ecx, esi
sub eax, esi
ror ecx, 0xd
add esi, edx
xor ecx, eax
mov dword [ebp - 4], esi
sub edx, ecx
mov edi, ecx
rol edi, 4
add ecx, esi
xor edi, edx
mov edx, dword [ebp + 0xc]
sub edx, 0xc
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], edx
jne 0x5640a2
cmp edx, 0xc
ja 0x56431f
jmp dword [edx*4 + 0x5643a8]
movzx eax, word [ebx + 8]
movzx edx, word [ebx + 0xa]
add edi, eax
movzx eax, word [ebx + 4]
shl edx, 0x10
add ecx, eax
movzx eax, word [ebx]
add edi, edx
movzx edx, word [ebx + 6]
add esi, eax
shl edx, 0x10
add ecx, edx
movzx edx, word [ebx + 2]
shl edx, 0x10
add esi, edx
jmp 0x56431c
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, word [ebx + 8]
add edi, eax
movzx edx, word [ebx + 6]
movzx eax, word [ebx + 4]
shl edx, 0x10
add ecx, eax
add ecx, edx
movzx edx, word [ebx + 2]
movzx eax, word [ebx]
shl edx, 0x10
add eax, esi
add eax, edx
mov dword [ebp - 4], eax
jmp 0x56431f
movzx eax, byte [ebx + 8]
jmp 0x564178
movzx eax, byte [ebx + 6]
shl eax, 0x10
add ecx, eax
movzx eax, word [ebx + 4]
add ecx, eax
jmp case.0x564133.4
movzx eax, byte [ebx + 4]
add ecx, eax
jmp case.0x564133.4
movzx eax, byte [ebx + 2]
shl eax, 0x10
add esi, eax
movzx eax, word [ebx]
jmp 0x56431a
cmp edx, 0xc
jbe switch.0x005642b3
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
mov eax, edx
shr eax, 3
inc eax
mov dword [ebp + 8], eax
nop dword [eax + eax]
movzx esi, byte [ebx + 7]
movzx eax, byte [ebx + 6]
movzx edx, byte [ebx + 4]
add edx, ecx
shl esi, 8
movzx ecx, byte [ebx + 0xb]
add esi, eax
movzx eax, byte [ebx + 5]
shl ecx, 8
shl esi, 8
add esi, eax
movzx eax, byte [ebx + 0xa]
add ecx, eax
shl esi, 8
movzx eax, byte [ebx + 9]
add edx, esi
movzx esi, byte [ebx + 8]
shl ecx, 8
add esi, edi
add ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 8
add esi, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 8
mov edi, esi
add ecx, eax
rol edi, 4
movzx eax, byte [ebx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx]
shl ecx, 8
add ebx, 0xc
add ecx, eax
sub ecx, esi
add esi, edx
add ecx, dword [ebp - 4]
xor edi, ecx
sub edx, edi
mov eax, edi
add edi, esi
rol eax, 6
xor eax, edx
sub esi, eax
mov edx, eax
rol edx, 8
add eax, edi
xor edx, esi
sub edi, edx
mov esi, edx
rol esi, 0x10
add edx, eax
xor esi, edi
mov ecx, esi
sub eax, esi
ror ecx, 0xd
add esi, edx
xor ecx, eax
mov dword [ebp - 4], esi
sub edx, ecx
mov edi, ecx
rol edi, 4
add ecx, esi
xor edi, edx
mov edx, dword [ebp + 0xc]
sub edx, 0xc
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], edx
jne 0x5641f0
cmp edx, 0xc
ja 0x56431f
jmp dword [edx*4 + 0x5643dc]
movzx eax, byte [ebx + 0xb]
shl eax, 0x18
add edi, eax
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, byte [ebx + 9]
shl eax, 8
add edi, eax
movzx eax, byte [ebx + 8]
add edi, eax
movzx eax, byte [ebx + 7]
shl eax, 0x18
add ecx, eax
movzx eax, byte [ebx + 6]
shl eax, 0x10
add ecx, eax
movzx eax, byte [ebx + 5]
shl eax, 8
add ecx, eax
movzx eax, byte [ebx + 4]
add ecx, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
add esi, eax
movzx eax, byte [ebx + 2]
shl eax, 0x10
add esi, eax
movzx eax, byte [ebx + 1]
shl eax, 8
add esi, eax
movzx eax, byte [ebx]
add esi, eax
mov dword [ebp - 4], esi
xor edi, ecx
mov eax, ecx
rol eax, 0xe
sub edi, eax
mov eax, edi
mov esi, edi
xor esi, dword [ebp - 4]
rol eax, 0xb
sub esi, eax
xor ecx, esi
mov eax, esi
ror eax, 7
sub ecx, eax
mov eax, ecx
xor edi, ecx
rol eax, 0x10
sub edi, eax
mov eax, edi
mov edx, edi
rol eax, 4
xor edx, esi
sub edx, eax
mov eax, edx
xor ecx, edx
rol eax, 0xe
sub ecx, eax
mov eax, ecx
xor edi, ecx
ror eax, 8
sub edi, eax
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret