Function at 0x5e1e50
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebp
mov ebp, dword [esp + 0x10]
push esi
mov esi, edx
mov edx, dword [eax + 0xf64]
mov dword [esp + 0xc], edx
mov edx, dword [eax]
cmp edx, 7
ja case.default.0x5e1e71
push ebx
jmp dword [edx*4 + 0x5e20f0]
dec esi
js 0x5e20e7
add ebp, 2
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4]
mov byte [ebp - 2], dl
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4 + 1]
mov byte [ebp - 1], dl
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4 + 2]
mov byte [ebp], dl
add ebp, 3
inc ecx
dec esi
jns 0x5e1e82
pop ebx
pop esi
pop ebp
add esp, 8
ret
dec esi
js 0x5e20e7
add ebp, 2
lea ebx, [ebx]
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4 + 2]
mov byte [ebp - 2], dl
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4 + 1]
mov byte [ebp - 1], dl
movzx eax, byte [ecx]
movzx edx, byte [edi + eax*4]
mov byte [ebp], dl
add ebp, 3
inc ecx
dec esi
jns 0x5e1ec0
pop ebx
pop esi
pop ebp
add esp, 8
ret
dec esi
mov dword [esp + 0xc], ebp
js 0x5e20e7
lea esp, [esp]
movzx edx, byte [ecx]
movzx ebx, byte [edi + edx*4 + 1]
movzx ebp, byte [edi + edx*4]
mov bx, word [eax + ebx*4 + 0x404]
or bx, word [eax + ebp*4 + 0x804]
lea edx, [edi + edx*4]
movzx edx, byte [edx + 2]
or bx, word [eax + edx*4 + 4]
mov edx, dword [esp + 0xc]
xor bx, word [esp + 0x10]
add edx, 2
mov word [edx - 2], bx
inc ecx
dec esi
mov dword [esp + 0xc], edx
jns 0x5e1f00
pop ebx
pop esi
pop ebp
add esp, 8
ret
dec esi
mov dword [esp + 0xc], ebp
js 0x5e20e7
movzx edx, byte [ecx]
movzx ebx, byte [edi + edx*4 + 1]
movzx ebp, byte [edi + edx*4 + 2]
mov ebx, dword [eax + ebx*4 + 0x404]
or ebx, dword [eax + ebp*4 + 4]
lea edx, [edi + edx*4]
movzx edx, byte [edx]
or ebx, dword [eax + edx*4 + 0x804]
mov edx, dword [esp + 0xc]
xor ebx, dword [esp + 0x10]
add edx, 4
mov dword [edx - 4], ebx
inc ecx
dec esi
mov dword [esp + 0xc], edx
jns 0x5e1f52
pop ebx
pop esi
pop ebp
add esp, 8
ret
dec esi
js 0x5e20e7
sub ecx, ebp
lea ecx, [ecx]
movzx eax, byte [ecx + ebp]
mov dl, byte [edi + eax*4 + 3]
mov byte [ebp], dl
inc ebp
dec esi
jns 0x5e1fa0
pop ebx
pop esi
pop ebp
add esp, 8
ret
dec esi
js 0x5e20e7
lea ecx, [ecx]
movzx edx, byte [ecx]
movzx ebx, byte [edi + edx*4 + 2]
mov ebx, dword [eax + ebx*4 + 0x804]
lea edx, [edi + edx*4]
mov dword [esp + 0x10], edx
movzx edx, byte [edx + 1]
add ebx, dword [eax + edx*4 + 0x404]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx]
add ebx, dword [eax + edx*4 + 4]
inc ebp
mov dl, byte [eax + ebx*4 + 0xc04]
mov byte [ebp - 1], dl
inc ecx
dec esi
jns 0x5e1fc0
pop ebx
pop esi
pop ebp
add esp, 8
ret
movzx ebx, byte [eax + 0xf71]
movzx edx, byte [eax + 0xf70]
imul ebx, ebx, 0x6c
movzx eax, byte [eax + 0xf72]
lea edx, [edx + edx*2 + 0x18]
lea edx, [ebx + edx*8]
mov ebx, eax
shl ebx, 4
sub ebx, eax
lea eax, [edx + ebx*4]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
xor dl, dl
dec esi
mov dword [esp + 0x10], eax
mov al, 0x80
js 0x5e20e7
jmp 0x5e2050
movzx ebx, byte [ecx]
movzx ebx, byte [edi + ebx*4 + 3]
cmp ebx, dword [esp + 0x10]
jge 0x5e2060
or dl, al
shr al, 1
jne 0x5e206c
mov byte [ebp], dl
inc ebp
xor dl, dl
mov al, 0x80
inc ecx
dec esi
jns 0x5e2050
cmp al, 0x80
jae 0x5e20e7
pop ebx
pop esi
mov byte [ebp], dl
pop ebp
add esp, 8
ret
movzx ebx, byte [eax + 0xf71]
movzx edx, byte [eax + 0xf70]
imul ebx, ebx, 0x6c
movzx eax, byte [eax + 0xf72]
lea edx, [edx + edx*2 + 0x18]
lea edx, [ebx + edx*8]
mov ebx, eax
shl ebx, 4
sub ebx, eax
lea eax, [edx + ebx*4]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
xor dl, dl
dec esi
mov dword [esp + 0x10], eax
mov al, 1
js 0x5e20e7
mov edi, edi
movzx ebx, byte [ecx]
movzx ebx, byte [edi + ebx*4 + 3]
cmp ebx, dword [esp + 0x10]
jge 0x5e20d0
or dl, al
add al, al
jne 0x5e20dc
mov byte [ebp], dl
inc ebp
xor dl, dl
mov al, 1
inc ecx
dec esi
jns 0x5e20c0
cmp al, 1
jbe 0x5e20e7
mov byte [ebp], dl
pop ebx
pop esi
pop ebp
add esp, 8
ret