Function at 0x10007cf0
Capabilities:
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ebp, dword [esi + 0x78]
mov edi, edx
mov dword [esp + 0x20], ebp
test ebp, ebp
jle 0x10007d1a
mov ecx, dword [esi + 0x74]
lea eax, [ebp - 1]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp eax, edi
je 0x103767ac
lea eax, [ebp + 1]
mov dword [esi + 0x78], eax
mov ecx, dword [0x10669094]
cmp ebp, ecx
jge 0x1000808d
mov al, byte [edi + 0xc]
cmp al, 6
jne 0x103767ca
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, [ebp*2]
add ecx, ebp
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 ebx, dword [edi + 4]
cmp byte [esi], 0x5c
mov dword [esp + 0x1c], esi
je 0x1000864d
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x10007dce
lea edi, [ebx - 1]
add edi, esi
cmp edi, esi
jb 0x10007dce
lea esp, [esp]
cmp byte [edi], 0x5c
je 0x10007f7f
dec edi
cmp edi, esi
jae 0x10007dc0
push ebx
push esi
call sym.php5.dll__estrndup
mov edi, dword [0x10668f98]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x78]
add esp, 8
lea ecx, [eax + 1]
mov dword [edi + 0x78], ecx
mov ecx, dword [0x10669094]
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3c], 6
mov dword [esp + 0x28], eax
cmp eax, ecx
jge 0x100080e7
lea eax, [ebx + 1]
push 1
push eax
push dword [esp + 0x34]
call dword [sym.php5.dll_zend_new_interned_string]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
movq xmm0, qword [esp + 0x3c]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x74]
shl ecx, 3
add esp, 0xc
movq qword [eax + ecx], xmm0
movq xmm0, qword [esp + 0x38]
movq qword [eax + ecx + 8], xmm0
mov eax, dword [edi + 0x74]
mov dword [eax + ecx + 8], 2
mov eax, dword [edi + 0x74]
mov byte [eax + ecx + 0xd], 1
mov eax, dword [edi + 0x74]
mov dword [eax + ecx + 0x10], 0
mov eax, dword [edi + 0x74]
mov dword [eax + ecx + 0x14], 0xffffffff
mov eax, dword [0x10668f98]
mov edx, dword [eax + 0x74]
add edx, ecx
mov dword [esp + 0x24], edx
mov edi, dword [edx]
cmp edi, dword [0x106690c0]
jae 0x100081e4
cmp edi, dword [0x106690bc]
jb 0x100081e4
mov ecx, dword [edi - 0x24]
lea eax, [ebx + 1]
push eax
mov dword [edx + 0x10], ecx
call sym.php5.dll__emalloc
lea edx, [esi + ebx]
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, eax
cmp esi, edx
jae 0x10007ec2
movzx eax, byte [esi]
inc esi
mov al, byte [eax + 0x10545478]
mov byte [ecx], al
inc ecx
cmp esi, edx
jb 0x10007eb1
mov byte [ecx], 0
mov esi, dword [0x10668f98]
mov dword [esp + 0x34], ebx
mov edi, dword [esi + 0x78]
mov byte [esp + 0x3c], 6
lea eax, [edi + 1]
mov dword [esi + 0x78], eax
mov ecx, dword [0x10669094]
cmp edi, ecx
jge 0x100080ba
push 1
lea eax, [ebx + 1]
push eax
push dword [esp + 0x34]
call dword [sym.php5.dll_zend_new_interned_string]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x74]
movq xmm0, qword [esp + 0x3c]
lea ecx, [edi + edi*2]
shl ecx, 3
add esp, 0xc
movq qword [eax + ecx], xmm0
movq xmm0, qword [esp + 0x38]
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 esi, dword [edi]
cmp esi, dword [0x106690c0]
jae 0x10008112
cmp esi, dword [0x106690bc]
jb 0x10008112
mov edx, dword [esi - 0x24]
mov dword [edi + 0x10], edx
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
sub edi, esi
je 0x10007dce
push ebx
push esi
call sym.php5.dll__estrndup
lea edx, [eax + edi]
add esp, 8
mov dword [esp + 0x28], eax
mov ecx, eax
cmp eax, edx
jae 0x10007fb5
mov edi, edi
movzx eax, byte [ecx]
inc ecx
mov al, byte [eax + 0x10545478]
mov byte [ecx - 1], al
cmp ecx, edx
jb 0x10007fa0
mov eax, dword [esp + 0x28]
mov ecx, dword [0x10668f98]
lea edx, [esp + 0x30]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], eax
mov byte [esp + 0x3c], 6
call fcn.10008bd0
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
lea edx, [eax + ecx*8]
mov dword [esp + 0x2c], edx
mov ecx, dword [edx]
mov dword [esp + 0x28], ecx
cmp ecx, dword [0x106690c0]
jae 0x100082d1
cmp ecx, dword [0x106690bc]
jb 0x100082d1
mov ecx, dword [ecx - 0x24]
push ebx
lea eax, [ebx + 1]
push esi
push eax
mov dword [edx + 0x10], ecx
call sym.php5.dll__emalloc
add esp, 4
push eax
call sym.php5.dll_zend_str_tolower_copy
mov ecx, dword [0x10668f98]
add esp, 0xc
lea edx, [esp + 0x30]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], eax
mov byte [esp + 0x3c], 6
call fcn.10008bd0
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
lea edx, [eax + ecx*8]
mov dword [esp + 0x2c], edx
mov ecx, dword [edx]
mov dword [esp + 0x28], ecx
cmp ecx, dword [0x106690c0]
jae 0x100083a9
cmp ecx, dword [0x106690bc]
jb 0x100083a9
mov ecx, dword [ecx - 0x24]
cmp dword [esp + 0x44], 0
mov dword [edx + 0x10], ecx
je 0x10007f75
inc edi
add esi, edi
sub ebx, edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ebx
jmp 0x10007dce
mov eax, ebp
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 0x10007d2e
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 0x10007eeb
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 [edi + 0x74]
call sym.php5.dll__erealloc
add esp, 0xc
mov dword [edi + 0x74], eax
jmp 0x10007e06
mov ebx, dword [edi + 4]
inc ebx
mov edx, 0x1505
cmp ebx, 8
jb 0x1000819b
mov eax, ebx
shr eax, 3
mov ebp, 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 ebx, 8
dec ebp
jne 0x10008127
mov ebp, dword [esp + 0x20]
cmp ebx, 4
jne switch.0x100085e7
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
mov dword [edi + 0x10], edx
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x30
ret
mov eax, dword [edx + 4]
inc eax
mov ecx, 0x1505
cmp eax, 8
jb 0x10008290
mov esi, eax
shr eax, 3
mov ebp, ecx
mov ebx, eax
nop
movsx eax, byte [edi]
mov ecx, ebp
shl ecx, 5
add ecx, ebp
add ecx, eax
movsx eax, byte [edi + 1]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [edi + 2]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [edi + 3]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [edi + 4]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [edi + 5]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [edi + 6]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [edi + 7]
mov ebp, ecx
shl ebp, 5
add ebp, ecx
add ebp, eax
add edi, 8
sub esi, 8
dec ebx
jne 0x10008200
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
cmp eax, 4
jne switch.0x1000861a
mov eax, ecx
shl ecx, 5
add ecx, eax
movsx eax, byte [edi]
add ecx, eax
inc edi
mov eax, ecx
shl ecx, 5
add ecx, eax
movsx eax, byte [edi]
add ecx, eax
inc edi
mov eax, ecx
shl ecx, 5
add ecx, eax
movsx eax, byte [edi]
add ecx, eax
inc edi
mov eax, ecx
shl ecx, 5
add ecx, eax
movsx eax, byte [edi]
add ecx, eax
jmp case.0x1000861a.0
mov eax, dword [edx + 4]
inc eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 8
mov eax, 0x1505
mov dword [esp + 0x14], eax
jb 0x10008391
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, esi
shr ebx, 3
mov edx, eax
lea esp, [esp]
movsx eax, byte [ebp]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 1]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 2]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 3]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 4]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 5]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 6]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 7]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
add ebp, 8
sub esi, 8
dec ebx
jne 0x10008300
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
jmp dword [ebx*4 + 0x10008658]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jmp 0x10008004
mov eax, dword [edx + 4]
inc eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 8
mov eax, 0x1505
mov dword [esp + 0x14], eax
jb 0x10008465
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, esi
shr ebx, 3
mov edx, eax
movsx eax, byte [ebp]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 1]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 2]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 3]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 4]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 5]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebp + 6]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebp + 7]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
add ebp, 8
sub esi, 8
dec ebx
jne 0x100083d4
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
jmp dword [ebx*4 + 0x10008678]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jmp 0x1000806d
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
mov ecx, dword [esp + 0x14]
add ecx, eax
jmp 0x10008004
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
inc ecx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 5
add dword [esp + 0x14], eax
movsx eax, byte [ecx]
mov ecx, dword [esp + 0x14]
add ecx, eax
jmp 0x1000806d
jmp dword [ebx*4 + 0x10008698]
jmp dword [eax*4 + 0x100086b8]
dec ebx
inc esi
mov dword [esp + 0x1c], esi
jmp 0x10007da8
lea eax, [ebp*2]
add eax, ebp
cmp dword [ecx + eax*8 - 4], 0xffffffff
jne 0x10007d1a
dec ebp
mov dword [esp + 0x20], ebp
jmp 0x10007d96
cmp al, 8
jne 0x10007d4d
jmp 0x10007d39