Function at 0x4d39d0
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
sub esp, 0x2c
push ebx
push esi
push edi
test eax, eax
jne 0x4d39f6
mov ecx, 0x61707865
mov edx, 0x3320646e
mov esi, 0x79622d32
mov edi, 0x6b206574
jmp 0x4d3a01
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], 0xa
mov ebx, dword [eax]
mov dword [ebp - 4], ebx
mov ebx, dword [eax + 4]
mov dword [ebp - 0x18], ebx
mov ebx, dword [eax + 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [eax + 0xc]
mov dword [ebp - 8], ebx
mov ebx, dword [eax + 0x10]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [eax + 0x14]
mov dword [ebp - 0x20], ebx
mov ebx, dword [eax + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, dword [eax + 0x1c]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ebx
mov ebx, dword [eax]
mov dword [ebp - 0x28], ebx
mov ebx, dword [eax + 4]
mov dword [ebp + 0x14], ebx
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x20]
add eax, ecx
mov ebx, dword [ebp - 0x20]
rol eax, 7
xor dword [ebp - 8], eax
mov eax, dword [ebp - 8]
add eax, ecx
rol eax, 9
xor dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 8]
rol eax, 0xd
xor ebx, eax
mov eax, dword [ebp + 0x10]
add eax, ebx
mov dword [ebp - 0x20], ebx
ror eax, 0xe
xor ecx, eax
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
rol eax, 7
xor dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
add eax, edx
rol eax, 9
xor ebx, eax
mov eax, dword [ebp + 0xc]
add eax, ebx
mov dword [ebp - 0x10], ebx
rol eax, 0xd
xor ecx, eax
mov dword [ebp - 4], ecx
lea eax, [ebx + ecx]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
ror eax, 0xe
xor edx, eax
lea eax, [ebx + esi]
rol eax, 7
xor ecx, eax
mov dword [ebp - 0xc], ecx
lea eax, [ecx + esi]
mov ecx, dword [ebp - 0x18]
rol eax, 9
xor ecx, eax
mov eax, dword [ebp - 0xc]
add eax, ecx
mov dword [ebp - 0x18], ecx
rol eax, 0xd
xor ebx, eax
lea eax, [ebx + ecx]
mov ecx, dword [ebp - 0x14]
ror eax, 0xe
xor esi, eax
mov eax, dword [ebp - 0x1c]
add eax, edi
rol eax, 7
xor ecx, eax
mov dword [ebp - 0x14], ecx
lea eax, [ecx + edi]
rol eax, 9
xor dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
rol eax, 0xd
xor ecx, eax
mov eax, dword [ebp + 0x14]
add eax, ecx
mov dword [ebp - 0x1c], ecx
ror eax, 0xe
xor edi, eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x24]
rol eax, 7
xor dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x24]
rol eax, 9
mov ecx, dword [ebp - 0x18]
xor ecx, eax
mov eax, dword [ebp - 4]
add eax, ecx
mov dword [ebp - 0x18], ecx
rol eax, 0xd
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov eax, dword [ebp - 0x18]
add eax, ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 8]
ror eax, 0xe
xor dword [ebp - 0x24], eax
lea eax, [ecx + edx]
rol eax, 7
xor ebx, eax
mov dword [ebp - 0x28], ebx
lea eax, [ebx + edx]
rol eax, 9
xor dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
add eax, ebx
rol eax, 0xd
xor ecx, eax
mov eax, dword [ebp + 0x14]
add eax, ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x1c]
ror eax, 0xe
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, esi
rol eax, 7
xor ecx, eax
mov dword [ebp - 0x1c], ecx
lea eax, [ecx + esi]
rol eax, 9
xor dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [ebp + 0xc]
rol eax, 0xd
xor ecx, eax
mov eax, dword [ebp + 0x10]
add eax, ecx
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp - 0x20]
ror eax, 0xe
xor esi, eax
mov eax, dword [ebp - 0xc]
add eax, edi
rol eax, 7
xor ecx, eax
mov dword [ebp - 0x20], ecx
lea eax, [ecx + edi]
rol eax, 9
xor dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, ecx
mov ecx, dword [ebp - 0xc]
rol eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x24]
ror eax, 0xe
xor edi, eax
dec dword [ebp - 0x2c]
jne 0x4d3a54
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0xc], edi
pop edi
mov dword [eax + 8], esi
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x10], ebx
pop esi
mov dword [eax + 4], edx
mov dword [eax + 0x1c], ecx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret