Function at 0x10049cb0
Capabilities:
Hash data using djb2

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ebx, dword [esi + 0x78]
mov edi, edx
test ebx, ebx
jle 0x10049cd6
mov ecx, dword [esi + 0x74]
lea eax, [ebx - 1]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp eax, edi
je 0x10376723
lea eax, [ebx + 1]
mov dword [esi + 0x78], eax
mov ecx, dword [0x10669094]
cmp ebx, ecx
jge 0x10049e74
mov al, byte [edi + 0xc]
cmp al, 6
jne 0x10376745
mov eax, dword [edi + 4]
push 1
inc eax
push eax
push dword [edi]
call dword [sym.php5.dll_zend_new_interned_string]
add esp, 0xc
mov dword [edi], eax
mov eax, dword [esi + 0x74]
movq xmm0, qword [edi]
lea ecx, [ebx + ebx*2]
movq qword [eax + ecx*8], xmm0
movq xmm0, qword [edi + 8]
movq qword [eax + ecx*8 + 8], xmm0
mov eax, dword [esi + 0x74]
mov dword [eax + ecx*8 + 8], 2
mov eax, dword [esi + 0x74]
mov byte [eax + ecx*8 + 0xd], 1
mov eax, dword [esi + 0x74]
mov dword [eax + ecx*8 + 0x10], 0
mov eax, dword [esi + 0x74]
mov dword [eax + ecx*8 + 0x14], 0xffffffff
mov esi, dword [edi]
mov ebp, dword [edi + 4]
cmp byte [esi], 0x5c
je 0x10376752
lea eax, [ebp + 1]
push eax
call sym.php5.dll__emalloc
lea edx, [esi + ebp]
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, eax
cmp esi, edx
jae 0x10049d84
movzx eax, byte [esi]
inc esi
mov al, byte [eax + 0x10545478]
mov byte [ecx], al
inc ecx
cmp esi, edx
jb 0x10049d73
mov byte [ecx], 0
mov esi, dword [0x10668f98]
mov dword [esp + 0x1c], ebp
mov edi, dword [esi + 0x78]
mov byte [esp + 0x24], 6
lea eax, [edi + 1]
mov dword [esi + 0x78], eax
mov ecx, dword [0x10669094]
cmp edi, ecx
jge 0x10049eae
push 1
lea eax, [ebp + 1]
push eax
push dword [esp + 0x18]
call dword [sym.php5.dll_zend_new_interned_string]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x74]
movq xmm0, qword [esp + 0x24]
lea ecx, [edi + edi*2]
shl ecx, 3
add esp, 0xc
movq qword [eax + ecx], xmm0
movq xmm0, qword [esp + 0x20]
movq qword [eax + ecx + 8], xmm0
mov eax, dword [esi + 0x74]
mov dword [eax + ecx + 8], 2
mov eax, dword [esi + 0x74]
mov byte [eax + ecx + 0xd], 1
mov eax, dword [esi + 0x74]
mov dword [eax + ecx + 0x10], 0
mov eax, dword [esi + 0x74]
mov dword [eax + ecx + 0x14], 0xffffffff
mov eax, dword [0x10668f98]
mov edi, dword [eax + 0x74]
add edi, ecx
mov dword [esp + 0x14], edi
mov esi, dword [edi]
cmp esi, dword [0x106690c0]
jae 0x10049edb
cmp esi, dword [0x106690bc]
jb 0x10049edb
mov edx, dword [esi - 0x24]
mov dword [edi + 0x10], edx
mov eax, dword [0x10668f98]
lea edx, [ebx + ebx*2]
mov ecx, dword [eax + 0x74]
mov eax, dword [eax + 0x80]
mov dword [ecx + edx*8 + 0x14], eax
mov eax, dword [0x10668f98]
inc dword [eax + 0x80]
mov eax, dword [0x10668f98]
test byte [eax + 0xc], 0x10
jne 0x10376767
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x1c
ret
mov eax, ebx
sub eax, ecx
and eax, 0xfffffff0
add ecx, 0x10
add eax, ecx
mov ecx, dword [0x10660270]
mov dword [0x10669094], eax
mov edx, dword [esi + 0x74]
lea eax, [eax + eax*2]
shl eax, 3
cmp dword [ecx], 0
push eax
je 0x10376737
call fcn.1000d2d0
add esp, 4
mov dword [esi + 0x74], eax
jmp 0x10049cea
mov eax, edi
sub eax, ecx
and eax, 0xfffffff0
add eax, 0x10
add eax, ecx
mov dword [0x10669094], eax
lea eax, [eax + eax*2]
push 0
shl eax, 3
push eax
push dword [esi + 0x74]
call sym.php5.dll__erealloc
add esp, 0xc
mov dword [esi + 0x74], eax
jmp 0x10049dad
mov ebp, dword [edi + 4]
inc ebp
mov edx, 0x1505
cmp ebp, 8
jb switch.0x10049f64
mov eax, ebp
shr eax, 3
mov edi, eax
movsx eax, byte [esi]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [esi + 1]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [esi + 2]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [esi + 3]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [esi + 4]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [esi + 5]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [esi + 6]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [esi + 7]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
add esi, 8
sub ebp, 8
dec edi
jne 0x10049ef0
mov edi, dword [esp + 0x14]
jmp dword [ebp*4 + 0x10049fcc]
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
jmp 0x10049e38
lea eax, [ebx + ebx*2]
cmp dword [ecx + eax*8 - 4], 0xffffffff
jne 0x10049cd6
dec ebx
jmp 0x10049d4c
mov eax, dword [ecx + 0xc]
push edx
call eax
add esp, 8
jmp 0x10049ea6
cmp al, 8
jne 0x10049d09
jmp 0x10049cf5
dec ebp
push ebp
inc esi
push esi
call sym.php5.dll_zend_str_tolower_dup
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x10049d87
mov ecx, dword [eax + 0x7c]
test ecx, ecx
je 0x10049e6a
mov eax, dword [eax + 0x80]
push 0
shl eax, 2
push eax
push ecx
call sym.php5.dll__erealloc
mov ecx, dword [0x10668f98]
add esp, 0xc
mov dword [ecx + 0x7c], eax
mov ecx, dword [0x10668f98]
mov edx, dword [ecx + 0x80]
mov ecx, dword [ecx + 0x7c]
mov dword [ecx + edx*4 - 4], 0
jmp 0x10049e6a