Function at 0x10008940
Capabilities:
Hash data using djb2

Disassembly:
sub esp, 0x1c
push ebx
push ebp
mov ebx, edx
mov edx, dword [ecx + 0x78]
push esi
push edi
mov dword [esp + 0x14], ebx
test edx, edx
jle 0x10008968
mov esi, dword [ecx + 0x74]
lea eax, [edx - 1]
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
cmp eax, ebx
je 0x103767fa
mov edx, ebx
call fcn.10008bd0
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
lea ecx, [edi + 1]
push ecx
mov dword [esp + 0x14], eax
call sym.php5.dll__emalloc
lea edx, [esi + edi]
add esp, 4
mov ebp, eax
mov ecx, ebp
cmp esi, edx
jae 0x100089a1
nop
movzx eax, byte [esi]
inc esi
mov al, byte [eax + 0x10545478]
mov byte [ecx], al
inc ecx
cmp esi, edx
jb 0x10008990
mov byte [ecx], 0
mov eax, dword [ebx + 4]
mov ecx, dword [0x10668f98]
lea edx, [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
mov byte [esp + 0x24], 6
call fcn.10008bd0
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
mov esi, dword [eax + ecx*8]
lea edi, [eax + ecx*8]
cmp esi, dword [0x106690c0]
jae 0x10008aaf
cmp esi, dword [0x106690bc]
jb 0x10008aaf
mov edx, dword [esi - 0x24]
mov dword [edi + 0x10], edx
mov ecx, dword [ebx + 4]
mov edi, dword [ebx]
test ecx, ecx
je 0x10008aa3
lea eax, [ecx - 1]
add eax, edi
cmp eax, edi
jb 0x10008aa3
lea esp, [esp]
cmp byte [eax], 0x5c
je 0x10008a26
dec eax
cmp eax, edi
jae 0x10008a10
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
lea esi, [eax + 1]
sub edi, esi
add edi, ecx
lea eax, [edi + 1]
push eax
call sym.php5.dll__emalloc
lea edx, [edi + esi]
add esp, 4
mov ebx, eax
mov ecx, ebx
cmp esi, edx
jae 0x10008a55
movzx eax, byte [esi]
inc esi
mov al, byte [eax + 0x10545478]
mov byte [ecx], al
inc ecx
cmp esi, edx
jb 0x10008a44
mov byte [ecx], 0
mov ecx, dword [0x10668f98]
lea edx, [esp + 0x18]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
mov byte [esp + 0x24], 6
call fcn.10008bd0
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
mov esi, dword [eax + ecx*8]
lea edi, [eax + ecx*8]
cmp esi, dword [0x106690bc]
jb 0x10376810
cmp esi, dword [0x106690c0]
jae 0x10376810
mov edx, dword [esi - 0x24]
mov dword [edi + 0x10], edx
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov ebp, dword [edi + 4]
inc ebp
mov edx, 0x1505
cmp ebp, 8
jb switch.0x10008b3a
mov ebx, ebp
shr ebx, 3
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 ebx
jne 0x10008ac6
mov ebx, dword [esp + 0x14]
jmp dword [ebp*4 + 0x10008ba4]
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 0x100089ef
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [esi]
add edx, eax
inc esi
jmp case.0x10008b3a.5
lea eax, [edx + edx*2]
cmp dword [esi + eax*8 - 4], 0xffffffff
jne 0x10008968
lea eax, [edx - 1]
jmp 0x1000896f
mov ebx, dword [edi + 4]
inc ebx
mov edx, 0x1505
cmp ebx, 8
jb switch.0x10376893
mov ebp, ebx
shr ebp, 3
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 ebx, 8
dec ebp
jne 0x10376823
jmp dword [ebx*4 + 0x103768fa]
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 0x10008aa0