Function at 0x10065a00
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov ebx, ecx
mov esi, edx
xor ecx, ecx
push edi
mov dword [esp + 0x10], ebx
test esi, esi
je 0x10065a76
mov eax, dword [esi + 4]
cmp byte [eax], cl
je 0x103a2700
cmp dword [ebx + 0xc], 0
jne 0x10065adc
push 0x28
call sym.php5.dll__emalloc
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
mov dword [ebx + 0xc], eax
call sym.php5.dll__zend_hash_init
add esp, 0x14
push 2
push dword [ebp + 0xc]
xor eax, eax
mov dword [esp + 0x18], eax
push 5
lea eax, [esp + 0x1c]
push eax
push dword [esi + 0xc]
mov eax, dword [esi + 8]
inc eax
push eax
push dword [esi + 4]
push dword [ebx + 0xc]
call sym.php5.dll__zend_hash_quick_add_or_update
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
lea esi, [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], edx
lea edi, [eax + 1]
mov dword [esp + 0x20], eax
mov ecx, 0x1505
cmp edi, 8
jae case.default.0x10065a97
jmp dword [edi*4 + 0x10065b6c]
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x10065a25
push dword [ebp + 0xc]
mov eax, dword [esi + 8]
push dword [esi + 0xc]
inc eax
push eax
push dword [esi + 4]
push dword [ebx + 0xc]
call sym.php5.dll_zend_hash_quick_find
add esp, 0x14
test eax, eax
jne 0x10065a47
jmp 0x10065a6f
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
jmp case.0x10065a97.5
mov ebx, edi
shr ebx, 3
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 1]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 2]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 3]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 4]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 5]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 6]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 7]
imul ecx, ecx, 0x21
add ecx, eax
add edx, 8
sub edi, 8
dec ebx
jne 0x10065b12
mov ebx, dword [esp + 0x10]
jmp switch.0x10065a97
push ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
push ecx
push dword [esi + 8]
push eax
call sym.php5.dll_zend_unmangle_property_name_ex
add esp, 0x14
cmp dword [esp + 0xc], 0
je 0x10065a25
mov edx, dword [esp + 0x10]
mov ecx, edx
mov dword [esp + 0x1c], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x103a2737
sub ecx, esi
mov dword [esp + 0x20], ecx
lea esi, [ecx + 1]
mov ecx, 0x1505
cmp esi, 8
jb switch.0x103a27a6
mov edi, esi
shr edi, 3
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 1]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 2]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 3]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 4]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 5]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 6]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 7]
imul ecx, ecx, 0x21
add ecx, eax
add edx, 8
sub esi, 8
dec edi
jne 0x103a2756
jmp dword [esi*4 + 0x103a27f4]
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
lea esi, [esp + 0x18]
jmp 0x10065ad3