Function at 0x10199390
Capabilities:
Hash data using djb2

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
push edi
push dword [esp + 0x68]
call fcn.1019b230
mov ecx, dword [esp + 0x68]
xor esi, esi
mov edx, eax
mov eax, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x64]
and eax, 0x30
add esp, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
test esi, esi
je 0x101993fb
cmp edx, 9
jl 0x10199433
push str.Only_basic_entities_substitution_is_supported_for_multi_byte_encodings_other_than_UTF_8__functionality_is_equivalent_to_htmlspecialchars
push 0x800
push 0
call sym.php5.dll_php_error_docref0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x40]
add esp, 0xc
xor esi, esi
mov dword [esp + 0x60], esi
xor edi, edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], edi
test esi, esi
je 0x1019943f
cmp eax, 0x30
mov ebx, 0x104c8200
mov esi, 0x104c6de8
cmovne ebx, esi
mov dword [esp + 0x3c], ebx
cmp edx, 1
jle 0x10199452
mov esi, dword [edx*4 + 0x104cf928]
mov dword [esp + 0x30], esi
jmp 0x10199452
cmp eax, 0x10
je 0x101993f5
mov esi, 1
jmp 0x101993f7
mov edi, 0x104d5b40
mov esi, 0x104d8138
test eax, eax
cmovne edi, esi
mov dword [esp + 0x40], edi
cmp byte [esp + 0x6c], 0
jne 0x10199480
test eax, eax
je 0x10199478
cmp eax, 0x20
je 0x10199478
mov ebp, 0x104da4d8
mov esi, 0x104c43e0
cmp eax, 0x30
cmove ebp, esi
mov dword [esp + 0x38], ebp
jmp 0x10199480
mov dword [esp + 0x38], 0x104d5ad8
test cl, 0x88
je 0x101994ab
test edx, edx
jne 0x1019949b
mov dword [esp + 0x24], 0x104e8e74
mov dword [esp + 0x28], 3
jmp 0x101994ab
mov dword [esp + 0x24], str.xFFFD_
mov dword [esp + 0x28], 8
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jae 0x101994fb
mov edx, 0x80
mov dword [esp + 0x20], edx
lea eax, [edx + 1]
push eax
call sym.php5.dll__emalloc
mov ebp, eax
mov eax, dword [esp + 0x5c]
xor esi, esi
add esp, 4
xor ebx, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
test eax, eax
je 0x1019a5f4
mov ecx, eax
sub ecx, ebx
xor edi, edi
mov ebp, ebx
cmp ecx, 1
jae 0x1019951f
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
lea edx, [ecx + ecx]
mov dword [esp + 0x20], edx
cmp edx, ecx
jae 0x101994bd
push str.Input_string_is_too_long
push 1
call sym.php5.dll_zend_error
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
mov eax, dword [esp + 0x34]
cmp eax, 0xd
ja case.0x10199533.1
movzx eax, byte [eax + 0x1019a658]
jmp dword [eax*4 + 0x1019a63c]
mov esi, dword [esp + 0x54]
mov al, byte [ebx + esi]
cmp al, 0x80
jae 0x1019954d
movzx esi, al
jmp 0x10199a72
cmp al, 0xc2
jae 0x1019955c
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp al, 0xe0
jae 0x101995d9
cmp ecx, 2
jae 0x10199570
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov cl, byte [ebx + esi + 1]
cmp cl, 0x80
jb 0x101995c8
cmp cl, 0xbf
ja 0x101995a8
movzx esi, al
and esi, 0x1f
movzx eax, cl
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 2
cmp esi, 0x80
jae 0x10199a73
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp cl, 0x80
jb 0x101995c8
cmp cl, 0xc2
jb 0x101995b7
cmp cl, 0xf4
jbe 0x101995c8
mov eax, 2
add ebx, eax
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov eax, 1
add ebx, eax
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp al, 0xf0
jae 0x1019969e
cmp ecx, 3
jb 0x1019964e
mov ah, byte [ebx + esi + 1]
cmp ah, 0x80
jb 0x1019964e
cmp ah, 0xbf
ja 0x1019964e
mov dl, byte [ebx + esi + 2]
cmp dl, 0x80
jb 0x1019964e
cmp dl, 0xbf
ja 0x1019964e
movzx esi, al
and esi, 0xf
movzx eax, ah
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, dl
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 3
cmp esi, 0x800
jae 0x10199633
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
lea eax, [esi - 0xd800]
cmp eax, 0x7ff
ja 0x10199a73
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp ecx, 2
jb 0x101994f0
mov al, byte [ebx + esi + 1]
cmp al, 0x80
jb 0x101994f0
cmp al, 0xc2
jb 0x1019966f
cmp al, 0xf4
jbe 0x101994f0
cmp ecx, 3
jb 0x10199691
mov al, byte [ebx + esi + 2]
cmp al, 0x80
jb 0x10199691
cmp al, 0xc2
jb 0x10199684
cmp al, 0xf4
jbe 0x10199691
add ebx, 3
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
add ebx, 2
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp al, 0xf5
jae 0x101994f0
cmp ecx, 4
jb 0x1019971a
mov ah, byte [ebx + esi + 1]
cmp ah, 0x80
jb 0x1019971a
cmp ah, 0xbf
ja 0x1019971a
mov dh, byte [ebx + esi + 2]
cmp dh, 0x80
jb 0x1019971a
cmp dh, 0xbf
ja 0x1019971a
mov dl, byte [ebx + esi + 3]
cmp dl, 0x80
jb 0x1019971a
cmp dl, 0xbf
ja 0x1019971a
movzx esi, al
movzx eax, ah
and esi, 7
and eax, 0x3f
shl esi, 6
or esi, eax
movzx eax, dh
and eax, 0x3f
shl esi, 6
or esi, eax
movzx eax, dl
and eax, 0x3f
shl esi, 6
or esi, eax
add ebx, 4
lea eax, [esi - 0x10000]
cmp eax, 0xfffff
jbe 0x10199a73
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp ecx, 2
jb 0x101994f0
mov al, byte [ebx + esi + 1]
cmp al, 0x80
jb 0x101994f0
cmp al, 0xc2
jb 0x1019973b
cmp al, 0xf4
jbe 0x101994f0
cmp ecx, 3
jb 0x10199691
mov al, byte [ebx + esi + 2]
cmp al, 0x80
jb 0x10199691
cmp al, 0xc2
jb 0x1019975c
cmp al, 0xf4
jbe 0x10199691
cmp ecx, 4
jb 0x10199684
mov al, byte [ebx + esi + 3]
cmp al, 0x80
jb 0x10199684
cmp al, 0xc2
jb 0x1019977d
cmp al, 0xf4
jbe 0x10199684
add ebx, 4
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov esi, dword [esp + 0x54]
mov dl, byte [ebx + esi]
mov al, dl
add al, 0x7f
cmp al, 0x7d
ja 0x101998bc
cmp ecx, 2
jae 0x101997ad
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov cl, byte [ebx + esi + 1]
cmp cl, 0x40
jb 0x101997bb
cmp cl, 0x7e
jbe 0x101997c7
mov al, cl
add al, 0x5f
cmp al, 0x5d
ja 0x101994f0
movzx esi, dl
movzx eax, cl
shl esi, 8
or esi, eax
add ebx, 2
jmp 0x10199a73
mov esi, dword [esp + 0x54]
mov dl, byte [ebx + esi]
mov al, dl
add al, 0x7f
cmp al, 0x7d
ja 0x101998bc
cmp ecx, 2
jae 0x101997fd
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov cl, byte [ebx + esi + 1]
cmp cl, 0x40
jb 0x1019980b
cmp cl, 0x7e
jbe 0x101997c7
mov al, cl
add al, 0x5f
cmp al, 0x5d
ja 0x10199826
movzx esi, dl
movzx eax, cl
shl esi, 8
or esi, eax
add ebx, 2
jmp 0x10199a73
cmp cl, 0x80
je 0x10199691
cmp cl, 0xff
je 0x10199691
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov esi, dword [esp + 0x54]
mov dl, byte [ebx + esi]
mov al, dl
add al, 0x5f
cmp al, 0x5d
ja 0x10199898
cmp ecx, 2
jae 0x10199862
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov cl, byte [ebx + esi + 1]
mov al, cl
add al, 0x5f
cmp al, 0x5d
ja 0x10199881
movzx esi, dl
movzx eax, cl
shl esi, 8
or esi, eax
add ebx, 2
jmp 0x10199a73
cmp cl, 0x8e
je 0x10199691
cmp cl, 0x8f
je 0x10199691
cmp cl, 0xa0
jmp 0x10199829
cmp dl, 0x8e
je 0x101994f0
cmp dl, 0x8f
je 0x101994f0
cmp dl, 0xa0
je 0x101994f0
cmp dl, 0xff
je 0x101994f0
movzx esi, dl
jmp 0x10199a72
mov eax, dword [esp + 0x54]
mov dl, byte [ebx + eax]
cmp dl, 0x81
jb 0x101998d5
cmp dl, 0x9f
jbe 0x101998e1
mov al, dl
add al, 0x20
cmp al, 0x1c
ja 0x10199930
mov eax, dword [esp + 0x54]
cmp ecx, 2
jb 0x101994f0
mov al, byte [ebx + eax + 1]
cmp al, 0x40
jb 0x1019990d
cmp al, 0x7f
je 0x1019990d
cmp al, 0xfd
jae 0x1019990d
movzx esi, dl
movzx eax, al
shl esi, 8
or esi, eax
add ebx, 2
jmp 0x10199a73
cmp al, 0x80
je 0x10199691
cmp al, 0xa0
je 0x10199691
cmp al, 0xfd
jae 0x10199691
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp dl, 0x80
jb 0x101998bc
cmp dl, 0xa1
jb 0x101994f0
cmp dl, 0xdf
jbe 0x101998bc
inc ebx
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov esi, dword [esp + 0x54]
mov dl, byte [ebx + esi]
mov al, dl
add al, 0x5f
cmp al, 0x5d
ja 0x101999b0
cmp ecx, 2
jb 0x101994f0
movzx ecx, byte [ebx + esi + 1]
lea eax, [ecx - 0xa1]
cmp eax, 0x5d
ja 0x1019998a
movzx esi, dl
shl esi, 8
or esi, ecx
add ebx, 2
jmp 0x10199a73
cmp ecx, 0xa0
je 0x1019999f
cmp ecx, 0xff
mov eax, 1
jne 0x101999a4
mov eax, 2
add ebx, eax
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
cmp dl, 0x8e
jne 0x101999ec
cmp ecx, 2
jb 0x101994f0
movzx esi, byte [ebx + esi + 1]
lea eax, [esi - 0xa1]
cmp eax, 0x3e
ja 0x101999dc
or esi, 0x8e00
add ebx, 2
jmp 0x10199a73
cmp esi, 0xa0
je 0x1019999f
cmp esi, 0xff
jmp 0x10199998
cmp dl, 0x8f
jne 0x101998aa
cmp ecx, 3
jb 0x10199a2a
mov dl, byte [ebx + esi + 1]
cmp dl, 0xa1
jb 0x10199a2a
cmp dl, 0xfe
ja 0x10199a2a
mov al, byte [ebx + esi + 2]
cmp al, 0xa1
jb 0x10199a2a
cmp al, 0xfe
ja 0x10199a2a
movzx esi, dl
or esi, 0x8f00
movzx eax, al
shl esi, 8
or esi, eax
add ebx, 3
jmp 0x10199a73
cmp ecx, 2
jb 0x101994f0
mov al, byte [ebx + esi + 1]
cmp al, 0xa0
je 0x10199a43
cmp al, 0xff
jne 0x101994f0
cmp ecx, 3
jb 0x10199691
mov al, byte [ebx + esi + 2]
cmp al, 0xa0
je 0x10199684
cmp al, 0xff
jne 0x10199691
add ebx, 3
or edi, 0xffffffff
xor esi, esi
jmp 0x10199a73
mov eax, dword [esp + 0x54]
movzx esi, byte [ebx + eax]
inc ebx
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 0x28]
cmp dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
jbe 0x10199a9e
push 0x81
push 1
push ecx
push eax
call sym.php5.dll__safe_erealloc
add esp, 0x10
sub dword [esp + 0x20], 0xffffff80
mov dword [esp + 0x1c], eax
cmp edi, 0xffffffff
jne 0x10199ae1
mov ecx, dword [esp + 0x64]
test cl, 4
jne 0x1019a5e0
test cl, 8
je 0x1019a608
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
push edi
push dword [esp + 0x28]
lea eax, [esi + ebp]
push eax
call sub.MSVCR110.dll_memcpy
add esp, 0xc
add esi, edi
mov dword [esp + 0x18], esi
jmp 0x1019a5e8
mov edx, dword [esp + 0x54]
mov ecx, ebx
sub ecx, ebp
lea eax, [edx + ebp]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
cmp esi, 0x26
je 0x1019a143
cmp esi, 0x27
jne 0x10199b09
test byte [esp + 0x64], 1
jmp 0x10199b13
cmp esi, 0x22
jne 0x10199b19
test byte [esp + 0x64], 2
je 0x1019a055
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x10199f65
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10199b4b
mov eax, esi
shr eax, 6
and eax, 3
and esi, 0x3f
mov eax, dword [ecx + eax*4]
movzx esi, word [eax + esi*2]
cmp esi, 0xffff
je case.0x1019a12d.1
mov edx, esi
shr edx, 0xc
and edx, 0xfff
cmp edx, 0x1d
ja 0x10199fae
mov eax, dword [esp + 0x3c]
mov edi, esi
mov edx, dword [eax + edx*4]
shr edi, 6
mov eax, esi
and eax, 0x3f
and edi, 0x3f
lea ecx, [eax + eax*2]
mov eax, dword [edx + edi*4]
cmp byte [eax + ecx*4], 0
lea ebp, [eax + ecx*4]
jne 0x10199b92
mov ecx, dword [ebp + 4]
movzx edi, word [ebp + 8]
mov ebp, dword [esp + 0x60]
jmp 0x10199f7a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], ebx
cmp ebx, ecx
jae 0x10199c8e
sub ecx, ebx
cmp ecx, 1
jb 0x10199c8e
mov eax, dword [esp + 0x34]
cmp eax, 0xd
ja case.0x10199bc1.1
movzx eax, byte [eax + 0x1019a680]
jmp dword [eax*4 + 0x1019a668]
mov edi, dword [esp + 0x54]
mov al, byte [ebx + edi]
cmp al, 0x80
jae 0x10199bdb
movzx ecx, al
jmp 0x10199f2e
cmp al, 0xc2
jb 0x10199c8e
cmp al, 0xe0
jae 0x10199c27
cmp ecx, 2
jb 0x10199c8e
mov dl, byte [ebx + edi + 1]
cmp dl, 0x80
jb 0x10199c8e
cmp dl, 0xbf
ja 0x10199c8e
movzx ecx, al
and ecx, 0x1f
movzx eax, dl
shl ecx, 6
and eax, 0x3f
or ecx, eax
cmp ecx, 0x80
jb 0x10199c8e
add ebx, 2
jmp 0x10199f2f
cmp al, 0xf0
jae 0x10199ca5
cmp ecx, 3
jb 0x10199c85
mov ah, byte [ebx + edi + 1]
cmp ah, 0x80
jb 0x10199c85
cmp ah, 0xbf
ja 0x10199c85
mov dl, byte [ebx + edi + 2]
cmp dl, 0x80
jb 0x10199c85
cmp dl, 0xbf
ja 0x10199c85
movzx ecx, al
and ecx, 0xf
movzx eax, ah
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, dl
shl ecx, 6
and eax, 0x3f
or ecx, eax
cmp ecx, 0x800
jb 0x10199c8e
lea eax, [ecx - 0xd800]
cmp eax, 0x7ff
jbe 0x10199c8e
add ebx, 3
jmp 0x10199f2f
cmp ecx, 2
jb 0x10199c8e
mov al, byte [ebx + edi + 1]
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x44]
mov ecx, dword [eax + 4]
movzx edi, word [eax + 8]
mov ebp, dword [esp + 0x60]
jmp 0x10199f7a
cmp al, 0xf5
jae 0x10199c8e
cmp ecx, 4
jb 0x10199d14
mov ah, byte [ebx + edi + 1]
cmp ah, 0x80
jb 0x10199d14
cmp ah, 0xbf
ja 0x10199d14
mov dh, byte [ebx + edi + 2]
cmp dh, 0x80
jb 0x10199d14
cmp dh, 0xbf
ja 0x10199d14
mov dl, byte [ebx + edi + 3]
cmp dl, 0x80
jb 0x10199d14
cmp dl, 0xbf
ja 0x10199d14
movzx ecx, al
movzx eax, ah
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, dh
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, dl
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [ecx - 0x10000]
cmp eax, 0xfffff
ja 0x10199c8e
add ebx, 4
jmp 0x10199f2f
cmp ecx, 2
jb 0x10199c8e
mov al, byte [ebx + edi + 1]
cmp al, 0x80
jb 0x10199c8e
cmp al, 0xc2
jb 0x10199d35
cmp al, 0xf4
jbe 0x10199c8e
cmp ecx, 3
jb 0x10199c8e
mov al, byte [ebx + edi + 2]
jmp 0x10199c8e
mov edi, dword [esp + 0x54]
mov ah, byte [ebx + edi]
mov al, ah
add al, 0x7f
cmp al, 0x7d
ja 0x10199d8c
cmp ecx, 2
jb 0x10199c8e
mov dl, byte [ebx + edi + 1]
cmp dl, 0x40
jb 0x10199d6d
cmp dl, 0x7e
jbe 0x10199d79
mov al, dl
add al, 0x5f
cmp al, 0x5d
ja 0x10199c8e
movzx ecx, ah
movzx eax, dl
shl ecx, 8
or ecx, eax
add ebx, 2
jmp 0x10199f2f
movzx ecx, ah
jmp 0x10199f2e
mov edi, dword [esp + 0x54]
mov dl, byte [ebx + edi]
mov al, dl
add al, 0x5f
cmp al, 0x5d
ja 0x10199dcf
cmp ecx, 2
jb 0x10199c8e
mov ah, byte [ebx + edi + 1]
mov al, ah
add al, 0x5f
cmp al, 0x5d
ja 0x10199c8e
movzx ecx, dl
movzx eax, ah
shl ecx, 8
or ecx, eax
add ebx, 2
jmp 0x10199f2f
cmp dl, 0x8e
je 0x10199c8e
cmp dl, 0x8f
je 0x10199c8e
cmp dl, 0xa0
je 0x10199c8e
cmp dl, 0xff
je 0x10199c8e
movzx ecx, dl
jmp 0x10199f2e
mov edi, dword [esp + 0x54]
mov dl, byte [ebx + edi]
cmp dl, 0x81
jb 0x10199e0c
cmp dl, 0x9f
jbe 0x10199e14
mov al, dl
add al, 0x20
cmp al, 0x1c
ja 0x10199e4c
cmp ecx, 2
jb 0x10199c8e
mov al, byte [ebx + edi + 1]
cmp al, 0x40
jb 0x10199c8e
cmp al, 0x7f
je 0x10199c8e
cmp al, 0xfd
jae 0x10199c8e
movzx ecx, dl
movzx eax, al
shl ecx, 8
or ecx, eax
add ebx, 2
jmp 0x10199f2f
cmp dl, 0x80
jb 0x10199e63
cmp dl, 0xa1
jb 0x10199c8e
cmp dl, 0xdf
ja 0x10199c8e
movzx ecx, dl
jmp 0x10199f2e
mov edi, dword [esp + 0x54]
mov dl, byte [ebx + edi]
mov al, dl
add al, 0x5f
cmp al, 0x5d
ja 0x10199ea7
cmp ecx, 2
jb 0x10199c8e
movzx edi, byte [ebx + edi + 1]
lea eax, [edi - 0xa1]
cmp eax, 0x5d
ja 0x10199c8e
movzx ecx, dl
shl ecx, 8
or ecx, edi
add ebx, 2
jmp 0x10199f2f
cmp dl, 0x8e
jne 0x10199ed4
cmp ecx, 2
jb 0x10199c8e
movzx ecx, byte [ebx + edi + 1]
lea eax, [ecx - 0xa1]
cmp eax, 0x3e
ja 0x10199c8e
or ecx, 0x8e00
add ebx, 2
jmp 0x10199f2f
cmp dl, 0x8f
jne 0x10199de1
cmp ecx, 3
jb 0x10199c85
mov dl, byte [ebx + edi + 1]
cmp dl, 0xa1
jb 0x10199c85
cmp dl, 0xfe
ja 0x10199c85
mov al, byte [ebx + edi + 2]
cmp al, 0xa1
jb 0x10199c85
cmp al, 0xfe
ja 0x10199c85
movzx ecx, dl
or ecx, 0x8f00
movzx eax, al
shl ecx, 8
or ecx, eax
add ebx, 3
jmp 0x10199f2f
mov edi, dword [esp + 0x54]
movzx ecx, byte [ebx + edi]
inc ebx
mov eax, dword [ebp + 4]
lea edx, [eax + 0xc]
mov eax, dword [eax]
lea eax, [eax + eax*2]
lea eax, [eax - 3]
lea eax, [edx + eax*4]
cmp edx, eax
ja 0x10199c8e
cmp dword [edx], ecx
je 0x10199f58
add edx, 0xc
cmp edx, eax
jbe 0x10199f48
jmp 0x10199c8e
mov ecx, dword [edx + 4]
movzx edi, word [edx + 8]
mov ebp, dword [esp + 0x60]
jmp 0x10199f7a
cmp esi, 0x40
jae 0x10199faa
mov edx, dword [esp + 0x40]
lea eax, [esi + esi*2]
mov ecx, dword [edx + eax*4 + 4]
movzx edi, word [edx + eax*4 + 8]
test ecx, ecx
je 0x10199faa
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
inc esi
mov byte [esi + ebp - 1], 0x26
push edi
push ecx
lea eax, [esi + ebp]
push eax
call sub.MSVCR110.dll_memcpy
add esi, edi
add esp, 0xc
mov byte [esi + ebp], 0x3b
inc esi
mov dword [esp + 0x18], esi
jmp 0x1019a5e8
mov ecx, dword [esp + 0x30]
test byte [esp + 0x64], 0x80
je case.0x1019a12d.1
cmp dword [esp + 0x34], 1
jg 0x10199fdb
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x30
ja case.0x1019a12d.1
movzx eax, byte [ecx + 0x1019a6a0]
jmp dword [eax*4 + 0x1019a690]
test ecx, ecx
je 0x1019a110
test ebp, ebp
jne 0x10199ff9
mov eax, esi
shr eax, 6
and eax, 3
and esi, 0x3f
mov eax, dword [ecx + eax*4]
movzx esi, word [eax + esi*2]
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x30
ja case.0x1019a12d.1
movzx eax, byte [ecx + 0x1019a6e4]
jmp dword [eax*4 + 0x1019a6d4]
cmp esi, 0x20
jb 0x1019a01a
cmp esi, 0x7e
jbe case.0x1019a12d.1
cmp esi, 0xa
je case.0x1019a12d.1
cmp esi, 9
je case.0x1019a12d.1
cmp esi, 0xd
je case.0x1019a12d.1
cmp esi, 0xa0
jb 0x1019a039
cmp esi, 0xd7ff
jbe case.0x1019a12d.1
cmp esi, 0xe000
jb 0x1019a103
cmp esi, 0x10ffff
ja 0x1019a103
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
cmp edi, 1
jbe 0x1019a134
push edi
push eax
jmp 0x10199aca
cmp esi, 0x20
jb 0x1019a07b
cmp esi, 0x7e
jbe case.0x1019a12d.1
lea eax, [esi - 9]
cmp eax, 4
ja 0x1019a088
cmp esi, 0xb
jne case.0x1019a12d.1
cmp esi, 0xa0
jb 0x1019a098
cmp esi, 0xd7ff
jbe case.0x1019a12d.1
lea eax, [esi - 0xe000]
cmp eax, 0x101fff
ja 0x1019a103
cmp si, 0xfffe
jae 0x1019a103
cmp esi, 0xfdd0
jb case.0x1019a12d.1
cmp esi, 0xfdef
jbe 0x1019a103
jmp case.0x1019a12d.1
cmp esi, 0x20
jb 0x1019a0cb
cmp esi, 0xd7ff
jbe case.0x1019a12d.1
cmp esi, 0xa
je case.0x1019a12d.1
cmp esi, 9
je case.0x1019a12d.1
cmp esi, 0xd
je case.0x1019a12d.1
lea eax, [esi - 0xe000]
cmp eax, 0x101fff
ja 0x1019a103
cmp esi, 0xfffe
je 0x1019a103
cmp esi, 0xffff
jne case.0x1019a12d.1
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
jmp 0x1019a059
cmp esi, 0x7d
ja case.0x1019a12d.1
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x30
ja case.0x1019a12d.1
movzx eax, byte [ecx + 0x1019a728]
jmp dword [eax*4 + 0x1019a718]
mov al, byte [eax]
mov byte [esi + ebp], al
inc esi
mov dword [esp + 0x18], esi
jmp 0x1019a5e8
cmp byte [esp + 0x6c], 0
jne 0x1019a255
cmp byte [ebx + edx], 0x23
lea ebp, [ebx + edx]
mov dword [esp + 0x44], ebp
jne 0x1019a389
lea esi, [edx + 1]
add esi, ebx
mov al, byte [esi]
cmp al, 0x78
je 0x1019a17c
cmp al, 0x58
je 0x1019a17c
movsx eax, al
push eax
xor edi, edi
call dword [sym.imp.MSVCR110.dll_isdigit]
jmp 0x1019a190
mov edi, 1
test al, al
je 0x1019a186
inc esi
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR110.dll_isxdigit]
add esp, 4
test eax, eax
je 0x1019a255
mov ecx, 0x10
mov eax, 0xa
test edi, edi
cmovne eax, ecx
push eax
lea eax, [esp + 0x4c]
push eax
push esi
call dword [sym.imp.MSVCR110.dll_strtol]
mov edi, dword [esp + 0x54]
add esp, 0xc
cmp byte [edi], 0x3b
mov ecx, eax
jne 0x1019a255
cmp ecx, 0x10ffff
jg 0x1019a255
test byte [esp + 0x64], 0x80
je case.0x1019a1f4.1
mov edx, dword [esp + 0x2c]
cmp edx, 0x30
ja case.0x1019a1f4.1
movzx eax, byte [edx + 0x1019a76c]
jmp dword [eax*4 + 0x1019a75c]
mov eax, 0x10ffff
cmp eax, ecx
sbb eax, eax
inc eax
jmp 0x1019a376
cmp ecx, 0x20
jb 0x1019a218
cmp ecx, 0x7e
jbe case.0x1019a1f4.1
lea eax, [ecx - 9]
cmp eax, 3
ja 0x1019a229
cmp ecx, 0xb
jne case.0x1019a1f4.1
lea eax, [ecx - 0xa0]
cmp eax, 0x10ff5f
ja 0x1019a255
cmp cx, 0xfffe
jae 0x1019a255
cmp ecx, 0xfdd0
jb case.0x1019a1f4.1
cmp ecx, 0xfdef
ja case.0x1019a1f4.1
mov esi, dword [esp + 0x18]
mov eax, dword [str.amp_]
mov ebp, dword [esp + 0x1c]
add esi, 5
mov dword [esi + ebp - 5], eax
mov al, byte [0x1061e940]
mov byte [esi + ebp - 1], al
mov dword [esp + 0x18], esi
jmp 0x1019a5e8
movzx eax, byte [edx + 0x1019a7b0]
jmp dword [eax*4 + 0x1019a7a0]
test eax, eax
je 0x1019a255
sub edi, ebx
sub edi, dword [esp + 0x54]
jmp 0x1019a577
mov edi, ebp
mov ecx, edi
mov dword [esp + 0x10], ecx
mov al, byte [edi]
cmp al, 0x61
jl 0x1019a39b
cmp al, 0x7a
jle 0x1019a3ab
cmp al, 0x41
jl 0x1019a3a3
cmp al, 0x5a
jle 0x1019a3ab
cmp al, 0x30
jl 0x1019a3ae
cmp al, 0x39
jg 0x1019a3ae
inc edi
jmp 0x1019a391
cmp byte [edi], 0x3b
jne 0x1019a255
sub edi, ecx
mov dword [esp + 0x4c], edi
je 0x1019a255
mov eax, edi
mov dword [esp + 0x14], eax
mov esi, ecx
mov edx, 0x1505
cmp edi, 8
jb switch.0x1019a45c
mov ebp, edi
shr ebp, 3
mov edi, edi
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 edi, 8
dec ebp
jne 0x1019a3e0
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0x1019a7e4]
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 ecx, edx
shl edx, 5
add edx, ecx
movsx ecx, byte [esi]
add edx, ecx
mov ecx, dword [esp + 0x38]
mov eax, edx
xor edx, edx
div dword [ecx]
mov eax, dword [ecx + 4]
mov ebp, dword [eax + edx*4]
mov ecx, dword [ebp]
test ecx, ecx
je 0x1019a534
movzx eax, word [ebp + 4]
cmp eax, edi
jne 0x1019a52a
mov edx, dword [esp + 0x10]
mov esi, edi
sub esi, 4
jb 0x1019a4f8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x1019a4fd
add edx, 4
add ecx, 4
sub esi, 4
jae 0x1019a4e7
cmp esi, 0xfffffffc
je 0x1019a573
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1019a52a
cmp esi, 0xfffffffd
je 0x1019a573
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x1019a52a
cmp esi, 0xfffffffe
je 0x1019a573
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x1019a52a
cmp esi, 0xffffffff
je 0x1019a573
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x1019a573
mov ecx, dword [ebp + 0x10]
add ebp, 0x10
test ecx, ecx
jne 0x1019a4d4
cmp dword [esp + 0x2c], 0x20
jne 0x1019a255
cmp edi, 4
jne 0x1019a255
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x61
jne 0x1019a255
cmp byte [eax + 1], 0x70
jne 0x1019a255
cmp byte [eax + 2], 0x6f
jne 0x1019a255
cmp byte [eax + 3], 0x73
jne 0x1019a255
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ecx, edx
sub ecx, esi
lea eax, [edi + 2]
cmp ecx, eax
jae 0x1019a5b4
lea eax, [edi + 0x81]
push eax
mov eax, dword [esp + 0x20]
push 1
push edx
push eax
call sym.php5.dll__safe_erealloc
mov ecx, dword [esp + 0x30]
sub ecx, 0xffffff80
add esp, 0x10
add ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x1019a5b8
mov eax, dword [esp + 0x1c]
push edi
mov byte [esi + eax], 0x26
push ebp
mov ebp, dword [esp + 0x24]
inc esi
lea eax, [esi + ebp]
push eax
call sub.MSVCR110.dll_memcpy
add esi, edi
inc esi
mov byte [esi + ebp - 1], 0x3b
inc ebx
add esp, 0xc
mov dword [esp + 0x18], esi
add ebx, edi
jmp 0x1019a5e8
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
cmp ebx, eax
jb 0x101994e3
mov eax, dword [esp + 0x5c]
mov byte [esi + ebp], 0
mov dword [eax], esi
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
push eax
call sym.php5.dll__efree
mov eax, dword [esp + 0x60]
add esp, 4
mov dword [eax], 0
mov eax, dword [0x106690cc]
test eax, eax
jne 0x1019a600
push eax
push 0x1053ac9c
call sym.php5.dll__estrndup
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret