Function at 0x4d8070
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x700fcd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
call fcn.004d82a0
call fcn.004d8770
push eax
mov dword [ebp - 0x2c], eax
call fcn.006abda0
add esp, 4
test eax, eax
jne 0x4d8293
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push edi
push ebx
mov dword [ebp - 4], eax
call fcn.004d58c0
mov ecx, edx
add esp, 8
mov esi, eax
mov dword [ebp - 0x10], ecx
or eax, ecx
jne 0x4d8272
mov eax, dword [0x7efdac]
cmp dword [eax], 0x400
jne 0x4d80f1
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x4d8272
push dword [ebp + 0x14]
push ebx
call fcn.004d7e50
mov ecx, dword [0x7efdac]
xor esi, esi
movzx edx, ax
add esp, 8
mov dword [ebp - 0x18], edx
movzx eax, word [ecx]
inc dword [ecx]
movzx ecx, dx
mov edx, eax
mov dword [ebp - 0x1c], edx
lea eax, [ecx + 0x10]
xor ecx, ecx
bts esi, eax
cmp eax, 0x20
cmovae ecx, esi
xor esi, ecx
cmp eax, 0x40
mov eax, edx
cmovae ecx, esi
cdq
or ecx, edx
or esi, eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
movzx eax, cx
mov ecx, dword [0x7efdac]
imul eax, eax, 0x5c
add ecx, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], ecx
mov edx, dword [ecx + 0x780]
inc edx
mov dword [ecx + 0x780], edx
mov ecx, edi
lea eax, [ecx + 1]
mov dword [ebp - 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d8164
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x784]
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x784], ecx
mov ecx, dword [0x7efdac]
mov eax, dword [ecx + 0x90]
cmp eax, edx
cmova edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0x90], edx
lea eax, [eax + eax*2]
shl eax, 5
add ecx, eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], ecx
mov dword [ecx + 0x1878], esi
mov esi, edi
mov dword [ecx + 0x187c], eax
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4d81c0
sub esi, edx
mov eax, 0x3f
cmp esi, eax
cmova esi, eax
lea eax, [ecx + 0x1888]
push esi
push edi
push eax
call fcn.006c1de0
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4d8231
mov dl, byte [ebx]
mov eax, 0x1505
test dl, dl
je 0x4d820c
mov ecx, eax
lea ebx, [ebx + 1]
shl eax, 5
add eax, ecx
movsx ecx, dl
mov dl, byte [ebx]
xor eax, ecx
test dl, dl
jne 0x4d81f7
mov dl, byte [edi]
test dl, dl
je 0x4d8227
mov ecx, eax
lea edi, [edi + 1]
shl eax, 5
add eax, ecx
movsx ecx, dl
mov dl, byte [edi]
xor eax, ecx
test dl, dl
jne 0x4d8212
and eax, 0x1f
mov eax, dword [eax*4 + 0x7443f0]
mov ecx, dword [ebp - 0x20]
and eax, 0xffffff
mov edx, dword [ebp - 0x18]
mov byte [ecx + esi + 0x1888], 0
mov dword [ecx + 0x18cc], eax
movzx eax, dx
mov dword [ecx + 0x1884], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0x18c8], esi
mov esi, dword [ebp - 0x24]
mov dword [ecx + 0x1880], eax
mov ecx, dword [0x7efdac]
mov byte [eax + ecx + 0x19878], dl
push dword [ebp - 0x2c]
call fcn.006abdfb
mov ecx, dword [ebp - 0xc]
add esp, 4
mov edx, dword [ebp - 0x10]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.006ac15c
int3