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

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, dword [0x10668f84]
mov dword [esp + 0x18], edx
mov ebp, ecx
test edi, edi
jle 0x10010cc6
mov eax, dword [0x10668f8c]
mov edi, dword [eax + edi*4 - 4]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10010ab9
mov ebx, dword [0x10668f98]
mov esi, dword [ebx + 0x28]
lea eax, [esi + 1]
mov dword [ebx + 0x28], eax
mov eax, dword [0x1066908c]
cmp esi, eax
jae 0x10010b27
mov eax, dword [ebx + 0x24]
lea ecx, [esi*8]
sub ecx, esi
xorps xmm0, xmm0
lea esi, [eax + ecx*4]
mov dword [esp + 0x10], esi
movq qword [esi], xmm0
movq qword [esi + 8], xmm0
movq qword [esi + 0x10], xmm0
mov dword [esi + 0x18], 0
mov eax, dword [0x10668f94]
mov dword [esi + 0x14], eax
mov byte [esi + 0x1b], 8
cmp dword [edi], 0
jne 0x1001099e
mov word [esi + 0x18], 0x83d
mov byte [esi + 0x1a], 8
mov eax, dword [0x106690a0]
dec eax
mov dword [0x106690a0], eax
mov dword [esi + 8], eax
test edx, edx
je 0x10010add
mov ebx, dword [0x10668f98]
mov ecx, dword [ebx + 0x34]
mov eax, ecx
shl eax, 4
mov edx, 0xfffffff0
sub edx, eax
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x34], eax
mov dword [esi + 0xc], edx
mov byte [esi + 0x1b], 4
mov dword [ecx], 4
mov eax, dword [esi + 0xc]
mov dword [ecx + 8], eax
mov dword [ecx + 0x18], 0
mov eax, dword [edi + 4]
mov dword [esi + 0x10], eax
mov eax, dword [0x106690a4]
mov edx, dword [0x10668f98]
lea ecx, [eax + 1]
cmp ecx, dword [edx + 0x3c]
ja 0x10010ad0
sub eax, dword [edi + 4]
mov ecx, dword [0x10668f84]
mov dword [0x106690a4], eax
test ecx, ecx
jle 0x10010996
mov esi, dword [0x10660270]
mov eax, dword [0x10668f8c]
dec ecx
mov dword [0x10668f84], ecx
cmp dword [esi], 0
mov edi, dword [eax + ecx*4]
je 0x103789b5
test edi, edi
je 0x10010996
mov eax, dword [sym.php5.dll_zend_block_interruptions]
test eax, eax
jne 0x10010ccd
mov edx, dword [edi - 8]
add edi, 0xfffffff8
and edx, 0xfffffffc
cmp edx, 0x110
jae 0x10010c4f
cmp dword [esi + 0x4c], 0x20000
jae 0x10010c4f
mov eax, edx
shr eax, 3
lea ecx, [esi + eax*4]
mov eax, dword [ecx + 0x48]
mov dword [edi + 8], eax
mov dword [ecx + 0x48], edi
add dword [esi + 0x4c], edx
mov eax, dword [sym.php5.dll_zend_unblock_interruptions]
test eax, eax
jne 0x10010cd4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [esi + 0x18], 0x3c
mov al, byte [ebp]
mov byte [esi + 0x19], al
cmp dword [ebp], 1
jne 0x10378941
mov ebx, dword [0x10668f98]
mov ecx, dword [ebx + 0x78]
mov dword [esp + 0x20], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x78], eax
mov edx, dword [0x10669094]
cmp ecx, edx
jge 0x10010aed
mov al, byte [ebp + 0x14]
cmp al, 6
jne 0x10378934
mov eax, dword [ebp + 0xc]
push 1
inc eax
push eax
push dword [ebp + 8]
call dword [sym.php5.dll_zend_new_interned_string]
add esp, 0xc
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x74]
movq xmm0, qword [ebp + 8]
mov edx, dword [esp + 0x20]
lea ecx, [edx + edx*2]
movq qword [eax + ecx*8], xmm0
movq xmm0, qword [ebp + 0x10]
movq qword [eax + ecx*8 + 8], xmm0
mov eax, dword [ebx + 0x74]
mov dword [eax + ecx*8 + 8], 2
mov eax, dword [ebx + 0x74]
mov byte [eax + ecx*8 + 0xd], 1
mov eax, dword [ebx + 0x74]
mov dword [eax + ecx*8 + 0x10], 0
mov eax, dword [ebx + 0x74]
mov dword [eax + ecx*8 + 0x14], 0xffffffff
mov dword [esi + 4], edx
mov byte [esi + 0x1a], 8
mov eax, dword [0x106690a0]
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
mov ebx, dword [eax + ecx*8]
lea ebp, [eax + ecx*8]
mov dword [esp + 0x14], ebp
cmp ebx, dword [0x106690c0]
jae 0x10010b4e
cmp ebx, dword [0x106690bc]
jb 0x10010b4e
mov edx, dword [ebx - 0x24]
mov dword [ebp + 0x10], edx
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov eax, dword [0x10668f98]
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 ebx, dword [0x10668f98]
test byte [ebx + 0xc], 0x10
je 0x100108c2
jmp 0x1037894c
test ebp, ebp
je 0x10010840
cmp dword [ebp], 8
jne 0x10010840
jmp 0x103788d7
mov dword [edx + 0x3c], ecx
mov eax, dword [0x106690a4]
jmp 0x10010912
cmp dword [esp + 0x24], 0
jne 0x100108bc
jmp 0x10378990
mov eax, ecx
mov ecx, dword [0x10660270]
sub eax, edx
and eax, 0xfffffff0
add edx, 0x10
add eax, edx
mov dword [0x10669094], eax
mov edx, dword [ebx + 0x74]
lea eax, [eax + eax*2]
shl eax, 3
cmp dword [ecx], 0
push eax
je 0x10378926
call fcn.1000d2d0
add esp, 4
mov dword [ebx + 0x74], eax
jmp 0x100109d3
test byte [ebx + 0xc], 0x10
jne 0x10378909
lea edx, [eax*4]
mov ecx, ebx
mov dword [0x1066908c], edx
call fcn.10052680
mov edx, dword [esp + 0x20]
jmp 0x1001085c
mov eax, dword [ebp + 4]
inc eax
mov edx, 0x1505
cmp eax, 8
jb switch.0x10010be7
mov ebp, eax
shr eax, 3
mov esi, eax
movsx eax, byte [ebx]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebx + 1]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebx + 2]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebx + 3]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebx + 4]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebx + 5]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
movsx eax, byte [ebx + 6]
mov ecx, edx
shl ecx, 5
add ecx, edx
add ecx, eax
movsx eax, byte [ebx + 7]
mov edx, ecx
shl edx, 5
add edx, ecx
add edx, eax
add ebx, 8
sub ebp, 8
dec esi
jne 0x10010b67
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
jmp dword [eax*4 + 0x10010cec]
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
jmp 0x10010a7e
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
mov eax, edx
shl edx, 5
add edx, eax
movsx eax, byte [ebx]
add edx, eax
inc ebx
jmp case.0x10010be7.3
sub dword [esi + 0x34], edx
mov eax, dword [edx + edi]
lea ebx, [edx + edi]
test al, 1
je 0x103789c3
mov eax, dword [edi + 4]
test al, 1
je 0x10378b0f
cmp dword [edi + 4], 3
je 0x10378c64
mov dword [edi], edx
mov dword [edx + edi + 4], edx
mov edx, dword [edi]
mov dword [esp + 0x20], edx
cmp edx, 0x110
jae 0x10378c81
shr edx, 3
sub edx, 2
lea ebx, [esi + 0xc8]
lea ebx, [ebx + edx*8]
cmp dword [ebx + 8], ebx
je 0x10010cdd
mov eax, dword [ebx + 0xc]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], eax
mov dword [eax + 8], edi
mov dword [ebx + 0xc], edi
mov eax, dword [sym.php5.dll_zend_unblock_interruptions]
test eax, eax
je 0x10010996
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp eax
xor edi, edi
jmp 0x10010834
call eax
jmp 0x10010953
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp eax
mov eax, 1
mov ecx, edx
shl eax, cl
or dword [esi + 0x10], eax
jmp 0x10010ca1
cmp dword [edi + 4], 0
je 0x103788ec
push str.Clone_method_does_not_require_arguments
push 2
call sym.php5.dll_zend_error
add esp, 8
mov eax, dword [ebp + 8]
mov ebx, dword [0x10668f98]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebx + 0x24]
lea esi, [eax + ecx*4]
jmp 0x100108c2
push str.Ran_out_of_opcode_space__nYou_should_probably_consider_writing_this_huge_script_into_a_file__n
call dword [sym.php5.dll_zend_printf]
add esp, 4
push 0x1b5
push str.Zendzend_opcode.c
call sym.php5.dll__zend_bailout
mov eax, dword [ecx + 0xc]
push edx
call eax
add esp, 8
jmp 0x10010b1f
cmp al, 8
jne 0x100109f4
jmp 0x100109de
mov eax, dword [ebp + 8]
mov dword [esi + 4], eax
jmp 0x10010a3f
mov ecx, dword [ebx + 0x7c]
test ecx, ecx
je 0x100108c2
mov eax, dword [ebx + 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 eax, dword [0x10668f98]
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x7c]
mov dword [eax + ecx*4 - 4], 0
jmp 0x100108bc
cmp dword [ebp], 1
jne 0x100108bc
add ebp, 8
cmp byte [ebp + 0xc], 3
jbe 0x100108bc
push ebp
call sym.php5.dll__zval_dtor_func
add esp, 4
jmp 0x100108bc
mov eax, dword [esi + 8]
push edi
call eax
add esp, 4
jmp 0x10010996
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp ecx, ebx
jne 0x10378a58
cmp eax, ebx
jne 0x10378a05
xor eax, eax
cmp dword [ebx + 0x18], eax
lea ebp, [ebx + 0x14]
setne al
mov ecx, dword [ebp + eax*4]
lea ebp, [ebp + eax*4]
test ecx, ecx
jne 0x10378a35
mov eax, dword [ebx]
mov dword [esp + 0x20], eax
bsr eax, dword [esp + 0x20]
mov ecx, eax
mov eax, dword [ebx + 0x10]
cmp dword [eax], ebx
je 0x10378a0a
call fcn.10318a70
call fcn.10318a70
mov dword [eax], 0
lea eax, [esi + 0x1d0]
lea eax, [eax + ecx*4]
cmp dword [ebx + 0x10], eax
jne 0x10378b08
mov eax, 1
shl eax, cl
not eax
and dword [esi + 0x14], eax
add edx, dword [ebx]
jmp 0x10010c60
xor eax, eax
cmp dword [ecx + 0x18], eax
setne al
cmp dword [ecx + eax*4 + 0x14], 0
lea eax, [ecx + eax*4]
je 0x10378a4f
mov ecx, dword [eax + 0x14]
lea ebp, [eax + 0x14]
jmp 0x10378a35
mov dword [ebp], 0
jmp 0x10378abc
cmp dword [ecx + 0xc], ebx
jne 0x10378a05
cmp dword [eax + 8], ebx
jne 0x10378a05
mov dword [ecx + 0xc], eax
mov dword [eax + 8], ecx
mov ebp, dword [ebx]
cmp ebp, 0x110
jae 0x10378aa3
cmp ecx, eax
jne 0x10378b08
shr ebp, 3
mov eax, dword [esi + ebp*8 + 0xc0]
cmp eax, dword [esi + ebp*8 + 0xc4]
jne 0x10378b08
mov eax, 1
lea ecx, [ebp - 2]
shl eax, cl
not eax
and dword [esi + 0x10], eax
add edx, dword [ebx]
jmp 0x10010c60
mov eax, dword [ebx + 0x10]
cmp eax, 1
jne 0x10378ab8
dec dword [esi + 0x258]
add edx, dword [ebx]
jmp 0x10010c60
test eax, eax
je 0x10378b08
mov eax, dword [ebx + 0x10]
cmp dword [eax], ebx
je 0x10378ac8
call fcn.10318a70
mov dword [eax], ecx
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov ebp, dword [ebx + 0x14]
mov dword [ecx + 0x14], ebp
test ebp, ebp
je 0x10378aec
mov eax, dword [ebp + 0x10]
cmp dword [eax], ebp
je 0x10378ae6
call fcn.10318a70
lea eax, [ecx + 0x14]
mov dword [ebp + 0x10], eax
lea ebp, [ecx + 0x18]
mov ecx, dword [ebx + 0x18]
mov dword [ebp], ecx
test ecx, ecx
je 0x10378b08
mov eax, dword [ecx + 0x10]
cmp dword [eax], ecx
je 0x10378b05
call fcn.10318a70
mov dword [ecx + 0x10], ebp
add edx, dword [ebx]
jmp 0x10010c60
and eax, 0xfffffffc
sub edi, eax
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
cmp ecx, edi
jne 0x10378ba6
cmp eax, edi
je 0x10378b2b
call fcn.10318a70
xor eax, eax
cmp dword [edi + 0x18], eax
lea ebx, [edi + 0x14]
setne al
mov ecx, dword [ebx + eax*4]
lea ebx, [ebx + eax*4]
test ecx, ecx
jne 0x10378b84
mov eax, dword [edi]
mov dword [esp + 0x20], eax
bsr eax, dword [esp + 0x20]
mov ecx, eax
mov eax, dword [edi + 0x10]
cmp dword [eax], edi
je 0x10378b59
call fcn.10318a70
mov dword [eax], 0
lea eax, [esi + 0x1d0]
lea eax, [eax + ecx*4]
cmp dword [edi + 0x10], eax
jne 0x10378c5d
mov eax, 1
shl eax, cl
not eax
and dword [esi + 0x14], eax
add edx, dword [edi]
jmp 0x10010c6b
xor eax, eax
cmp dword [ecx + 0x18], eax
setne al
mov ebp, dword [ecx + eax*4 + 0x14]
lea eax, [ecx + eax*4]
test ebp, ebp
je 0x10378b9e
mov ecx, ebp
lea ebx, [eax + 0x14]
jmp 0x10378b84
mov dword [ebx], 0
jmp 0x10378c12
cmp dword [ecx + 0xc], edi
jne 0x10378a05
cmp dword [eax + 8], edi
jne 0x10378a05
mov dword [ecx + 0xc], eax
mov dword [eax + 8], ecx
mov ebx, dword [edi]
cmp ebx, 0x110
jae 0x10378bf9
cmp ecx, eax
jne 0x10378c5d
shr ebx, 3
mov eax, dword [esi + ebx*8 + 0xc0]
cmp eax, dword [esi + ebx*8 + 0xc4]
jne 0x10378c5d
mov eax, 1
lea ecx, [ebx - 2]
shl eax, cl
not eax
and dword [esi + 0x10], eax
add edx, dword [edi]
jmp 0x10010c6b
mov eax, dword [edi + 0x10]
cmp eax, 1
jne 0x10378c0e
dec dword [esi + 0x258]
add edx, dword [edi]
jmp 0x10010c6b
test eax, eax
je 0x10378c5d
mov eax, dword [edi + 0x10]
cmp dword [eax], edi
je 0x10378c1e
call fcn.10318a70
mov dword [eax], ecx
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov ebx, dword [edi + 0x14]
lea ebp, [ecx + 0x14]
mov dword [ebp], ebx
test ebx, ebx
je 0x10378c42
mov eax, dword [ebx + 0x10]
cmp dword [eax], ebx
je 0x10378c3f
call fcn.10318a70
mov dword [ebx + 0x10], ebp
lea ebx, [ecx + 0x18]
mov ecx, dword [edi + 0x18]
mov dword [ebx], ecx
test ecx, ecx
je 0x10378c5d
mov eax, dword [ecx + 0x10]
cmp dword [eax], ecx
je 0x10378c5a
call fcn.10318a70
mov dword [ecx + 0x10], ebx
add edx, dword [edi]
jmp 0x10010c6b
mov eax, dword [edx + edi]
and eax, 3
cmp al, 3
jne 0x10010c75
lea edx, [edi - 8]
mov ecx, esi
call fcn.10043340
jmp 0x10010cb0
bsr eax, dword [esp + 0x20]
mov ebp, eax
lea ecx, [esi + 0x1d0]
mov dword [edi + 0x18], 0
lea ecx, [ecx + ebp*4]
mov dword [edi + 0x14], 0
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10378cc1
mov dword [ecx], edi
mov dword [edi + 0x10], ecx
mov eax, 1
mov ecx, ebp
shl eax, cl
mov dword [edi + 0xc], edi
mov dword [edi + 8], edi
or dword [esi + 0x14], eax
jmp 0x10010cb0
mov ecx, 0x20
sub ecx, ebp
mov esi, edx
shl esi, cl
cmp dword [ebx], edx
je 0x10378ce7
mov eax, esi
shr eax, 0x1f
lea ebx, [ebx + 0x14]
lea eax, [ebx + eax*4]
mov ebx, dword [eax]
test ebx, ebx
je 0x10378d02
add esi, esi
cmp dword [ebx], edx
jne 0x10378cd0
mov eax, dword [ebx + 0xc]
mov dword [eax + 8], edi
mov dword [ebx + 0xc], edi
mov dword [edi + 0xc], eax
mov dword [edi + 8], ebx
mov dword [edi + 0x10], 0
jmp 0x10010cb0
mov dword [eax], edi
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], edi
mov dword [edi + 8], edi
jmp 0x10010cb0