Function at 0x4e6473
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x288]
sub esp, 0x308
mov eax, dword [0x516ad4]
push ebx
mov dword [ebp + 0x284], eax
push esi
xor eax, eax
xor ecx, ecx
inc eax
mov esi, 0x11b
push edi
mov edx, eax
and dl, 0x80
mov byte [ebp + ecx - 0x7c], al
mov byte [ebp + ecx + 0x83], al
mov byte [ebp + eax + 0x184], cl
inc ecx
neg dl
lea edi, [eax + eax]
sbb edx, edx
and edx, esi
xor edx, edi
xor eax, edx
cmp eax, 1
jne 0x4e6499
xor ecx, ecx
pop edi
mov edx, eax
and dl, 0x80
neg dl
mov byte [ecx + 0x51cd28], al
sbb edx, edx
and edx, esi
add eax, eax
xor eax, edx
inc ecx
cmp ecx, 0x1e
jb 0x4e64c6
xor ebx, ebx
mov dword [ebp - 0x80], ebx
jmp 0x4e64eb
mov ebx, dword [ebp - 0x80]
test bl, bl
je 0x4e6507
movzx eax, bl
movzx eax, byte [ebp + eax + 0x184]
lea ecx, [ebp + 0x83]
sub ecx, eax
movzx eax, byte [ecx]
jmp 0x4e6509
xor eax, eax
lea ecx, [eax + eax]
xor ecx, eax
shl ecx, 1
xor ecx, eax
shl ecx, 1
xor ecx, eax
shl ecx, 1
xor eax, ecx
mov ecx, eax
sar ecx, 8
xor cl, al
xor cl, 0x63
lea eax, [ebx*4]
lea edx, [eax + 0x51e648]
mov byte [ebx + 0x51f248], cl
mov byte [edx + 1], cl
mov byte [edx], cl
mov byte [eax + 0x51ee4b], cl
mov byte [eax + 0x51ee48], cl
mov byte [eax + 0x51cd4b], cl
mov byte [eax + 0x51cd4a], cl
mov byte [eax + 0x51f34a], cl
mov byte [eax + 0x51f349], cl
je 0x4e6574
movzx edx, cl
movzx edx, byte [ebp + edx + 0x184]
movzx edx, byte [ebp + edx - 0x63]
jmp 0x4e6576
xor edx, edx
test cl, cl
mov byte [eax + 0x51e64b], dl
mov byte [eax + 0x51ee4a], dl
mov byte [eax + 0x51cd49], dl
mov byte [eax + 0x51f348], dl
je 0x4e65a4
movzx ecx, cl
movzx ecx, byte [ebp + ecx + 0x184]
movzx ecx, byte [ebp + ecx - 0x7b]
jmp 0x4e65a6
xor ecx, ecx
mov byte [eax + 0x51e64a], cl
mov byte [eax + 0x51ee49], cl
mov byte [eax + 0x51cd48], cl
mov byte [eax + 0x51f34b], cl
movzx esi, bl
mov ecx, esi
shl ecx, 3
xor ecx, esi
shl ecx, 2
xor ecx, esi
shl ecx, 1
mov edx, ecx
sar edx, 8
xor dl, cl
xor dl, 5
je 0x4e660d
mov ecx, esi
shl ecx, 3
xor ecx, esi
shl ecx, 2
xor ecx, esi
shl ecx, 1
mov edx, ecx
sar edx, 8
movzx edx, dl
movzx ecx, cl
xor edx, ecx
xor edx, 5
movzx ecx, byte [ebp + edx + 0x184]
lea edx, [ebp + 0x83]
sub edx, ecx
mov bl, byte [edx]
jmp 0x4e660f
xor bl, bl
test bl, bl
mov ecx, dword [ebp - 0x80]
mov byte [ecx + 0x51d548], bl
je 0x4e662e
movzx ecx, bl
movzx ecx, byte [ebp + ecx + 0x184]
movzx edx, byte [ebp + ecx - 0x14]
jmp 0x4e6630
xor edx, edx
movzx esi, bl
mov ecx, esi
shl ecx, 2
test bl, bl
mov byte [eax + 0x51de4a], dl
mov byte [eax + 0x51c929], dl
mov byte [eax + 0x51d148], dl
mov byte [eax + 0x51ea4b], dl
mov byte [ecx + 0x51da4a], dl
mov byte [ecx + 0x51d649], dl
mov byte [ecx + 0x51e248], dl
mov byte [ecx + 0x51f74b], dl
je 0x4e667b
movzx edx, byte [ebp + esi + 0x184]
movzx edx, byte [ebp + edx + 0x4b]
jmp 0x4e667d
xor edx, edx
test bl, bl
mov byte [eax + 0x51de48], dl
mov byte [eax + 0x51c92b], dl
mov byte [eax + 0x51d14a], dl
mov byte [eax + 0x51ea49], dl
mov byte [ecx + 0x51da48], dl
mov byte [ecx + 0x51d64b], dl
mov byte [ecx + 0x51e24a], dl
mov byte [ecx + 0x51f749], dl
je 0x4e66c0
movzx edx, byte [ebp + esi + 0x184]
movzx edx, byte [ebp + edx + 0x72]
jmp 0x4e66c2
xor edx, edx
test bl, bl
mov byte [eax + 0x51de49], dl
mov byte [eax + 0x51c928], dl
mov byte [eax + 0x51d14b], dl
mov byte [eax + 0x51ea4a], dl
mov byte [ecx + 0x51da49], dl
mov byte [ecx + 0x51d648], dl
mov byte [ecx + 0x51e24b], dl
mov byte [ecx + 0x51f74a], dl
je 0x4e6705
movzx edx, byte [ebp + esi + 0x184]
movzx edx, byte [ebp + edx + 0x63]
jmp 0x4e6707
xor edx, edx
inc dword [ebp - 0x80]
cmp dword [ebp - 0x80], 0x100
mov byte [eax + 0x51de4b], dl
mov byte [eax + 0x51c92a], dl
mov byte [eax + 0x51d149], dl
mov byte [eax + 0x51ea48], dl
mov byte [ecx + 0x51da4b], dl
mov byte [ecx + 0x51d64a], dl
mov byte [ecx + 0x51e249], dl
mov byte [ecx + 0x51f748], dl
jl 0x4e64e8
mov ecx, dword [ebp + 0x284]
pop esi
pop ebx
call fcn.004eae3c
add ebp, 0x288
leave
ret