688959:	68 28 1f bf 00       	push   $0xbf1f28
68895e:	8d be 14 65 01 00    	lea    0x16514(%esi),%edi
688964:	57                   	push   %edi
688965:	e8 af 62 d8 ff       	call   0x40ec19
68896a:	83 c4 0c             	add    $0xc,%esp
68896d:	85 c0                	test   %eax,%eax
68896f:	75 28                	jne    0x688999
688971:	8a 86 19 65 01 00    	mov    0x16519(%esi),%al
688977:	3c 3a                	cmp    $0x3a,%al
688979:	75 0c                	jne    0x688987
68897b:	8d 86 1a 65 01 00    	lea    0x1651a(%esi),%eax
688981:	89 44 24 10          	mov    %eax,0x10(%esp)
688985:	eb 1a                	jmp    0x6889a1
688987:	33 d2                	xor    %edx,%edx
688989:	b9 00 02 bf 00       	mov    $0xbf0200,%ecx
68898e:	84 c0                	test   %al,%al
688990:	0f 45 ca             	cmovne %edx,%ecx
688993:	89 4c 24 10          	mov    %ecx,0x10(%esp)
688997:	eb 08                	jmp    0x6889a1
688999:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
6889a0:	00
6889a1:	8b ae 5c 85 01 00    	mov    0x1855c(%esi),%ebp
6889a7:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
6889ae:	00
6889af:	85 ed                	test   %ebp,%ebp
6889b1:	74 3f                	je     0x6889f2
6889b3:	8b cf                	mov    %edi,%ecx
6889b5:	8d 45 16             	lea    0x16(%ebp),%eax
6889b8:	8a 10                	mov    (%eax),%dl
6889ba:	3a 11                	cmp    (%ecx),%dl
6889bc:	75 1a                	jne    0x6889d8
6889be:	84 d2                	test   %dl,%dl
6889c0:	74 12                	je     0x6889d4
6889c2:	8a 50 01             	mov    0x1(%eax),%dl
6889c5:	3a 51 01             	cmp    0x1(%ecx),%dl
6889c8:	75 0e                	jne    0x6889d8
6889ca:	83 c0 02             	add    $0x2,%eax
6889cd:	83 c1 02             	add    $0x2,%ecx
6889d0:	84 d2                	test   %dl,%dl
6889d2:	75 e4                	jne    0x6889b8
6889d4:	33 c0                	xor    %eax,%eax
6889d6:	eb 05                	jmp    0x6889dd
6889d8:	1b c0                	sbb    %eax,%eax
6889da:	83 c8 01             	or     $0x1,%eax
6889dd:	85 c0                	test   %eax,%eax
6889df:	74 0d                	je     0x6889ee
6889e1:	89 6c 24 18          	mov    %ebp,0x18(%esp)
6889e5:	8b 6d 00             	mov    0x0(%ebp),%ebp
6889e8:	85 ed                	test   %ebp,%ebp
6889ea:	75 c7                	jne    0x6889b3
6889ec:	eb 04                	jmp    0x6889f2
6889ee:	85 ed                	test   %ebp,%ebp
6889f0:	75 72                	jne    0x688a64
6889f2:	8d 4f 01             	lea    0x1(%edi),%ecx
6889f5:	8a 07                	mov    (%edi),%al
6889f7:	47                   	inc    %edi
6889f8:	84 c0                	test   %al,%al
6889fa:	75 f9                	jne    0x6889f5
6889fc:	2b f9                	sub    %ecx,%edi
6889fe:	8d 47 18             	lea    0x18(%edi),%eax
688a01:	50                   	push   %eax
688a02:	e8 ac c2 d8 ff       	call   0x414cb3
688a07:	8b e8                	mov    %eax,%ebp
688a09:	83 c4 04             	add    $0x4,%esp
688a0c:	85 ed                	test   %ebp,%ebp
688a0e:	0f 84 dc 02 00 00    	je     0x688cf0
688a14:	6a ff                	push   $0xffffffff
688a16:	8d 86 14 65 01 00    	lea    0x16514(%esi),%eax
688a1c:	50                   	push   %eax
688a1d:	8d 47 01             	lea    0x1(%edi),%eax
688a20:	50                   	push   %eax
688a21:	8d 45 16             	lea    0x16(%ebp),%eax
688a24:	50                   	push   %eax
688a25:	e8 53 f8 d8 ff       	call   0x41827d
688a2a:	8b 44 24 28          	mov    0x28(%esp),%eax
688a2e:	83 c4 10             	add    $0x10,%esp
688a31:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
688a38:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
688a3f:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
688a46:	85 c0                	test   %eax,%eax
688a48:	74 0b                	je     0x688a55
688a4a:	89 28                	mov    %ebp,(%eax)
688a4c:	c7 45 00 00 00 00 00 	movl   $0x0,0x0(%ebp)
688a53:	eb 0f                	jmp    0x688a64
688a55:	8b 86 5c 85 01 00    	mov    0x1855c(%esi),%eax
688a5b:	89 45 00             	mov    %eax,0x0(%ebp)
688a5e:	89 ae 5c 85 01 00    	mov    %ebp,0x1855c(%esi)
688a64:	8d 43 01             	lea    0x1(%ebx),%eax
688a67:	85 c0                	test   %eax,%eax
688a69:	7e 46                	jle    0x688ab1
688a6b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
688a70:	83 fb 20             	cmp    $0x20,%ebx
688a73:	7f 3c                	jg     0x688ab1
688a75:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688a7b:	3b 86 f0 60 00 00    	cmp    0x60f0(%esi),%eax
688a81:	72 12                	jb     0x688a95
688a83:	56                   	push   %esi
688a84:	e8 1c 94 d8 ff       	call   0x411ea5
688a89:	83 c4 04             	add    $0x4,%esp
688a8c:	85 c0                	test   %eax,%eax
688a8e:	74 05                	je     0x688a95
688a90:	83 cb ff             	or     $0xffffffff,%ebx
688a93:	eb 15                	jmp    0x688aaa
688a95:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688a9b:	0f b6 9c 30 14 61 00 	movzbl 0x6114(%eax,%esi,1),%ebx
688aa2:	00
688aa3:	40                   	inc    %eax
688aa4:	89 86 ec 60 00 00    	mov    %eax,0x60ec(%esi)
688aaa:	8d 43 01             	lea    0x1(%ebx),%eax
688aad:	85 c0                	test   %eax,%eax
688aaf:	7f bf                	jg     0x688a70
688ab1:	83 fb 3d             	cmp    $0x3d,%ebx
688ab4:	0f 85 de 01 00 00    	jne    0x688c98
688aba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
688ac0:	56                   	push   %esi
688ac1:	e8 36 9c d8 ff       	call   0x4126fc
688ac6:	8b f8                	mov    %eax,%edi
688ac8:	83 c4 04             	add    $0x4,%esp
688acb:	8d 47 01             	lea    0x1(%edi),%eax
688ace:	85 c0                	test   %eax,%eax
688ad0:	7e 05                	jle    0x688ad7
688ad2:	83 ff 20             	cmp    $0x20,%edi
688ad5:	7e e9                	jle    0x688ac0
688ad7:	83 ff fb             	cmp    $0xfffffffb,%edi
688ada:	74 10                	je     0x688aec
688adc:	83 ff fa             	cmp    $0xfffffffa,%edi
688adf:	74 0b                	je     0x688aec
688ae1:	89 be f4 60 00 00    	mov    %edi,0x60f4(%esi)
688ae7:	bf 20 00 00 00       	mov    $0x20,%edi
688aec:	8b 45 0c             	mov    0xc(%ebp),%eax
688aef:	89 44 24 18          	mov    %eax,0x18(%esp)
688af3:	8d 44 24 18          	lea    0x18(%esp),%eax
688af7:	57                   	push   %edi
688af8:	50                   	push   %eax
688af9:	ff 75 08             	push   0x8(%ebp)
688afc:	56                   	push   %esi
688afd:	e8 2e 9d ff ff       	call   0x682830
688b02:	83 c4 10             	add    $0x10,%esp
688b05:	85 c0                	test   %eax,%eax
688b07:	0f 84 43 01 00 00    	je     0x688c50
688b0d:	83 be c0 91 01 00 14 	cmpl   $0x14,0x191c0(%esi)
688b14:	0f 85 ca 01 00 00    	jne    0x688ce4
688b1a:	ff 74 24 18          	push   0x18(%esp)
688b1e:	c7 86 c0 91 01 00 00 	movl   $0x0,0x191c0(%esi)
688b25:	00 00 00
688b28:	ff 75 08             	push   0x8(%ebp)
688b2b:	56                   	push   %esi
688b2c:	e8 cd 02 d9 ff       	call   0x418dfe
688b31:	83 c4 0c             	add    $0xc,%esp
688b34:	85 c0                	test   %eax,%eax
688b36:	0f 85 a8 01 00 00    	jne    0x688ce4
688b3c:	8b 45 08             	mov    0x8(%ebp),%eax
688b3f:	85 c0                	test   %eax,%eax
688b41:	74 09                	je     0x688b4c
688b43:	50                   	push   %eax
688b44:	e8 89 cd da ff       	call   0x4358d2
688b49:	83 c4 04             	add    $0x4,%esp
688b4c:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
688b53:	8b 8e 10 61 00 00    	mov    0x6110(%esi),%ecx
688b59:	8b 86 0c 61 00 00    	mov    0x610c(%esi),%eax
688b5f:	2b c1                	sub    %ecx,%eax
688b61:	89 44 24 18          	mov    %eax,0x18(%esp)
688b65:	8d 44 24 18          	lea    0x18(%esp),%eax
688b69:	57                   	push   %edi
688b6a:	50                   	push   %eax
688b6b:	8b 86 08 61 00 00    	mov    0x6108(%esi),%eax
688b71:	03 c1                	add    %ecx,%eax
688b73:	50                   	push   %eax
688b74:	56                   	push   %esi
688b75:	e8 b6 9c ff ff       	call   0x682830
688b7a:	83 c4 10             	add    $0x10,%esp
688b7d:	85 c0                	test   %eax,%eax
688b7f:	74 66                	je     0x688be7
688b81:	83 be c0 91 01 00 14 	cmpl   $0x14,0x191c0(%esi)
688b88:	0f 85 56 01 00 00    	jne    0x688ce4
688b8e:	8b 86 0c 61 00 00    	mov    0x610c(%esi),%eax
688b94:	6a 00                	push   $0x0
688b96:	6a 00                	push   $0x0
688b98:	56                   	push   %esi
688b99:	c7 86 c0 91 01 00 00 	movl   $0x0,0x191c0(%esi)
688ba0:	00 00 00
688ba3:	89 86 10 61 00 00    	mov    %eax,0x6110(%esi)
688ba9:	e8 33 b1 d8 ff       	call   0x413ce1
688bae:	83 c4 0c             	add    $0xc,%esp
688bb1:	85 c0                	test   %eax,%eax
688bb3:	0f 85 2b 01 00 00    	jne    0x688ce4
688bb9:	8b 8e 10 61 00 00    	mov    0x6110(%esi),%ecx
688bbf:	8b 86 0c 61 00 00    	mov    0x610c(%esi),%eax
688bc5:	2b c1                	sub    %ecx,%eax
688bc7:	89 44 24 18          	mov    %eax,0x18(%esp)
688bcb:	8d 44 24 18          	lea    0x18(%esp),%eax
688bcf:	57                   	push   %edi
688bd0:	50                   	push   %eax
688bd1:	8b 86 08 61 00 00    	mov    0x6108(%esi),%eax
688bd7:	03 c1                	add    %ecx,%eax
688bd9:	50                   	push   %eax
688bda:	56                   	push   %esi
688bdb:	e8 50 9c ff ff       	call   0x682830
688be0:	83 c4 10             	add    $0x10,%esp
688be3:	85 c0                	test   %eax,%eax
688be5:	75 9a                	jne    0x688b81
688be7:	83 be 10 61 00 00 00 	cmpl   $0x0,0x6110(%esi)
688bee:	74 08                	je     0x688bf8
688bf0:	8b 86 0c 61 00 00    	mov    0x610c(%esi),%eax
688bf6:	eb 22                	jmp    0x688c1a
688bf8:	8b 8e 08 61 00 00    	mov    0x6108(%esi),%ecx
688bfe:	8d 51 01             	lea    0x1(%ecx),%edx
688c01:	8a 01                	mov    (%ecx),%al
688c03:	41                   	inc    %ecx
688c04:	84 c0                	test   %al,%al
688c06:	75 f9                	jne    0x688c01
688c08:	2b ca                	sub    %edx,%ecx
688c0a:	8d 41 01             	lea    0x1(%ecx),%eax
688c0d:	b9 00 01 00 00       	mov    $0x100,%ecx
688c12:	3d 00 01 00 00       	cmp    $0x100,%eax
688c17:	0f 42 c1             	cmovb  %ecx,%eax
688c1a:	50                   	push   %eax
688c1b:	89 45 0c             	mov    %eax,0xc(%ebp)
688c1e:	e8 90 c0 d8 ff       	call   0x414cb3
688c23:	83 c4 04             	add    $0x4,%esp
688c26:	89 45 08             	mov    %eax,0x8(%ebp)
688c29:	85 c0                	test   %eax,%eax
688c2b:	0f 84 bf 00 00 00    	je     0x688cf0
688c31:	6a ff                	push   $0xffffffff
688c33:	ff b6 08 61 00 00    	push   0x6108(%esi)
688c39:	ff 75 0c             	push   0xc(%ebp)
688c3c:	50                   	push   %eax
688c3d:	e8 3b f6 d8 ff       	call   0x41827d
688c42:	83 c4 10             	add    $0x10,%esp
688c45:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
688c4c:	00 00 00 00
688c50:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688c56:	3b 86 f0 60 00 00    	cmp    0x60f0(%esi),%eax
688c5c:	72 12                	jb     0x688c70
688c5e:	56                   	push   %esi
688c5f:	e8 41 92 d8 ff       	call   0x411ea5
688c64:	83 c4 04             	add    $0x4,%esp
688c67:	85 c0                	test   %eax,%eax
688c69:	74 05                	je     0x688c70
688c6b:	83 cb ff             	or     $0xffffffff,%ebx
688c6e:	eb 15                	jmp    0x688c85
688c70:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688c76:	0f b6 9c 30 14 61 00 	movzbl 0x6114(%eax,%esi,1),%ebx
688c7d:	00
688c7e:	40                   	inc    %eax
688c7f:	89 86 ec 60 00 00    	mov    %eax,0x60ec(%esi)
688c85:	8d 43 01             	lea    0x1(%ebx),%eax
688c88:	85 c0                	test   %eax,%eax
688c8a:	7e 05                	jle    0x688c91
688c8c:	83 fb 20             	cmp    $0x20,%ebx
688c8f:	7e bf                	jle    0x688c50
688c91:	b8 02 00 00 00       	mov    $0x2,%eax
688c96:	eb 05                	jmp    0x688c9d
688c98:	b8 01 00 00 00       	mov    $0x1,%eax
688c9d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
688ca1:	66 89 45 14          	mov    %ax,0x14(%ebp)
688ca5:	85 c9                	test   %ecx,%ecx
688ca7:	74 16                	je     0x688cbf
688ca9:	8b 45 08             	mov    0x8(%ebp),%eax
688cac:	85 c0                	test   %eax,%eax
688cae:	74 0f                	je     0x688cbf
688cb0:	50                   	push   %eax
688cb1:	51                   	push   %ecx
688cb2:	56                   	push   %esi
688cb3:	e8 d1 07 d9 ff       	call   0x419489
688cb8:	83 c4 0c             	add    $0xc,%esp
688cbb:	85 c0                	test   %eax,%eax
688cbd:	74 25                	je     0x688ce4
688cbf:	83 fb ff             	cmp    $0xffffffff,%ebx
688cc2:	0f 85 08 fc ff ff    	jne    0x6888d0
688cc8:	8b 8e c0 91 01 00    	mov    0x191c0(%esi),%ecx
688cce:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
688cd3:	5d                   	pop    %ebp
688cd4:	85 c9                	test   %ecx,%ecx
688cd6:	5f                   	pop    %edi
688cd7:	0f 45 c1             	cmovne %ecx,%eax
688cda:	5b                   	pop    %ebx
688cdb:	89 86 c0 91 01 00    	mov    %eax,0x191c0(%esi)
688ce1:	5e                   	pop    %esi
688ce2:	59                   	pop    %ecx
688ce3:	c3                   	ret
688ce4:	8b 86 c0 91 01 00    	mov    0x191c0(%esi),%eax
688cea:	5d                   	pop    %ebp
688ceb:	5f                   	pop    %edi
688cec:	5b                   	pop    %ebx
688ced:	5e                   	pop    %esi
688cee:	59                   	pop    %ecx
688cef:	c3                   	ret
688cf0:	5d                   	pop    %ebp
688cf1:	5f                   	pop    %edi
688cf2:	5b                   	pop    %ebx
688cf3:	c7 86 c0 91 01 00 14 	movl   $0x14,0x191c0(%esi)
688cfa:	00 00 00
688cfd:	b8 14 00 00 00       	mov    $0x14,%eax
688d02:	5e                   	pop    %esi
688d03:	59                   	pop    %ecx
688d04:	c3                   	ret
688d05:	5d                   	pop    %ebp
688d06:	5f                   	pop    %edi
688d07:	5b                   	pop    %ebx
688d08:	c7 86 c0 91 01 00 05 	movl   $0x5,0x191c0(%esi)
688d0f:	00 00 00
688d12:	b8 05 00 00 00       	mov    $0x5,%eax
688d17:	5e                   	pop    %esi
688d18:	59                   	pop    %ecx
688d19:	c3                   	ret
688d1a:	83 fb ff             	cmp    $0xffffffff,%ebx
688d1d:	74 a9                	je     0x688cc8
688d1f:	33 c0                	xor    %eax,%eax
688d21:	83 fb 2f             	cmp    $0x2f,%ebx
688d24:	0f 95 c0             	setne  %al
688d27:	0f b7 c0             	movzwl %ax,%eax
688d2a:	66 89 86 fa 60 00 00 	mov    %ax,0x60fa(%esi)
688d31:	66 85 c0             	test   %ax,%ax
688d34:	75 4b                	jne    0x688d81
688d36:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
688d3d:	00 00 00
688d40:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688d46:	3b 86 f0 60 00 00    	cmp    0x60f0(%esi),%eax
688d4c:	72 12                	jb     0x688d60
688d4e:	56                   	push   %esi
688d4f:	e8 51 91 d8 ff       	call   0x411ea5
688d54:	83 c4 04             	add    $0x4,%esp
688d57:	85 c0                	test   %eax,%eax
688d59:	74 05                	je     0x688d60
688d5b:	83 c9 ff             	or     $0xffffffff,%ecx
688d5e:	eb 15                	jmp    0x688d75
688d60:	8b 86 ec 60 00 00    	mov    0x60ec(%esi),%eax
688d66:	0f b6 8c 30 14 61 00 	movzbl 0x6114(%eax,%esi,1),%ecx
688d6d:	00
688d6e:	40                   	inc    %eax
688d6f:	89 86 ec 60 00 00    	mov    %eax,0x60ec(%esi)
688d75:	8d 41 01             	lea    0x1(%ecx),%eax
688d78:	85 c0                	test   %eax,%eax
688d7a:	7e 05                	jle    0x688d81
688d7c:	83 f9 20             	cmp    $0x20,%ecx
688d7f:	7e bf                	jle    0x688d40
688d81:	8b 9e 5c 85 01 00    	mov    0x1855c(%esi),%ebx
688d87:	89 5c 24 18          	mov    %ebx,0x18(%esp)
688d8b:	85 db                	test   %ebx,%ebx
688d8d:	0f 84 e2 07 00 00    	je     0x689575
688d93:	66 83 7b 14 00       	cmpw   $0x0,0x14(%ebx)
688d98:	0f 84 c9 07 00 00    	je     0x689567
688d9e:	8b 7b 08             	mov    0x8(%ebx),%edi
688da1:	85 ff                	test   %edi,%edi
688da3:	0f 84 be 07 00 00    	je     0x689567
688da9:	8d 6b 16             	lea    0x16(%ebx),%ebp
688dac:	b9 e8 b6 bd 00       	mov    $0xbdb6e8,%ecx
688db1:	8b c5                	mov    %ebp,%eax
688db3:	8a 10                	mov    (%eax),%dl