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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73370d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
call fcn.004e3830
call fcn.004e3d90
push eax
mov dword [ebp - 0x2c], eax
call fcn.006de95e
add esp, 4
test eax, eax
jne 0x4e3823
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.004e0f40
mov ecx, edx
add esp, 8
mov esi, eax
mov dword [ebp - 0x10], ecx
or eax, ecx
jne 0x4e3802
mov eax, dword [0x8354c0]
cmp dword [eax], 0x400
jne 0x4e3681
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x4e3802
push dword [ebp + 0x14]
push ebx
call fcn.004e3360
mov ecx, dword [0x8354c0]
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 [0x8354c0]
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 0x4e36f4
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 [0x8354c0]
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 0x4e3750
sub esi, edx
mov eax, 0x3f
cmp esi, eax
cmova esi, eax
lea eax, [ecx + 0x1888]
push esi
push edi
push eax
call fcn.006f45d0
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e37c1
mov dl, byte [ebx]
mov eax, 0x1505
test dl, dl
je 0x4e379c
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 0x4e3787
mov dl, byte [edi]
test dl, dl
je 0x4e37b7
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 0x4e37a2
and eax, 0x1f
mov eax, dword [eax*4 + 0x77a740]
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 [0x8354c0]
mov byte [eax + ecx + 0x19878], dl
push dword [ebp - 0x2c]
call fcn.006de9b9
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.006ded1a
int3