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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x74121d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
call fcn.004fcbf0
call fcn.004fd110
push eax
mov dword [ebp - 0x2c], eax
call fcn.006eb0ee
add esp, 4
test eax, eax
jne 0x4fcbe3
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.004fa3a0
mov ecx, edx
add esp, 8
mov esi, eax
mov dword [ebp - 0x10], ecx
or eax, ecx
jne 0x4fcbc2
mov eax, dword [0x844c70]
cmp dword [eax], 0x400
jne 0x4fca41
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x4fcbc2
push dword [ebp + 0x14]
push ebx
call fcn.004fc720
mov ecx, dword [0x844c70]
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 [0x844c70]
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 0x4fcab4
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 [0x844c70]
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 0x4fcb10
sub esi, edx
mov eax, 0x3f
cmp esi, eax
cmova esi, eax
lea eax, [ecx + 0x1888]
push esi
push edi
push eax
call fcn.00700d60
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4fcb81
mov dl, byte [ebx]
mov eax, 0x1505
test dl, dl
je 0x4fcb5c
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 0x4fcb47
mov dl, byte [edi]
test dl, dl
je 0x4fcb77
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 0x4fcb62
and eax, 0x1f
mov eax, dword [eax*4 + 0x78a200]
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 [0x844c70]
mov byte [eax + ecx + 0x19878], dl
push dword [ebp - 0x2c]
call fcn.006eb149
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.006eb4aa
int3