Function at 0x1031ae00
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
and dword [esp + 4], 0
push ebx
mov dword [esp + 0x14], edx
mov edx, ecx
mov ecx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], edx
mov eax, ecx
mov esi, 0x1505
cmp ecx, 8
jb switch.0x1031ae90
mov ebx, ecx
shr ebx, 3
mov edx, ecx
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 1]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 2]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 3]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 4]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 5]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 6]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [edi + 7]
imul esi, esi, 0x21
add esi, eax
add edi, 8
sub edx, 8
dec ebx
jne 0x1031ae34
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
jmp dword [eax*4 + 0x1031b09c]
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
inc edi
movsx eax, byte [edi]
imul esi, esi, 0x21
add esi, eax
lea eax, [edx + 0x18]
lea edx, [esp + 0x10]
push edx
push esi
push ecx
push dword [ebp + 8]
mov dword [esp + 0x28], eax
push eax
call sym.php5.dll_zend_hash_quick_find
mov edi, dword [ebp + 0x10]
add esp, 0x14
test eax, eax
jne 0x1031b05d
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
cmp eax, ecx
jne 0x1031afee
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
test eax, eax
je 0x1031afae
lea ecx, [esp + 0x10]
push ecx
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
call sym.php5.dll_zend_hash_quick_find
add esp, 0x14
test eax, eax
jne 0x1031afc9
mov ebx, dword [esp + 0x10]
test byte [ebx + 0xc], 2
je 0x1031af71
mov edx, ebx
mov ecx, edi
call fcn.1031d410
test al, al
jne 0x1031afc9
mov ecx, ebx
call fcn.1031c690
push eax
push ecx
mov ecx, edi
call fcn.1031c690
pop ecx
push eax
push str.Declaration_of__s_must_be_compatible_with__s
push 0x40
call sym.php5.dll_zend_error
add esp, 0x10
jmp 0x1031afc9
test byte [edi + 0xc], 2
je 0x1031afc9
mov edx, edi
mov ecx, ebx
call fcn.1031d410
test al, al
jne 0x1031b095
mov ecx, ebx
call fcn.1031c690
push eax
push ecx
mov ecx, edi
call fcn.1031c690
pop ecx
push eax
push str.Declaration_of__s_must_be_compatible_with__s
push 0x40
call sym.php5.dll_zend_error
add esp, 0x10
jmp 0x1031b095
push 0x28
call sym.php5.dll__emalloc
pop ecx
push 0
push 0
push 0
push 2
push eax
mov dword [ebx], eax
call sym.php5.dll__zend_hash_init_ex
add esp, 0x14
push 1
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x14]
push 0x94
push edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [eax]
call sym.php5.dll__zend_hash_quick_add_or_update
add esp, 0x20
jmp 0x1031b095
test byte [ebx + 0xc], 2
je 0x1031b020
test byte [eax + 0x14], 0x80
jne 0x1031b020
mov edx, ebx
mov ecx, edi
call fcn.1031d410
test al, al
jne 0x1031b05d
mov ecx, ebx
call fcn.1031c690
push eax
push ecx
mov ecx, edi
call fcn.1031c690
pop ecx
push eax
push str.Declaration_of__s_must_be_compatible_with__s
jmp 0x1031b044
test byte [edi + 0xc], 2
jne 0x1031af77
mov eax, dword [eax + 0x14]
mov edx, 0x120
and eax, edx
cmp eax, edx
jne 0x1031b050
push dword [ecx + 4]
push dword [esp + 0x20]
push str.Trait_method__s_has_not_been_applied__because_there_are_collisions_with_other_trait_methods_on__s
push 0x40
call sym.php5.dll_zend_error
add esp, 0x10
jmp 0x1031b05d
mov edx, ebx
mov ecx, edi
call fcn.100061d0
and dword [edi + 0x10], 0
push edi
call sym.php5.dll_function_add_ref
pop ecx
push 1
lea eax, [ebp + 0x10]
push eax
push 0x94
push edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x34]
call sym.php5.dll__zend_hash_quick_add_or_update
push dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
call fcn.1031ab00
add esp, 0x28
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret