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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x74581d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
call fcn.004ff0f0
call fcn.004ff610
push eax
mov dword [ebp - 0x2c], eax
call fcn.006eefbe
add esp, 4
test eax, eax
jne 0x4ff0e3
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.004fc8a0
mov ecx, edx
add esp, 8
mov esi, eax
mov dword [ebp - 0x10], ecx
or eax, ecx
jne 0x4ff0c2
mov eax, dword [0x84ad0c]
cmp dword [eax], 0x400
jne 0x4fef41
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x4ff0c2
push dword [ebp + 0x14]
push ebx
call fcn.004fec20
mov ecx, dword [0x84ad0c]
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 [0x84ad0c]
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 0x4fefb4
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 [0x84ad0c]
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 0x4ff010
sub esi, edx
mov eax, 0x3f
cmp esi, eax
cmova esi, eax
lea eax, [ecx + 0x1888]
push esi
push edi
push eax
call fcn.00704c30
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4ff081
mov dl, byte [ebx]
mov eax, 0x1505
test dl, dl
je 0x4ff05c
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 0x4ff047
mov dl, byte [edi]
test dl, dl
je 0x4ff077
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 0x4ff062
and eax, 0x1f
mov eax, dword [eax*4 + 0x78f608]
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 [0x84ad0c]
mov byte [eax + ecx + 0x19878], dl
push dword [ebp - 0x2c]
call fcn.006ef019
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.006ef37a
int3