Function at 0x10104ab0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x11c4
call fcn.10312230
mov eax, dword [0x106499c8]
xor eax, esp
mov dword [esp + 0x11c0], eax
mov eax, dword [esp + 0x11d4]
push ebx
mov ebx, dword [esp + 0x11cc]
push ebp
mov ebp, dword [esp + 0x11e0]
push esi
push edi
mov edi, dword [esp + 0x11e0]
xor esi, esi
xor edx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], 1
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ebx
test eax, eax
jne 0x10104b3b
test edi, edi
je 0x10105723
mov dword [edi], 0x63
jmp 0x10105723
mov dword [eax], edx
test edi, edi
je 0x10104b43
mov dword [edi], edx
test ebp, ebp
jne 0x10104b4f
lea esi, [ebp + 0x10]
jmp 0x101056f4
mov eax, dword [esp + 0x11ec]
mov edi, dword [esp + 0x11dc]
test eax, eax
mov ecx, 0x1048d1f8
cmovne ecx, eax
mov dword [ebp], edx
lea eax, [ecx + 0x100]
mov dword [esp + 0x58], eax
lea eax, [ecx + 0x200]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x340]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], eax
test edi, 0xd8008580
je 0x10104ba2
mov esi, 0x11
jmp 0x101056e2
test edi, 0x10000
mov eax, 1
cmovne edx, eax
mov dword [esp + 0xb8], esi
cmp byte [ebx], 0x28
mov dword [esp + 0x1c], edx
jne 0x10104ed1
mov ebp, dword [sym.imp.MSVCR110.dll_strncmp]
lea ebx, [ebx]
cmp byte [ebx + esi + 1], 0x2a
jne 0x10104ec9
push 5
add ebx, 2
add ebx, esi
push str.UTF8_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104bff
add esi, 7
or edi, 0x800
jmp 0x10104eaa
push 4
push str.UTF_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104c1e
add esi, 6
or edi, 0x800
jmp 0x10104eaa
push 4
push str.UCP_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104c3d
add esi, 6
or edi, 0x20000000
jmp 0x10104eaa
push 0x10
push str.NO_AUTO_POSSESS_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104c5c
add esi, 0x12
or edi, 0x20000
jmp 0x10104eaa
push 0xd
push str.NO_START_OPT_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104c7b
add esi, 0xf
or edi, 0x4000000
jmp 0x10104eaa
push 0xc
push str.LIMIT_MATCH
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104d1e
mov eax, dword [esp + 0x18]
lea ebp, [esi + 0xe]
add eax, ebp
mov dword [esp + 0x2c], eax
movzx eax, byte [eax]
push eax
xor ebx, ebx
call dword [sym.imp.MSVCR110.dll_isdigit]
add esp, 4
test eax, eax
je 0x10104cec
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
cmp ebx, 0x19999998
ja 0x10104ce1
movzx eax, byte [edi]
lea ebx, [ebx + ebx*4]
inc ebp
lea ebx, [ebx - 0x18]
lea edi, [esi + ebp]
lea ebx, [eax + ebx*2]
movzx eax, byte [edi]
push eax
call dword [sym.imp.MSVCR110.dll_isdigit]
add esp, 4
test eax, eax
jne 0x10104cb8
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x11dc]
mov eax, dword [esp + 0x18]
mov al, byte [eax + ebp]
cmp al, 0x29
jne 0x10104ec5
cmp ebx, dword [esp + 0x20]
jae 0x10104d10
or dword [esp + 0xb8], 0x2000
mov dword [esp + 0x20], ebx
lea esi, [ebp + 1]
mov ebp, dword [sym.imp.MSVCR110.dll_strncmp]
jmp 0x10104eb1
push 0x10
push str.LIMIT_RECURSION
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104dc6
mov eax, dword [esp + 0x18]
lea ebp, [esi + 0x12]
add eax, ebp
mov dword [esp + 0x2c], eax
movzx eax, byte [eax]
push eax
xor ebx, ebx
call dword [sym.imp.MSVCR110.dll_isdigit]
add esp, 4
test eax, eax
je 0x10104d94
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
jmp 0x10104d60
cmp ebx, 0x19999998
ja 0x10104d89
movzx eax, byte [edi]
lea ebx, [ebx + ebx*4]
inc ebp
lea ebx, [ebx - 0x18]
lea edi, [esi + ebp]
lea ebx, [eax + ebx*2]
movzx eax, byte [edi]
push eax
call dword [sym.imp.MSVCR110.dll_isdigit]
add esp, 4
test eax, eax
jne 0x10104d60
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x11dc]
mov eax, dword [esp + 0x18]
mov al, byte [eax + ebp]
cmp al, 0x29
jne 0x10104ec5
cmp ebx, dword [esp + 0x28]
jae 0x10104db8
or dword [esp + 0xb8], 0x4000
mov dword [esp + 0x28], ebx
lea esi, [ebp + 1]
mov ebp, dword [sym.imp.MSVCR110.dll_strncmp]
jmp 0x10104eb1
push 3
push 0x1048eaf4
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104dea
add esi, 5
mov eax, 0x100000
and edi, 0xff8fffff
jmp 0x10104ea8
push 3
push 0x1048eaf8
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104e0e
add esi, 5
mov eax, 0x200000
and edi, 0xff8fffff
jmp 0x10104ea8
push 5
push str.CRLF_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104e2f
add esi, 7
mov eax, 0x300000
and edi, 0xff8fffff
jmp 0x10104ea8
push 4
push str.ANY_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104e50
add esi, 6
mov eax, 0x400000
and edi, 0xff8fffff
jmp 0x10104ea8
push 8
push str.ANYCRLF_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104e71
add esi, 0xa
mov eax, 0x500000
and edi, 0xff8fffff
jmp 0x10104ea8
push 0xc
push str.BSR_ANYCRLF_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104e89
mov eax, 0x800000
jmp 0x10104e9f
push 0xc
push str.BSR_UNICODE_
push ebx
call ebp
add esp, 0xc
test eax, eax
jne 0x10104ec5
mov eax, 0x1000000
add esi, 0xe
and edi, 0xfe7fffff
or edi, eax
mov dword [esp + 0x11dc], edi
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], esi
cmp byte [ebx + esi], 0x28
je 0x10104bd0
jmp 0x10104ec9
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x4c]
mov eax, edi
shr eax, 0xb
and eax, 1
mov dword [esp + 0x10], eax
je 0x10104f13
test edx, edx
je 0x10104eed
mov esi, 0x4e
jmp 0x101056f0
test edi, 0x2000
jne 0x10104f13
push ebp
push 0xffffffffffffffff
push ebx
call fcn.10137b80
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x10104f13
mov esi, 0x2c
jmp 0x101056f0
mov eax, edi
and eax, 0x1800000
cmp eax, 0x1800000
je 0x101056dd
mov eax, edi
and eax, 0x700000
cmp eax, 0x300000
jg 0x10104fa5
je 0x10104f59
test eax, eax
je 0x10104f4b
cmp eax, 0x100000
je 0x10104f52
cmp eax, 0x200000
jne 0x101056dd
mov ecx, 0xa
jmp 0x10104f5e
mov ecx, 0xd
jmp 0x10104f5e
mov ecx, 0xd0a
mov dword [esp + 0xd4], 0
cmp ecx, 0xff
jle 0x10104f91
mov eax, ecx
sar eax, 8
mov dword [esp + 0xd8], 2
mov byte [esp + 0xdc], al
mov byte [esp + 0xdd], cl
jmp 0x10104fcf
mov dword [esp + 0xd8], 1
mov byte [esp + 0xdc], cl
jmp 0x10104fcf
cmp eax, 0x400000
je 0x10104fc4
cmp eax, 0x500000
jne 0x101056dd
mov dword [esp + 0xd4], 2
jmp 0x10104fcf
mov dword [esp + 0xd4], 1
lea eax, [esp + 0x1d0]
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], eax
mov ecx, ebx
lea eax, [esp + 0xe0]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0x90], 0x1000
mov dword [esp + 0x7c], eax
mov dword [esp + 0x8c], 0x14
mov dword [esp + 0x6c], ebx
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10105080
sub ecx, edx
mov dword [esp + 0xbc], 0
lea eax, [ecx + ebx]
mov dword [esp + 0x70], eax
lea eax, [ebx + esi]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x58]
push eax
push 0
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x44]
push eax
push 0
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x64]
push eax
push edi
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xf0], edi
mov dword [esp + 0xb4], 0
mov byte [esp + 0x20c], 0x83
call fcn.101058f0
mov esi, dword [esp + 0x50]
add esp, 0x3c
test esi, esi
jne 0x101056e2
mov ecx, dword [esp + 0x48]
cmp ecx, 0x10000
jle 0x1010514e
mov esi, 0x14
jmp 0x101056e2
mov eax, dword [esp + 0x88]
imul eax, dword [esp + 0x84]
lea esi, [ecx + 0x38]
add esi, eax
push esi
call dword [0x106438c4]
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x1010517a
lea esi, [eax + 0x15]
jmp 0x101056e2
mov dword [ebp], 0x50435245
mov dword [ebp + 4], esi
mov eax, dword [esp + 0xb4]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xb8]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
mov eax, 0x38
mov word [ebp + 0x22], ax
movzx eax, word [esp + 0x88]
mov word [ebp + 0x24], ax
movzx eax, word [esp + 0x84]
mov word [ebp + 0x26], ax
xor eax, eax
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [ebp + 0x34], ecx
cmp eax, 0x1048d1f8
cmove eax, ecx
mov dword [ebp + 0x30], eax
xor eax, eax
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebp + 0x22]
add ecx, ebp
mov dword [esp + 0x80], ecx
movzx eax, word [ebp + 0x24]
movzx ebx, word [ebp + 0x26]
imul ebx, eax
mov eax, dword [esp + 0x64]
add ebx, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0xd0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0x78], 0
test eax, eax
jle 0x101052db
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x84], 0
add esi, 4
mov edi, eax
lea esp, [esp]
push dword [esi + 4]
lea eax, [esp + 0x58]
push dword [esi]
push dword [esi - 4]
push eax
call fcn.1010db00
dec edi
add esp, 0x10
lea esi, [esi + 0xc]
test edi, edi
jg 0x101052a0
cmp dword [esp + 0x8c], 0x14
mov edi, dword [esp + 0x11dc]
jle 0x101052db
push dword [esp + 0x7c]
call dword [sym.php5.dll_php_pcre_free]
add esp, 4
mov eax, dword [esp + 0x38]
push 0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x58]
push eax
push 0
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x44]
push eax
push 0
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x64]
push eax
mov byte [ebx], 0x83
push dword [ebp + 8]
mov dword [esp + 0x6c], ebx
call fcn.101058f0
movzx eax, word [esp + 0xd0]
mov word [ebp + 0x1e], ax
movzx eax, word [esp + 0xdc]
mov word [ebp + 0x20], ax
movzx eax, word [esp + 0xd8]
mov word [ebp + 0x1c], ax
mov eax, dword [esp + 0xf4]
or eax, 1
add esp, 0x3c
mov dword [ebp + 0xc], eax
cmp dword [esp + 0xc0], 0
je 0x10105373
xor eax, eax
mov dword [esp + 0x20], eax
or eax, 0xffffffff
mov dword [esp + 0x34], eax
jmp 0x10105383
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x1010539d
mov eax, dword [esp + 0x24]
mov edx, 0x16
cmp byte [eax], cl
cmovne ecx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x30]
inc eax
mov byte [eax - 1], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], eax
sub eax, ebx
cmp eax, dword [esp + 0x48]
mov eax, dword [esp + 0x74]
mov ecx, 0x17
cmovg esi, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14], esi
cmp eax, ecx
jbe 0x1010546b
xor edx, edx
mov dword [esp + 0x1c], 0xffffffff
test esi, esi
jne 0x1010546b
cmp eax, ecx
jbe 0x1010546b
sub eax, 2
mov dword [esp + 0x74], eax
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
movzx esi, byte [ecx + ebx]
lea eax, [ecx + ebx]
inc ecx
add ecx, ebx
mov dword [esp + 0x38], eax
movzx eax, byte [ecx]
shl esi, 8
or esi, eax
mov dword [esp + 0x3c], ecx
cmp esi, dword [esp + 0x1c]
je 0x10105431
push esi
push dword [esp + 0x14]
push ebx
call fcn.10105740
add esp, 0xc
mov edx, eax
mov dword [esp + 0x1c], esi
test edx, edx
je 0x1010545e
mov eax, dword [esp + 0x38]
mov ecx, edx
sub ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [esp + 0x3c]
mov al, dl
sub al, bl
mov byte [ecx], al
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
test esi, esi
jne 0x1010546b
mov eax, dword [esp + 0x74]
jmp 0x101053e2
mov ecx, dword [esp + 0x64]
mov esi, 0x35
mov dword [esp + 0x14], esi
cmp dword [esp + 0x90], 0x1000
jle 0x10105486
push ecx
call dword [sym.php5.dll_php_pcre_free]
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x64], 0
test esi, esi
jne 0x101054a6
mov ax, word [ebp + 0x20]
cmp ax, word [ebp + 0x1e]
mov ecx, 0xf
cmova esi, ecx
mov dword [esp + 0x14], esi
test edi, 0x20000
mov edi, dword [esp + 0x10]
jne 0x101054c5
lea eax, [esp + 0x54]
push eax
push edi
push ebx
call fcn.101086d0
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0xc8], 0
je 0x10105576
push 0xffffffffffffffff
push edi
push ebx
call fcn.10105740
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10105576
lea esp, [esp]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
jne 0x10105556
movzx esi, byte [edi - 2]
movzx eax, byte [edi - 1]
shl esi, 8
or esi, eax
push ecx
movzx ebx, byte [esi + edi - 3]
lea eax, [esp + 0x58]
push eax
mov byte [esi + edi - 3], cl
mov eax, dword [ebp + 8]
shr eax, 0xb
push 1
and eax, 1
push eax
push edi
call fcn.101069e0
mov edx, eax
add esp, 0x14
mov byte [esi + edi - 3], bl
test edx, edx
js 0x1010558d
mov ecx, dword [esp + 0x9c]
cmp edx, ecx
cmovg ecx, edx
mov dword [esp + 0x9c], ecx
sar eax, 8
mov byte [edi + 1], al
mov byte [edi + 2], dl
push 0xffffffffffffffff
push dword [esp + 0x14]
lea eax, [edi + 3]
push eax
call fcn.10105740
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x101054f0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x101055c3
push ebp
call dword [sym.php5.dll_php_pcre_free]
mov esi, dword [esp + 0x18]
add esp, 4
jmp 0x101056e2
cmp edx, 0xfffffffe
jne 0x101055ad
push ebp
mov dword [esp + 0x18], 0x24
call dword [sym.php5.dll_php_pcre_free]
mov esi, dword [esp + 0x18]
add esp, 4
jmp 0x101056e2
mov esi, 0x19
mov eax, 0x46
cmp edx, 0xfffffffc
cmove esi, eax
mov dword [esp + 0x14], esi
jmp 0x10105572
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
test al, 0x10
jne 0x1010565e
push 0
lea eax, [esp + 0x58]
push eax
push 0
push ebx
call fcn.1010d6c0
add esp, 0x10
test eax, eax
je 0x101055f4
mov eax, dword [esp + 0x38]
or eax, 0x10
mov dword [ebp + 8], eax
jmp 0x1010565e
mov eax, dword [esp + 0x40]
test eax, eax
jns 0x10105635
push 0
lea eax, [esp + 0x44]
push eax
push ebx
call fcn.1010d980
mov edx, eax
mov eax, dword [esp + 0x4c]
add esp, 0xc
test eax, eax
jns 0x10105639
push 0
lea eax, [esp + 0x58]
push eax
push 0
push ebx
call fcn.1010d7f0
add esp, 0x10
test eax, eax
je 0x1010565e
or dword [ebp + 0xc], 0x100
jmp 0x1010565e
mov edx, dword [esp + 0x2c]
and edx, 0xff
mov word [ebp + 0x18], dx
test al, 1
je 0x1010565a
mov eax, dword [esp + 0x58]
mov ecx, edx
movzx eax, byte [ecx + eax]
cmp ax, dx
je 0x1010565a
or dword [ebp + 0xc], 0x20
or dword [ebp + 0xc], 0x10
mov eax, dword [esp + 0x34]
test eax, eax
js 0x1010569d
test byte [ebp + 8], 0x10
je 0x10105670
test al, 2
je 0x1010569d
mov edx, dword [esp + 0x20]
and edx, 0xff
mov word [ebp + 0x1a], dx
test al, 1
je 0x10105699
mov eax, dword [esp + 0x58]
movzx ecx, dx
movzx eax, byte [ecx + eax]
cmp ax, dx
je 0x10105699
or dword [ebp + 0xc], 0x80
or dword [ebp + 0xc], 0x40
mov esi, dword [esp + 0x30]
push 0
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x18]
push esi
push ebx
call fcn.10106e90
add esp, 0x14
test eax, eax
jne 0x101056d2
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x101056a1
mov eax, ebp
jmp 0x10105725
or dword [ebp + 0xc], 0x8000
mov eax, ebp
jmp 0x10105725
mov esi, 0x38
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov edi, dword [esp + 0x44]
mov edx, esi
mov ecx, str.no_error
test esi, esi
jle 0x10105717
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10105700
cmp byte [ecx], al
je 0x10105712
dec edx
test edx, edx
jg 0x10105700
jmp 0x10105717
mov ecx, str.Error_text_not_found__please_report_
mov eax, dword [esp + 0x50]
mov dword [eax], ecx
test edi, edi
je 0x10105723
mov dword [edi], esi
xor eax, eax
mov ecx, dword [esp + 0x11d0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10311bec
add esp, 0x11c4
ret