Function at 0x10012070
Capabilities:
Hash data using djb2
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1c78
call fcn.10312230
mov eax, dword [0x106499c8]
xor eax, esp
mov dword [esp + 0x1c74], eax
lea eax, [esp + 0x1a60]
mov dword [esp + 0x60], eax
push esi
lea eax, [esp + 0x1ae4]
push edi
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x158]
xor edi, edi
mov ecx, 0xc8
mov edx, 0xfffffffe
mov dword [esp + 0x70], 0x80
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x60], edx
lea esi, [esp + 0x1ae8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
add ecx, ecx
add eax, 0xfffffffe
add eax, ecx
mov dword [esp + 0xc], esi
mov word [esi], di
cmp eax, esi
jbe 0x1039b2f6
mov ecx, dword [esp + 0x5c]
cmp edi, 3
je 0x1001442e
movsx ecx, word [edi*2 + 0x105444e0]
mov dword [esp + 0x6c], ecx
cmp ecx, 0xfffffcac
je 0x100121de
cmp edx, 0xfffffffe
je 0x10012306
test edx, edx
jle 0x100141ba
cmp edx, 0x185
ja 0x10015b7e
movzx eax, byte [edx + 0x10540e28]
add ecx, eax
mov dword [esp + 0x10], eax
cmp ecx, 0x1843
ja 0x100121de
movsx eax, word [ecx*2 + 0x10540fb0]
cmp eax, dword [esp + 0x10]
jne 0x100121de
movsx eax, word [ecx*2 + 0x1053ca00]
test eax, eax
jle 0x100123d7
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x10015b88
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], 0xfffffffe
movq xmm0, qword [esp + 0x98]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
add eax, 0x20
mov dword [esp + 0x14], eax
movq qword [eax], xmm0
movq xmm0, qword [esp + 0xa0]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0xa8]
movq qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0xb0]
movq qword [eax + 0x18], xmm0
add esi, 2
jmp 0x100120e3
movzx eax, word [edi*2 + 0x10540590]
mov dword [esp + 0x64], eax
test eax, eax
je 0x1039b444
movzx eax, byte [eax + 0x10540338]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x84], eax
shl eax, 5
mov ecx, edi
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x6c], ecx
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x30], xmm0
movq xmm0, qword [eax + 0x28]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [eax + 0x30]
movq qword [esp + 0x40], xmm0
movq xmm0, qword [eax + 0x38]
mov eax, dword [esp + 0x64]
add eax, 0xfffffffe
movq qword [esp + 0x48], xmm0
cmp eax, 0x250
ja 0x1001227d
jmp dword [eax*4 + 0x10015cd4]
movq xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x84]
add eax, 0x20
neg ecx
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x38]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0x40]
movq qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [eax + 0x18], xmm0
movzx edx, word [esi + ecx*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
lea esi, [esi + ecx*2]
movzx edi, word [eax*2 + 0x10544038]
movsx eax, dx
movsx ecx, word [edi*2 + 0x1053c52a]
add ecx, eax
cmp ecx, 0x1843
ja 0x100122ee
cmp word [ecx*2 + 0x10540fb0], dx
je 0x1001236d
movsx edi, word [edi*2 + 0x1053c6f2]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
add esi, 2
jmp 0x100120e3
cmp byte [0x10669018], 0
jne 0x10014300
jmp case.0x10012390.374
lea eax, [esp + 0xa0]
push eax
mov byte [esp + 0xb0], 1
call sym.php5.dll_lex_scan
mov edx, eax
add esp, 4
mov dword [esp + 0x60], edx
cmp edx, 0x176
jge 0x10012385
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xa8], 1
mov byte [esp + 0xad], 0
mov dword [esp + 0x98], 1
jmp 0x1001212b
movsx edi, word [ecx*2 + 0x1053ca00]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
add esi, 2
jmp 0x100120e3
lea eax, [edx - 0x176]
cmp eax, 5
ja case.default.0x10012390
jmp dword [eax*4 + 0x10016618]
mov eax, dword [0x10668dc8]
mov ecx, dword [0x10668dd0]
movzx edx, byte [0x10669018]
cmp byte [eax + ecx - 1], 0x3e
mov eax, 1
cmovne edx, eax
cmp byte [0x10669061], 0
mov byte [0x10669018], dl
jne 0x1039b432
mov edx, 0x3b
mov dword [esp + 0x60], edx
jmp case.default.0x10012390
je 0x1039b444
cmp eax, 0xfffffdb1
je 0x1039b444
neg eax
mov dword [esp + 0x64], eax
jmp 0x100121f2
xor eax, eax
xor edx, edx
mov dword [esp + 0x60], edx
jmp 0x10012146
inc dword [0x10668f94]
mov byte [0x10669018], 0
jmp case.0x10012390.374
xor esi, esi
lea eax, [esp + 0x1ae8]
cmp ecx, eax
jne 0x1039f765
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x1a68]
cmp eax, ecx
jne 0x1039f774
mov ecx, dword [esp + 0x1c7c]
pop edi
mov eax, esi
pop esi
xor ecx, esp
call fcn.10311bec
mov esp, ebp
pop ebp
ret
mov edx, 0x13f
mov dword [esp + 0x60], edx
jmp case.default.0x10012390
mov eax, 2
jmp 0x10012146
dec ecx
mov dword [esp + 0x78], ecx
jmp 0x10012182
sub esi, dword [esp + 0x5c]
sar esi, 1
inc esi
cmp dword [esp + 0x7c], 0x2710
mov dword [esp + 0x10], esi
jae 0x1039b526
mov esi, dword [esp + 0x5c]
mov eax, 0x2710
cmp ecx, eax
cmova ecx, eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov dword [esp + 0x7c], ecx
lea eax, [eax*2 + 0x1f]
push eax
mov dword [esp + 0x70], esi
call dword [sym.imp.MSVCR110.dll_malloc]
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
je 0x1039b526
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1039b36a
mov ecx, edx
sub esi, edx
mov edx, eax
mov ax, word [esi + ecx]
mov word [ecx], ax
lea ecx, [ecx + 2]
dec edx
jne 0x1039b359
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
add eax, eax
mov dword [esp + 0x24], eax
add eax, 0x1f
and eax, 0xffffffe0
mov ecx, edx
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xc], edx
test eax, eax
je 0x1039b3d3
sub dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
mov esi, edx
mov dword [esp + 0x64], eax
dec dword [esp + 0x64]
movq xmm0, qword [ecx + esi]
movq qword [esi], xmm0
movq xmm0, qword [ecx + esi + 8]
movq qword [esi + 8], xmm0
movq xmm0, qword [ecx + esi + 0x10]
movq qword [esi + 0x10], xmm0
movq xmm0, qword [ecx + esi + 0x18]
movq qword [esi + 0x18], xmm0
lea esi, [esi + 0x20]
jne 0x1039b39c
mov ecx, dword [esp + 0x5c]
lea esi, [esp + 0x1ae8]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x74], edx
cmp esi, dword [esp + 0x64]
je 0x1039b402
push esi
call dword [sym.imp.MSVCR110.dll_free]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add esp, 4
lea esi, [eax - 1]
shl eax, 5
add eax, 0xffffffe0
add eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffffe
lea esi, [ecx + esi*2]
add eax, ecx
mov dword [esp + 0xc], esi
cmp eax, esi
jbe 0x1039b557
mov edx, dword [esp + 0x60]
jmp 0x10012101
cmp byte [0x10669060], 0
je case.0x10012390.374
jmp 0x100123c9
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x1039b548
inc dword [esp + 0x80]
push edx
mov edx, edi
xor ecx, ecx
call fcn.10348d00
mov ecx, dword [esp + 0x74]
add esp, 4
mov dword [esp + 0xc], eax
cmp ecx, eax
jae 0x1039b4db
cmp ecx, 0xffffffff
jae 0x1039b4db
lea ecx, [eax + eax]
mov dword [esp + 0x70], ecx
cmp eax, ecx
ja 0x1039b485
cmp ecx, 0xffffffff
jbe 0x1039b48c
or ecx, 0xffffffff
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x1a68]
cmp eax, edx
je 0x1039b4a9
push eax
call dword [sym.imp.MSVCR110.dll_free]
mov ecx, dword [esp + 0x74]
add esp, 4
push ecx
call dword [sym.imp.MSVCR110.dll_malloc]
mov ecx, eax
add esp, 4
mov dword [esp + 0x68], ecx
test ecx, ecx
je 0x1039b4c3
mov ecx, dword [esp + 0x70]
jmp 0x1039b4d7
lea eax, [esp + 0x1a68]
mov ecx, 0x80
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x1039b50b
cmp eax, ecx
ja 0x1039b50b
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x6c]
mov edx, edi
call fcn.10348d00
add esp, 4
push dword [esp + 0x68]
push 0x1053ad10
push 4
call sym.php5.dll_zend_error
add esp, 0xc
jmp 0x1039b569
push str.syntax_error
push 0x1053ad10
push 4
call sym.php5.dll_zend_error
add esp, 0xc
cmp dword [esp + 0xc], 0
je 0x1039b569
push str.memory_exhausted
push 0x1053ad10
push 4
call sym.php5.dll_zend_error
mov ecx, dword [esp + 0x68]
add esp, 0xc
mov esi, 2
jmp 0x10014430
cmp eax, 3
jne 0x1039b569
test edx, edx
jg 0x1039b561
jne 0x1039b569
mov ecx, dword [esp + 0x5c]
mov esi, 1
jmp 0x10014430
mov dword [esp + 0x60], 0xfffffffe
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x78], 3
movsx edx, word [edi*2 + 0x105444e0]
cmp edx, 0xfffffcac
je 0x1039b5ad
inc edx
cmp edx, 0x1843
ja 0x1039b5ad
cmp word [edx*2 + 0x10540fb0], 1
jne 0x1039b5ad
movsx edi, word [edx*2 + 0x1053ca00]
test edi, edi
jg 0x10012190
cmp esi, ecx
je 0x1039b557
movsx edi, word [esi - 2]
sub eax, 0x20
sub esi, 2
jmp 0x1039b579
push ecx
call dword [sym.imp.MSVCR110.dll_free]
add esp, 4
jmp 0x1001443f
push eax
call dword [sym.imp.MSVCR110.dll_free]
add esp, 4
jmp 0x10014452