Function at 0x1004cf30
Capabilities:
Hash data using djb2

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, edx
push edi
cmp dword [esi], 1
mov ebx, ecx
jne 0x1004cf53
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
call fcn.100068f0
test eax, eax
je 0x1004d1f0
mov edx, esi
lea ecx, [esp + 0x50]
call fcn.100491d0
mov ecx, dword [sym.php5.dll_compiler_globals]
xor esi, esi
test ecx, ecx
jle 0x1004d38f
mov eax, dword [0x10668f08]
mov ebp, dword [eax + ecx*4 - 4]
cmp dword [ebx], 0x10
je 0x1004d0c5
mov ebx, dword [ebp]
cmp byte [ebx + 0x20], 0x53
je 0x10379b81
cmp byte [ebx + 0x21], 0x10
jne 0x10379b81
mov edx, dword [0x10668f98]
xor eax, eax
push 7
pop ecx
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
mov eax, dword [0x10668f94]
mov ecx, dword [edx + 0x34]
mov dword [esp + 0x48], eax
mov eax, ecx
shl eax, 4
push 0xfffffffffffffff0
pop esi
sub esi, eax
lea eax, [ecx + 1]
mov dword [edx + 0x34], eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [0x10668f98]
imul ecx, ecx, 0xc
mov eax, dword [eax + 0x2c]
mov word [esp + 0x4c], 0x153
push dword [eax + ecx]
mov byte [esp + 0x53], 4
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], esi
call sym.php5.dll__estrdup
mov esi, dword [ebx + 0xc]
imul esi, esi, 0xc
pop ecx
mov ecx, dword [0x10668f98]
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 0x2c]
mov byte [esp + 0x2c], 6
mov edx, dword [edx + esi + 4]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x20]
call fcn.10008bd0
mov ecx, dword [0x10668f98]
mov dword [esp + 0x38], eax
imul eax, eax, 0x18
mov edi, dword [ecx + 0x74]
add edi, eax
mov dword [esp + 0x18], eax
mov edx, dword [edi]
mov dword [esp + 0x1c], edi
cmp edx, dword [0x106690c0]
jae 0x1004d228
cmp edx, dword [0x106690bc]
jb 0x1004d228
mov ecx, dword [edx - 0x24]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x10], ecx
mov eax, dword [0x10668f98]
mov ecx, dword [eax + 0x74]
mov eax, dword [eax + 0x80]
mov dword [ecx + edx + 0x14], eax
mov eax, dword [0x10668f98]
add dword [eax + 0x80], 2
mov ecx, dword [0x10668f98]
test byte [ecx + 0xc], 0x10
jne 0x10379b26
mov eax, dword [esp + 0x50]
cmp eax, 1
je 0x1004d215
mov byte [esp + 0x4e], al
mov eax, dword [esp + 0x58]
or dword [esp + 0x44], 0x30000000
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x34]
push eax
push ebp
mov byte [ebx + 0x21], 4
call sym.php5.dll_zend_llist_prepend_element
mov edx, dword [0x10668f98]
xor eax, eax
push 7
pop ecx
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
mov eax, dword [0x10668f94]
mov ecx, dword [edx + 0x34]
mov dword [esp + 0x48], eax
mov eax, ecx
shl eax, 4
push 0xfffffffffffffff0
pop esi
sub esi, eax
lea eax, [ecx + 1]
mov dword [edx + 0x34], eax
mov ecx, dword [ebx + 8]
mov eax, dword [0x10668f98]
imul ecx, ecx, 0xc
mov eax, dword [eax + 0x2c]
mov word [esp + 0x4c], 0x153
push dword [ecx + eax]
mov byte [esp + 0x53], 4
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], esi
call sym.php5.dll__estrdup
mov esi, dword [ebx + 8]
imul esi, esi, 0xc
pop ecx
mov ecx, dword [0x10668f98]
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 0x2c]
mov byte [esp + 0x2c], 6
mov edx, dword [esi + edx + 4]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x20]
call fcn.10008bd0
mov ecx, dword [0x10668f98]
mov dword [esp + 0x38], eax
imul eax, eax, 0x18
mov edi, dword [ecx + 0x74]
add edi, eax
mov dword [esp + 0x18], eax
mov edx, dword [edi]
mov dword [esp + 0x14], edi
cmp edx, dword [0x106690c0]
jae 0x1004d2b5
cmp edx, dword [0x106690bc]
jb 0x1004d2b5
mov ecx, dword [edx - 0x24]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x10], ecx
mov eax, dword [0x10668f98]
mov ecx, dword [eax + 0x74]
mov eax, dword [eax + 0x80]
mov dword [ecx + edx + 0x14], eax
mov eax, dword [0x10668f98]
add dword [eax + 0x80], 2
mov ecx, dword [0x10668f98]
test byte [ecx + 0xc], 0x10
jne 0x10379acb
mov ecx, esi
call fcn.10049a30
push 8
pop ecx
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
jmp 0x1004cf5e
lea edx, [esp + 0x58]
mov byte [esp + 0x4e], 1
call fcn.10049cb0
jmp 0x1004d099
mov esi, dword [edi + 4]
inc esi
mov ecx, 0x1505
cmp esi, 8
jb switch.0x1004d28f
mov edi, esi
shr edi, 3
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 1]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 2]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 3]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 4]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 5]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 6]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 7]
imul ecx, ecx, 0x21
add ecx, eax
add edx, 8
sub esi, 8
dec edi
jne 0x1004d23b
mov edi, dword [esp + 0x1c]
jmp dword [esi*4 + 0x1004d398]
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
jmp 0x1004d04f
mov esi, dword [edi + 4]
inc esi
mov ecx, 0x1505
cmp esi, 8
jb switch.0x1004d31c
mov edi, esi
shr edi, 3
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 1]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 2]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 3]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 4]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 5]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 6]
imul ecx, ecx, 0x21
add ecx, eax
movsx eax, byte [edx + 7]
imul ecx, ecx, 0x21
add ecx, eax
add edx, 8
sub esi, 8
dec edi
jne 0x1004d2c8
mov edi, dword [esp + 0x14]
jmp dword [esi*4 + 0x1004d3b8]
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
jmp case.0x1004d28f.7
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
movsx eax, byte [edx]
imul ecx, ecx, 0x21
add ecx, eax
inc edx
jmp case.0x1004d28f.2
mov ebp, esi
jmp 0x1004cf77
cmp dword [ecx + 0x7c], 0
cmp dword [ecx + 0x7c], 0
je 0x1004d084
mov eax, dword [ecx + 0x80]
push 0
shl eax, 2
push eax
push dword [ecx + 0x7c]
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]
and dword [eax + ecx*4 - 4], 0
mov eax, dword [0x10668f98]
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x7c]
and dword [eax + ecx*4 - 8], 0
mov ecx, dword [0x10668f98]
jmp 0x1004d084
cmp byte [ebx + 0x21], 1
jne 0x10379bfe
mov edx, dword [ebx + 0xc]
mov eax, dword [0x10668f98]
imul edx, edx, 0x18
mov ecx, dword [eax + 0x74]
mov eax, dword [eax + 0x80]
mov dword [edx + ecx + 0x14], eax
mov eax, dword [0x10668f98]
add dword [eax + 0x80], 2
mov eax, dword [0x10668f98]
test byte [eax + 0xc], 0x10
je 0x10379bfe
mov ecx, dword [eax + 0x7c]
test ecx, ecx
je 0x10379bfe
mov eax, dword [eax + 0x80]
push esi
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], esi
mov eax, dword [0x10668f98]
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x7c]
mov dword [eax + ecx*4 - 8], esi
mov eax, dword [esp + 0x50]
cmp eax, 1
jne 0x10379c1b
mov byte [ebx + 0x22], al
mov ecx, dword [0x10668f98]
lea edx, [esp + 0x58]
call fcn.10049cb0
jmp 0x10379c22
mov byte [ebx + 0x22], al
mov eax, dword [esp + 0x58]
or dword [ebx + 0x18], 0x30000000
mov dword [ebx + 0x10], eax
jmp 0x1004d0bd