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

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
cmp dword [ebp], 0x10
push edi
mov ebx, edx
mov dword [esp + 0x18], ecx
je 0x1000faf6
push 0
mov edx, 1
mov ecx, ebx
call fcn.100110c0
mov esi, dword [0x10668f98]
add esp, 4
mov edi, dword [esi + 0x28]
lea eax, [edi + 1]
mov dword [esi + 0x28], eax
mov edx, dword [0x1066908c]
cmp edi, edx
jae 0x1000fbb2
mov eax, dword [esi + 0x24]
lea ecx, [edi*8]
sub ecx, edi
xorps xmm0, xmm0
lea esi, [eax + ecx*4]
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
mov eax, dword [ebx]
cmp eax, 0x10
jne 0x1000f970
mov eax, dword [0x10668f98]
mov ecx, dword [ebx + 8]
cmp ecx, dword [eax + 0x58]
je 0x10376d26
mov byte [esi + 0x18], 0x26
mov al, byte [ebx]
mov byte [esi + 0x19], al
cmp dword [ebx], 1
je 0x10376eb4
mov eax, dword [ebx + 8]
mov dword [esi + 4], eax
mov al, byte [ebp]
mov byte [esi + 0x1a], al
cmp dword [ebp], 1
je 0x1000fa7a
mov eax, dword [ebp + 8]
mov dword [esi + 8], eax
mov byte [esi + 0x1b], 4
mov edi, dword [0x10668f98]
mov edx, 0xfffffff0
mov ecx, dword [edi + 0x34]
mov eax, ecx
shl eax, 4
sub edx, eax
lea eax, [ecx + 1]
mov dword [edi + 0x34], eax
movzx eax, byte [esi + 0x1b]
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x18]
cmp eax, 1
mov dword [edx], eax
mov eax, dword [esi + 0xc]
je 0x10376e8f
mov dword [edx + 8], eax
mov dword [edx + 0x18], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
cmp eax, 4
jne 0x1000f8f8
mov dword [esp + 0x3c], 0
test edi, edi
jle 0x1000f8f8
mov edx, dword [0x10668f98]
mov dword [esp + 0x1c], edi
nop
mov eax, dword [edx + 0x24]
lea ecx, [edi*8]
sub ecx, edi
lea edi, [ecx - 7]
cmp byte [eax + edi*4 + 0x1b], 4
lea edi, [eax + edi*4]
mov dword [esp + 0x14], edi
jne 0x10376d4f
mov eax, dword [edi + 0xc]
cmp eax, dword [ebx + 8]
jne 0x10376d4f
mov al, byte [edi + 0x18]
cmp al, 0x54
jne 0x1000fa2e
cmp dword [esp + 0x3c], 0
jg 0x10376d6b
mov byte [edi + 0x18], 0x93
mov byte [esi + 0x18], 0x89
mov al, byte [ebp]
mov byte [esi + 0x19], al
cmp dword [ebp], 1
je 0x1000fb5f
mov eax, dword [ebp + 8]
mov dword [esi + 4], eax
mov byte [esi + 0x1a], 8
mov edi, dword [0x10668f98]
mov ecx, 0xfffffff0
mov edx, dword [edi + 0x34]
mov eax, edx
shl eax, 4
sub ecx, eax
lea eax, [edx + 1]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x34], eax
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x14]
mov word [esi + 0x1a], 0x804
movzx eax, byte [ecx + 0x1b]
mov dword [edx], eax
cmp eax, 1
mov eax, dword [ecx + 0xc]
jmp 0x1000f958
cmp al, 0x55
jne 0x1000fbd1
cmp dword [esp + 0x3c], 0
jg 0x10376dff
mov byte [edi + 0x18], 0x88
mov byte [esi + 0x18], 0x89
mov al, byte [ebp]
mov byte [esi + 0x19], al
cmp dword [ebp], 1
je 0x1000fb72
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x18]
mov dword [esi + 4], eax
mov word [esi + 0x1a], 0x808
movzx eax, byte [edi + 0x1b]
mov dword [edx], eax
cmp eax, 1
mov eax, dword [edi + 0xc]
jmp 0x1000f958
mov edi, dword [0x10668f98]
mov ebx, dword [edi + 0x78]
lea eax, [ebx + 1]
mov dword [edi + 0x78], eax
mov ecx, dword [0x10669094]
cmp ebx, ecx
jge 0x1000fb85
mov al, byte [ebp + 0x14]
cmp al, 6
je 0x1000fb44
cmp al, 8
je 0x1000fb44
mov eax, dword [edi + 0x74]
movq xmm0, qword [ebp + 8]
lea ecx, [ebx + ebx*2]
movq qword [eax + ecx*8], xmm0
movq xmm0, qword [ebp + 0x10]
movq qword [eax + ecx*8 + 8], xmm0
mov eax, dword [edi + 0x74]
mov dword [eax + ecx*8 + 8], 2
mov eax, dword [edi + 0x74]
mov byte [eax + ecx*8 + 0xd], 1
mov eax, dword [edi + 0x74]
mov dword [eax + ecx*8 + 0x10], 0
mov eax, dword [edi + 0x74]
mov dword [eax + ecx*8 + 0x14], 0xffffffff
mov dword [esi + 8], ebx
jmp 0x1000f926
mov ecx, dword [sym.php5.dll_compiler_globals]
test ecx, ecx
jle 0x1000f87b
mov eax, dword [0x10668f08]
mov eax, dword [eax + ecx*4 - 4]
test eax, eax
je 0x1000f87b
mov eax, dword [eax]
test eax, eax
je 0x1000f87b
cmp byte [eax + 0x20], 0x54
jne 0x1000f87b
cmp byte [eax + 0x21], 0x10
jne 0x1000f87b
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp + 8]
jne 0x1000f87b
jmp 0x10376b16
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
jmp 0x1000faaa
mov ecx, dword [0x10668f98]
lea edx, [ebp + 8]
call fcn.10008bd0
jmp 0x1000f9ea
mov ecx, dword [0x10668f98]
lea edx, [ebp + 8]
call fcn.10008bd0
jmp 0x1000fa5c
mov eax, ebx
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 0x1000fa97
test byte [esi + 0xc], 0x10
jne 0x10376d09
shl edx, 2
mov ecx, esi
mov dword [0x1066908c], edx
call fcn.10052680
jmp 0x1000f8a9
mov ecx, edi
call fcn.1005f710
test al, al
je 0x1000f8f8
jmp 0x10376d3a
mov ecx, dword [0x10668f98]
call fcn.10009fe0
mov edi, eax
mov edx, 0xfffffff0
mov byte [edi + 0x18], 0x50
mov byte [edi + 0x1b], 4
mov esi, dword [0x10668f98]
mov dword [esp + 0x20], edi
mov eax, dword [esi + 0x34]
mov ecx, eax
inc eax
mov dword [esi + 0x34], eax
shl ecx, 4
sub edx, ecx
mov dword [edi + 0xc], edx
mov byte [edi + 0x19], 1
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + ecx*4]
mov eax, dword [eax + ecx*4 + 4]
push eax
push edx
mov dword [esp + 0x34], eax
call sym.php5.dll__estrndup
mov ecx, dword [0x10668f98]
add esp, 8
lea edx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov byte [esp + 0x34], 6
call fcn.10008bd0
mov dword [edi + 4], eax
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
mov esi, dword [eax + ecx*8]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x24], ecx
cmp esi, dword [0x106690bc]
jb 0x10376bba
cmp esi, dword [0x106690c0]
jae 0x10376bba
mov edx, dword [esi - 0x24]
jmp 0x10376cb8
mov eax, dword [ecx + 4]
inc eax
mov edx, 0x1505
cmp eax, 8
jb switch.0x10376c57
mov ebp, eax
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 0x10376bd3
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0x10376eca]
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
mov dword [ecx + 0x10], edx
movzx eax, byte [edi + 0x1b]
mov byte [edi + 0x1a], 8
mov dword [edi + 0x10], 0x10000000
mov dword [ebp], eax
cmp eax, 1
mov eax, dword [edi + 0xc]
jne 0x10376cfa
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
movq xmm0, qword [eax + ecx*8]
movq qword [ebp + 8], xmm0
movq xmm0, qword [eax + ecx*8 + 8]
movq qword [ebp + 0x10], xmm0
jmp 0x1000f87b
mov dword [ebp + 8], eax
mov dword [ebp + 0x18], 0
jmp 0x1000f87b
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
push str.Cannot_re_assign__this
push 0x40
call sym.php5.dll_zend_error
add esp, 8
jmp 0x1000f8f8
push str.Cannot_re_assign__this
push 0x40
call sym.php5.dll_zend_error
mov edx, dword [0x10668f98]
add esp, 8
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x3c]
dec eax
mov dword [esp + 0x1c], eax
mov edi, eax
test eax, eax
jg 0x1000f990
jmp 0x1000f8f8
mov ecx, esi
sub ecx, dword [edx + 0x24]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x14]
sar edx, 4
movq xmm0, qword [ecx]
mov edi, edx
shr edi, 0x1f
movq qword [esi], xmm0
movq xmm0, qword [ecx + 8]
add edi, edx
movq qword [esi + 8], xmm0
movq xmm0, qword [ecx + 0x10]
mov eax, 0x24924925
mul edi
movq qword [esi + 0x10], xmm0
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x18], eax
sub edi, edx
mov dword [ecx + 0x18], 0x8080800
mov dword [ecx + 0xc], 0
shr edi, 1
mov dword [ecx + 4], 0
add edi, edx
mov dword [ecx + 8], 0
mov ecx, dword [0x10668f98]
shr edi, 4
call fcn.10009fe0
mov esi, eax
mov eax, dword [0x10668f98]
lea ecx, [edi*8]
mov eax, dword [eax + 0x24]
sub ecx, edi
lea edi, [eax + ecx*4]
mov dword [esp + 0x14], edi
jmp 0x1000f9cf
mov ecx, esi
sub ecx, dword [edx + 0x24]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x14]
sar edx, 4
movq xmm0, qword [ecx]
mov edi, edx
shr edi, 0x1f
movq qword [esi], xmm0
movq xmm0, qword [ecx + 8]
add edi, edx
movq qword [esi + 8], xmm0
movq xmm0, qword [ecx + 0x10]
mov eax, 0x24924925
mul edi
movq qword [esi + 0x10], xmm0
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x18], eax
sub edi, edx
mov dword [ecx + 0x18], 0x8080800
mov dword [ecx + 0xc], 0
shr edi, 1
mov dword [ecx + 4], 0
add edi, edx
mov dword [ecx + 8], 0
mov ecx, dword [0x10668f98]
shr edi, 4
call fcn.10009fe0
mov esi, eax
mov eax, dword [0x10668f98]
lea ecx, [edi*8]
mov eax, dword [eax + 0x24]
sub ecx, edi
lea edi, [eax + ecx*4]
jmp 0x1000fa41
lea ecx, [eax + eax*2]
mov eax, dword [0x10668f98]
mov eax, dword [eax + 0x74]
movq xmm0, qword [eax + ecx*8]
movq qword [edx + 8], xmm0
movq xmm0, qword [eax + ecx*8 + 8]
movq qword [edx + 0x10], xmm0
jmp 0x1000f968
mov ecx, dword [0x10668f98]
lea edx, [ebx + 8]
call fcn.10008bd0
jmp 0x1000f90d