Function at 0x10002550
Capabilities:
Hash data using djb2

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x40]
call sym.php5.dll_zend_unmangle_property_name_ex
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov ebp, dword [ebp]
xor eax, eax
add esp, 0x14
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x13], al
cmp byte [ecx], al
je 0x10002835
mov edx, dword [esp + 0x18]
inc edx
mov ebx, eax
mov esi, 0x1505
cmp edx, 8
jb switch.0x100025f9
mov edi, edx
shr edi, 3
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 1]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 2]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 3]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 4]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 5]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 6]
imul esi, esi, 0x21
add esi, eax
movsx eax, byte [ecx + 7]
imul esi, esi, 0x21
add esi, eax
add ecx, 8
sub edx, 8
dec edi
jne 0x100025a9
jmp dword [edx*4 + 0x10002864]
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
mov edi, dword [0x10669254]
and ecx, esi
mov ebp, dword [eax + ecx*4]
test ebp, ebp
jne 0x100026d6
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
cmp edi, ecx
je 0x10002667
test edi, edi
je 0x10002667
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x100027b5
test ebx, ebx
jne 0x1000282a
mov eax, dword [esp + 0x14]
or dword [0x1066944c], 0xffffffff
mov dword [0x10669440], eax
mov eax, dword [esp + 0x18]
mov dword [0x1066943c], 0x100
mov dword [0x10669444], eax
mov dword [0x10669448], esi
mov dword [0x10669458], ecx
mov ebx, 0x1066943c
test ebx, ebx
je 0x10002835
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x100026f0
xor ecx, ecx
inc ecx
mov eax, dword [ebx]
and eax, 0x700
cmp eax, 0x100
jne 0x100026fa
test ecx, ecx
je 0x10002859
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x14]
cmp dword [ebp + 0x20], eax
je 0x10002735
cmp dword [ebp], esi
je 0x10002714
mov ebp, dword [ebp + 0x18]
test ebp, ebp
jne 0x100026da
jmp 0x1000264e
cmp byte [ecx], 0x2a
je 0x100026b3
jmp 0x103a2691
cmp eax, 0x200
jne 0x103a26dd
push edi
push dword [ebx + 0x1c]
call sym.php5.dll_zend_check_protected
pop ecx
pop ecx
mov ecx, eax
jmp 0x100026c4
mov edx, dword [esp + 0x18]
lea ecx, [edx + 1]
cmp dword [ebp + 4], ecx
jne 0x100026e4
push ecx
push eax
push dword [ebp + 0x20]
call sub.MSVCR110.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x1000283d
mov ebx, dword [ebp + 8]
test dword [ebx], 0x20000
jne 0x10002808
mov eax, dword [ebx]
and eax, 0x700
cmp eax, 0x100
jne 0x10002780
xor edx, edx
inc edx
mov eax, edx
xor ebp, ebp
test eax, eax
je 0x10002850
test dword [ebx], 0x800
je 0x100026a3
jmp 0x103a2680
movsx eax, byte [ecx]
imul esi, esi, 0x21
add esi, eax
inc ecx
jmp case.0x100025f9.5
cmp eax, 0x200
jne 0x100027f0
mov edx, dword [ebx + 0x1c]
mov ecx, edi
mov eax, edx
test edx, edx
je 0x1000279d
cmp eax, edi
je 0x10002752
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10002792
test edi, edi
je 0x100027ac
cmp ecx, edx
je 0x10002752
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x100027a1
xor ebp, ebp
xor edx, edx
mov eax, ebp
inc edx
jmp 0x10002759
cmp eax, edi
jne 0x100027e8
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push esi
inc eax
push eax
push dword [esp + 0x20]
lea eax, [edi + 0x40]
push eax
call sym.php5.dll_zend_hash_quick_find
add esp, 0x14
test eax, eax
je 0x10002811
mov edi, dword [0x10669254]
mov ecx, dword [esp + 0x1c]
jmp 0x10002667
mov eax, dword [eax + 0xc]
jmp 0x1000265f
cmp eax, 0x400
jne 0x1000284b
cmp dword [esp + 0x1c], edi
jne 0x10002846
test edi, edi
je 0x1000284b
xor ebp, ebp
jmp 0x10002761
xor ebp, ebp
mov ebx, ebp
jmp 0x10002650
mov eax, dword [esp + 0x20]
test dword [eax], 0x400
je 0x100027d9
mov edi, dword [0x10669254]
mov ebx, eax
jmp 0x100026a3
cmp byte [esp + 0x13], 0
je 0x100026a3
or eax, 0xffffffff
jmp 0x100026ce
mov eax, dword [esp + 0x14]
jmp 0x100026e4
cmp dword [ebx + 0x1c], edi
je 0x100027fd
xor edx, edx
inc edx
xor ebp, ebp
mov byte [esp + 0x13], dl
jmp 0x10002650
or ebp, 0xffffffff
jmp 0x100026cc
test dword [ebx], 0x400
je 0x10002650
jmp 0x100026a3
test dword [ebx], 0x400
je 0x10002835
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x30]
inc eax
inc ecx
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x103a26c9
test dl, dl
je 0x103a26c2
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x103a26c9
add ecx, 2
add eax, 2
test dl, dl
jne 0x103a26a6
xor ecx, ecx
mov eax, ebp
inc ecx
jmp 0x103a26d0
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x100026b6
jmp 0x10002835
cmp eax, 0x400
jne 0x10002859
mov eax, dword [esp + 0x2c]
cmp dword [eax], edi
je 0x103a26f9
cmp dword [ebx + 0x1c], edi
jne 0x10002859
test edi, edi
jmp 0x100026c6