Function at 0x5e1ac0
Capabilities:
Encode data using xor

Disassembly:
push ecx
push esi
mov esi, edx
mov edx, dword [eax]
push edi
mov edi, dword [eax + 0xf64]
cmp edx, 7
ja case.default.0x5e1ad8
push ebx
push ebp
jmp dword [edx*4 + 0x5e1d64]
mov edx, dword [esp + 0x18]
lea eax, [esi + esi*2]
push eax
push edx
push ecx
call fcn.0065b3c0
add esp, 0xc
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
dec esi
js 0x5e1d5d
mov edi, dword [esp + 0x18]
lea edx, [ecx + 2]
sub ecx, edi
lea eax, [edi + 1]
lea edi, [ecx - 1]
lea ecx, [ecx]
movzx ecx, byte [eax + 1]
mov byte [edi + eax], cl
movzx ecx, byte [eax]
mov byte [edx - 1], cl
movzx ecx, byte [eax - 1]
mov byte [edx], cl
add eax, 3
add edx, 3
dec esi
jns 0x5e1b10
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
dec esi
js 0x5e1d5d
mov edx, dword [esp + 0x18]
add edx, 2
movzx ebx, byte [edx - 2]
movzx ebp, byte [edx - 1]
mov bx, word [eax + ebx*4 + 0x804]
or bx, word [eax + ebp*4 + 0x404]
movzx ebp, byte [edx]
or bx, word [eax + ebp*4 + 4]
add ecx, 2
xor bx, di
mov word [ecx - 2], bx
add edx, 3
dec esi
jns 0x5e1b40
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
dec esi
js 0x5e1d5d
mov edx, dword [esp + 0x18]
add edx, 2
jmp 0x5e1b90
movzx ebx, byte [edx - 2]
movzx ebp, byte [edx - 1]
mov ebx, dword [eax + ebx*4 + 0x804]
or ebx, dword [eax + ebp*4 + 0x404]
movzx ebp, byte [edx]
or ebx, dword [eax + ebp*4 + 4]
add ecx, 4
xor ebx, edi
mov dword [ecx - 4], ebx
add edx, 3
dec esi
jns 0x5e1b90
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
dec esi
js 0x5e1d5d
mov eax, dword [esp + 0x18]
add eax, 2
nop
movzx edx, byte [eax - 1]
movzx edi, byte [eax - 2]
lea edx, [edx + edx*8]
lea edx, [edx + edi*2]
movzx edi, byte [eax]
lea edi, [edi + edi*4]
add edx, edi
sar edx, 4
mov byte [ecx], dl
inc ecx
add eax, 3
dec esi
jns 0x5e1bd0
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
dec esi
js 0x5e1d5d
mov edi, dword [esp + 0x18]
add edi, 2
jmp 0x5e1c10
movzx edx, byte [edi - 2]
movzx ebx, byte [edi - 1]
mov edx, dword [eax + edx*4 + 0x804]
add edx, dword [eax + ebx*4 + 0x404]
movzx ebx, byte [edi]
add edx, dword [eax + ebx*4 + 4]
inc ecx
mov dl, byte [eax + edx*4 + 0xc04]
mov byte [ecx - 1], dl
add edi, 3
dec esi
jns 0x5e1c10
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret
movzx edi, byte [eax + 0xf71]
movzx edx, byte [eax + 0xf70]
imul edi, edi, 0x6c
movzx eax, byte [eax + 0xf72]
lea edx, [edx + edx*2 + 0x18]
lea edx, [edi + edx*8]
mov edi, eax
shl edi, 4
sub edi, eax
lea eax, [edx + edi*4]
cdq
and edx, 0xf
lea ebp, [edx + eax]
sar ebp, 4
xor dl, dl
dec esi
mov byte [esp + 0x13], 0x80
js 0x5e1d5d
mov edi, dword [esp + 0x18]
add edi, 2
lea esp, [esp]
movzx ebx, byte [edi - 1]
lea eax, [ebx + ebx*8]
movzx ebx, byte [edi - 2]
lea eax, [eax + ebx*2]
movzx ebx, byte [edi]
lea ebx, [ebx + ebx*4]
add eax, ebx
cmp eax, ebp
jge 0x5e1cae
or dl, byte [esp + 0x13]
shr byte [esp + 0x13], 1
jne 0x5e1cbe
mov byte [ecx], dl
inc ecx
xor dl, dl
mov byte [esp + 0x13], 0x80
add edi, 3
dec esi
jns 0x5e1c90
cmp byte [esp + 0x13], 0x80
jae 0x5e1d5d
pop ebp
pop ebx
pop edi
mov byte [ecx], dl
pop esi
pop ecx
ret
movzx edi, byte [eax + 0xf71]
movzx edx, byte [eax + 0xf70]
imul edi, edi, 0x6c
movzx eax, byte [eax + 0xf72]
lea edx, [edx + edx*2 + 0x18]
lea edx, [edi + edx*8]
mov edi, eax
shl edi, 4
sub edi, eax
lea eax, [edx + edi*4]
cdq
and edx, 0xf
lea ebp, [edx + eax]
sar ebp, 4
xor bl, bl
dec esi
mov byte [esp + 0x13], 1
js 0x5e1d5d
mov edi, dword [esp + 0x18]
add edi, 2
jmp 0x5e1d20
movzx edx, byte [edi - 1]
lea eax, [edx + edx*8]
movzx edx, byte [edi - 2]
lea eax, [eax + edx*2]
movzx edx, byte [edi]
lea edx, [edx + edx*4]
add eax, edx
cmp eax, ebp
jge 0x5e1d3e
or bl, byte [esp + 0x13]
shl byte [esp + 0x13], 1
jne 0x5e1d4e
mov byte [ecx], bl
inc ecx
xor bl, bl
mov byte [esp + 0x13], 1
add edi, 3
dec esi
jns 0x5e1d20
cmp byte [esp + 0x13], 1
jbe 0x5e1d5d
mov byte [ecx], bl
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret