40fb7d:	3b 41 04             	cmp    0x4(%ecx),%eax
40fb80:	75 10                	jne    0x40fb92
40fb82:	38 59 0c             	cmp    %bl,0xc(%ecx)
40fb85:	74 05                	je     0x40fb8c
40fb87:	ff 46 14             	incl   0x14(%esi)
40fb8a:	eb 19                	jmp    0x40fba5
40fb8c:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
40fb90:	eb 13                	jmp    0x40fba5
40fb92:	ff 46 14             	incl   0x14(%esi)
40fb95:	ff 41 08             	incl   0x8(%ecx)
40fb98:	8b 07                	mov    (%edi),%eax
40fb9a:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fb9d:	8b 00                	mov    (%eax),%eax
40fb9f:	88 08                	mov    %cl,(%eax)
40fba1:	8b 07                	mov    (%edi),%eax
40fba3:	ff 00                	incl   (%eax)
40fba5:	8b 46 0c             	mov    0xc(%esi),%eax
40fba8:	8a 08                	mov    (%eax),%cl
40fbaa:	40                   	inc    %eax
40fbab:	89 46 0c             	mov    %eax,0xc(%esi)
40fbae:	88 4e 2d             	mov    %cl,0x2d(%esi)
40fbb1:	84 c9                	test   %cl,%cl
40fbb3:	75 3c                	jne    0x40fbf1
40fbb5:	8b 46 08             	mov    0x8(%esi),%eax
40fbb8:	6a 16                	push   $0x16
40fbba:	5f                   	pop    %edi
40fbbb:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40fbbf:	89 78 18             	mov    %edi,0x18(%eax)
40fbc2:	ff 76 08             	push   0x8(%esi)
40fbc5:	53                   	push   %ebx
40fbc6:	53                   	push   %ebx
40fbc7:	53                   	push   %ebx
40fbc8:	53                   	push   %ebx
40fbc9:	53                   	push   %ebx
40fbca:	e8 a2 d7 ff ff       	call   0x40d371
40fbcf:	8b 46 08             	mov    0x8(%esi),%eax
40fbd2:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40fbd6:	89 78 18             	mov    %edi,0x18(%eax)
40fbd9:	ff 76 08             	push   0x8(%esi)
40fbdc:	53                   	push   %ebx
40fbdd:	53                   	push   %ebx
40fbde:	53                   	push   %ebx
40fbdf:	53                   	push   %ebx
40fbe0:	53                   	push   %ebx
40fbe1:	e8 8b d7 ff ff       	call   0x40d371
40fbe6:	83 c4 30             	add    $0x30,%esp
40fbe9:	e9 e3 fe ff ff       	jmp    0x40fad1
40fbee:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fbf1:	8b 17                	mov    (%edi),%edx
40fbf3:	8b 42 08             	mov    0x8(%edx),%eax
40fbf6:	3b 42 04             	cmp    0x4(%edx),%eax
40fbf9:	75 16                	jne    0x40fc11
40fbfb:	38 5a 0c             	cmp    %bl,0xc(%edx)
40fbfe:	74 08                	je     0x40fc08
40fc00:	ff 46 14             	incl   0x14(%esi)
40fc03:	e9 ee 00 00 00       	jmp    0x40fcf6
40fc08:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
40fc0c:	e9 e5 00 00 00       	jmp    0x40fcf6
40fc11:	ff 46 14             	incl   0x14(%esi)
40fc14:	ff 42 08             	incl   0x8(%edx)
40fc17:	8b 07                	mov    (%edi),%eax
40fc19:	8b 00                	mov    (%eax),%eax
40fc1b:	88 08                	mov    %cl,(%eax)
40fc1d:	8b 07                	mov    (%edi),%eax
40fc1f:	ff 00                	incl   (%eax)
40fc21:	e9 d0 00 00 00       	jmp    0x40fcf6
40fc26:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
40fc2a:	89 5e 20             	mov    %ebx,0x20(%esi)
40fc2d:	88 5e 2c             	mov    %bl,0x2c(%esi)
40fc30:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40fc33:	89 5e 28             	mov    %ebx,0x28(%esi)
40fc36:	88 5e 38             	mov    %bl,0x38(%esi)
40fc39:	e9 b8 00 00 00       	jmp    0x40fcf6
40fc3e:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
40fc42:	83 e8 20             	sub    $0x20,%eax
40fc45:	74 37                	je     0x40fc7e
40fc47:	83 e8 03             	sub    $0x3,%eax
40fc4a:	74 2c                	je     0x40fc78
40fc4c:	83 e8 08             	sub    $0x8,%eax
40fc4f:	74 21                	je     0x40fc72
40fc51:	48                   	dec    %eax
40fc52:	83 e8 01             	sub    $0x1,%eax
40fc55:	74 12                	je     0x40fc69
40fc57:	83 e8 03             	sub    $0x3,%eax
40fc5a:	0f 85 96 00 00 00    	jne    0x40fcf6
40fc60:	83 4e 1c 08          	orl    $0x8,0x1c(%esi)
40fc64:	e9 8d 00 00 00       	jmp    0x40fcf6
40fc69:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
40fc6d:	e9 84 00 00 00       	jmp    0x40fcf6
40fc72:	83 4e 1c 01          	orl    $0x1,0x1c(%esi)
40fc76:	eb 7e                	jmp    0x40fcf6
40fc78:	83 4e 1c 20          	orl    $0x20,0x1c(%esi)
40fc7c:	eb 78                	jmp    0x40fcf6
40fc7e:	83 4e 1c 02          	orl    $0x2,0x1c(%esi)
40fc82:	eb 72                	jmp    0x40fcf6
40fc84:	80 7d ff 2a          	cmpb   $0x2a,-0x1(%ebp)
40fc88:	74 0d                	je     0x40fc97
40fc8a:	8d 46 20             	lea    0x20(%esi),%eax
40fc8d:	50                   	push   %eax
40fc8e:	8b ce                	mov    %esi,%ecx
40fc90:	e8 55 fa ff ff       	call   0x40f6ea
40fc95:	eb 57                	jmp    0x40fcee
40fc97:	8b 4e 10             	mov    0x10(%esi),%ecx
40fc9a:	8d 41 04             	lea    0x4(%ecx),%eax
40fc9d:	89 46 10             	mov    %eax,0x10(%esi)
40fca0:	8b 01                	mov    (%ecx),%eax
40fca2:	89 46 20             	mov    %eax,0x20(%esi)
40fca5:	85 c0                	test   %eax,%eax
40fca7:	79 09                	jns    0x40fcb2
40fca9:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
40fcad:	f7 d8                	neg    %eax
40fcaf:	89 46 20             	mov    %eax,0x20(%esi)
40fcb2:	b0 01                	mov    $0x1,%al
40fcb4:	eb 38                	jmp    0x40fcee
40fcb6:	89 5e 24             	mov    %ebx,0x24(%esi)
40fcb9:	eb 3b                	jmp    0x40fcf6
40fcbb:	80 7d ff 2a          	cmpb   $0x2a,-0x1(%ebp)
40fcbf:	74 05                	je     0x40fcc6
40fcc1:	8d 46 24             	lea    0x24(%esi),%eax
40fcc4:	eb c7                	jmp    0x40fc8d
40fcc6:	8b 4e 10             	mov    0x10(%esi),%ecx
40fcc9:	8d 41 04             	lea    0x4(%ecx),%eax
40fccc:	89 46 10             	mov    %eax,0x10(%esi)
40fccf:	8b 01                	mov    (%ecx),%eax
40fcd1:	89 46 24             	mov    %eax,0x24(%esi)
40fcd4:	85 c0                	test   %eax,%eax
40fcd6:	79 da                	jns    0x40fcb2
40fcd8:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
40fcdc:	eb d4                	jmp    0x40fcb2
40fcde:	8b ce                	mov    %esi,%ecx
40fce0:	e8 50 06 00 00       	call   0x410335
40fce5:	eb 07                	jmp    0x40fcee
40fce7:	8b ce                	mov    %esi,%ecx
40fce9:	e8 6c 0c 00 00       	call   0x41095a
40fcee:	84 c0                	test   %al,%al
40fcf0:	0f 84 db fd ff ff    	je     0x40fad1
40fcf6:	8b 46 0c             	mov    0xc(%esi),%eax
40fcf9:	8a 10                	mov    (%eax),%dl
40fcfb:	8d 48 01             	lea    0x1(%eax),%ecx
40fcfe:	89 4e 0c             	mov    %ecx,0xc(%esi)
40fd01:	88 55 ff             	mov    %dl,-0x1(%ebp)
40fd04:	88 56 2d             	mov    %dl,0x2d(%esi)
40fd07:	88 55 fb             	mov    %dl,-0x5(%ebp)
40fd0a:	84 d2                	test   %dl,%dl
40fd0c:	0f 85 fc fd ff ff    	jne    0x40fb0e
40fd12:	ff 86 50 04 00 00    	incl   0x450(%esi)
40fd18:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40fd1f:	0f 85 cc fd ff ff    	jne    0x40faf1
40fd25:	8b 46 14             	mov    0x14(%esi),%eax
40fd28:	e9 a7 fd ff ff       	jmp    0x40fad4
40fd2d:	8b 4e 08             	mov    0x8(%esi),%ecx
40fd30:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
40fd34:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
40fd3b:	e9 81 fd ff ff       	jmp    0x40fac1
40fd40:	40                   	inc    %eax
40fd41:	fb                   	sti
40fd42:	40                   	inc    %eax
40fd43:	00 26                	add    %ah,(%esi)
40fd45:	fc                   	cld
40fd46:	40                   	inc    %eax
40fd47:	00 3e                	add    %bh,(%esi)
40fd49:	fc                   	cld
40fd4a:	40                   	inc    %eax
40fd4b:	00 84 fc 40 00 b6 fc 	add    %al,-0x349ffc0(%esp,%edi,8)
40fd52:	40                   	inc    %eax
40fd53:	00 bb fc 40 00 de    	add    %bh,-0x21ffbf04(%ebx)
40fd59:	fc                   	cld
40fd5a:	40                   	inc    %eax
40fd5b:	00 e7                	add    %ah,%bh
40fd5d:	fc                   	cld
40fd5e:	40                   	inc    %eax
40fd5f:	00 8b ff 53 56 8b    	add    %cl,-0x74a9ac01(%ebx)
40fd65:	f1                   	int1
40fd66:	57                   	push   %edi
40fd67:	ff 76 08             	push   0x8(%esi)
40fd6a:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40fd70:	e8 f9 1b 00 00       	call   0x41196e
40fd75:	84 c0                	test   %al,%al
40fd77:	74 27                	je     0x40fda0
40fd79:	8b 56 0c             	mov    0xc(%esi),%edx
40fd7c:	85 d2                	test   %edx,%edx
40fd7e:	75 27                	jne    0x40fda7
40fd80:	33 db                	xor    %ebx,%ebx
40fd82:	8b 46 08             	mov    0x8(%esi),%eax
40fd85:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
40fd8c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40fd90:	ff 76 08             	push   0x8(%esi)
40fd93:	53                   	push   %ebx
40fd94:	53                   	push   %ebx
40fd95:	53                   	push   %ebx
40fd96:	53                   	push   %ebx
40fd97:	53                   	push   %ebx
40fd98:	e8 d4 d5 ff ff       	call   0x40d371
40fd9d:	83 c4 18             	add    $0x18,%esp
40fda0:	83 c8 ff             	or     $0xffffffff,%eax
40fda3:	5f                   	pop    %edi
40fda4:	5e                   	pop    %esi
40fda5:	5b                   	pop    %ebx
40fda6:	c3                   	ret
40fda7:	8b 86 50 04 00 00    	mov    0x450(%esi),%eax
40fdad:	40                   	inc    %eax
40fdae:	89 86 50 04 00 00    	mov    %eax,0x450(%esi)
40fdb4:	83 f8 02             	cmp    $0x2,%eax
40fdb7:	0f 84 a6 01 00 00    	je     0x40ff63
40fdbd:	33 db                	xor    %ebx,%ebx
40fdbf:	89 5e 34             	mov    %ebx,0x34(%esi)
40fdc2:	88 5e 18             	mov    %bl,0x18(%esi)
40fdc5:	0f b7 02             	movzwl (%edx),%eax
40fdc8:	83 c2 02             	add    $0x2,%edx
40fdcb:	89 56 0c             	mov    %edx,0xc(%esi)
40fdce:	66 89 46 2e          	mov    %ax,0x2e(%esi)
40fdd2:	66 85 c0             	test   %ax,%ax
40fdd5:	0f 84 66 01 00 00    	je     0x40ff41
40fddb:	8b f8                	mov    %eax,%edi
40fddd:	8b 46 14             	mov    0x14(%esi),%eax
40fde0:	85 c0                	test   %eax,%eax
40fde2:	0f 88 59 01 00 00    	js     0x40ff41
40fde8:	0f b6 46 18          	movzbl 0x18(%esi),%eax
40fdec:	8b ce                	mov    %esi,%ecx
40fdee:	50                   	push   %eax
40fdef:	57                   	push   %edi
40fdf0:	e8 23 f8 ff ff       	call   0x40f618
40fdf5:	88 46 18             	mov    %al,0x18(%esi)
40fdf8:	3c 08                	cmp    $0x8,%al
40fdfa:	0f 83 6b 01 00 00    	jae    0x40ff6b
40fe00:	0f b6 c0             	movzbl %al,%eax
40fe03:	83 f8 07             	cmp    $0x7,%eax
40fe06:	77 98                	ja     0x40fda0
40fe08:	ff 24 85 80 ff 40 00 	jmp    *0x40ff80(,%eax,4)
40fe0f:	c6 46 38 01          	movb   $0x1,0x38(%esi)
40fe13:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
40fe19:	8b 0a                	mov    (%edx),%ecx
40fe1b:	8b 41 08             	mov    0x8(%ecx),%eax
40fe1e:	3b 41 04             	cmp    0x4(%ecx),%eax
40fe21:	75 16                	jne    0x40fe39
40fe23:	38 59 0c             	cmp    %bl,0xc(%ecx)
40fe26:	74 08                	je     0x40fe30
40fe28:	ff 46 14             	incl   0x14(%esi)
40fe2b:	e9 f6 00 00 00       	jmp    0x40ff26
40fe30:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
40fe34:	e9 ed 00 00 00       	jmp    0x40ff26
40fe39:	ff 46 14             	incl   0x14(%esi)
40fe3c:	ff 41 08             	incl   0x8(%ecx)
40fe3f:	8b 02                	mov    (%edx),%eax
40fe41:	8b 00                	mov    (%eax),%eax
40fe43:	66 89 38             	mov    %di,(%eax)
40fe46:	8b 02                	mov    (%edx),%eax
40fe48:	83 00 02             	addl   $0x2,(%eax)
40fe4b:	e9 d6 00 00 00       	jmp    0x40ff26
40fe50:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
40fe54:	89 5e 20             	mov    %ebx,0x20(%esi)
40fe57:	88 5e 2c             	mov    %bl,0x2c(%esi)
40fe5a:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40fe5d:	89 5e 28             	mov    %ebx,0x28(%esi)
40fe60:	88 5e 38             	mov    %bl,0x38(%esi)
40fe63:	e9 be 00 00 00       	jmp    0x40ff26
40fe68:	0f b7 c7             	movzwl %di,%eax
40fe6b:	83 e8 20             	sub    $0x20,%eax
40fe6e:	74 3a                	je     0x40feaa
40fe70:	83 e8 03             	sub    $0x3,%eax
40fe73:	74 2f                	je     0x40fea4
40fe75:	83 e8 08             	sub    $0x8,%eax
40fe78:	74 21                	je     0x40fe9b
40fe7a:	48                   	dec    %eax
40fe7b:	83 e8 01             	sub    $0x1,%eax
40fe7e:	74 12                	je     0x40fe92
40fe80:	83 e8 03             	sub    $0x3,%eax
40fe83:	0f 85 9d 00 00 00    	jne    0x40ff26
40fe89:	83 4e 1c 08          	orl    $0x8,0x1c(%esi)
40fe8d:	e9 94 00 00 00       	jmp    0x40ff26
40fe92:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
40fe96:	e9 8b 00 00 00       	jmp    0x40ff26
40fe9b:	83 4e 1c 01          	orl    $0x1,0x1c(%esi)
40fe9f:	e9 82 00 00 00       	jmp    0x40ff26
40fea4:	83 4e 1c 20          	orl    $0x20,0x1c(%esi)
40fea8:	eb 7c                	jmp    0x40ff26
40feaa:	83 4e 1c 02          	orl    $0x2,0x1c(%esi)
40feae:	eb 76                	jmp    0x40ff26
40feb0:	6a 2a                	push   $0x2a
40feb2:	58                   	pop    %eax
40feb3:	66 3b f8             	cmp    %ax,%di
40feb6:	74 0d                	je     0x40fec5
40feb8:	8d 46 20             	lea    0x20(%esi),%eax
40febb:	50                   	push   %eax
40febc:	8b ce                	mov    %esi,%ecx
40febe:	e8 9f f8 ff ff       	call   0x40f762
40fec3:	eb 59                	jmp    0x40ff1e
40fec5:	8b 4e 10             	mov    0x10(%esi),%ecx
40fec8:	8d 41 04             	lea    0x4(%ecx),%eax
40fecb:	89 46 10             	mov    %eax,0x10(%esi)
40fece:	8b 01                	mov    (%ecx),%eax
40fed0:	89 46 20             	mov    %eax,0x20(%esi)
40fed3:	85 c0                	test   %eax,%eax
40fed5:	79 09                	jns    0x40fee0
40fed7:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
40fedb:	f7 d8                	neg    %eax
40fedd:	89 46 20             	mov    %eax,0x20(%esi)
40fee0:	b0 01                	mov    $0x1,%al
40fee2:	eb 3a                	jmp    0x40ff1e
40fee4:	89 5e 24             	mov    %ebx,0x24(%esi)
40fee7:	eb 3d                	jmp    0x40ff26
40fee9:	6a 2a                	push   $0x2a
40feeb:	58                   	pop    %eax
40feec:	66 3b f8             	cmp    %ax,%di
40feef:	74 05                	je     0x40fef6
40fef1:	8d 46 24             	lea    0x24(%esi),%eax
40fef4:	eb c5                	jmp    0x40febb
40fef6:	8b 4e 10             	mov    0x10(%esi),%ecx
40fef9:	8d 41 04             	lea    0x4(%ecx),%eax
40fefc:	89 46 10             	mov    %eax,0x10(%esi)
40feff:	8b 01                	mov    (%ecx),%eax
40ff01:	89 46 24             	mov    %eax,0x24(%esi)
40ff04:	85 c0                	test   %eax,%eax
40ff06:	79 d8                	jns    0x40fee0
40ff08:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
40ff0c:	eb d2                	jmp    0x40fee0
40ff0e:	8b ce                	mov    %esi,%ecx
40ff10:	e8 79 05 00 00       	call   0x41048e
40ff15:	eb 07                	jmp    0x40ff1e
40ff17:	8b ce                	mov    %esi,%ecx
40ff19:	e8 9b 0d 00 00       	call   0x410cb9
40ff1e:	84 c0                	test   %al,%al
40ff20:	0f 84 7a fe ff ff    	je     0x40fda0
40ff26:	8b 46 0c             	mov    0xc(%esi),%eax
40ff29:	0f b7 08             	movzwl (%eax),%ecx
40ff2c:	8d 50 02             	lea    0x2(%eax),%edx
40ff2f:	89 56 0c             	mov    %edx,0xc(%esi)
40ff32:	8b f9                	mov    %ecx,%edi
40ff34:	66 89 4e 2e          	mov    %cx,0x2e(%esi)
40ff38:	66 85 c9             	test   %cx,%cx
40ff3b:	0f 85 9c fe ff ff    	jne    0x40fddd
40ff41:	8a 46 18             	mov    0x18(%esi),%al
40ff44:	84 c0                	test   %al,%al
40ff46:	74 08                	je     0x40ff50
40ff48:	3c 07                	cmp    $0x7,%al
40ff4a:	0f 85 32 fe ff ff    	jne    0x40fd82
40ff50:	ff 86 50 04 00 00    	incl   0x450(%esi)
40ff56:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40ff5d:	0f 85 5c fe ff ff    	jne    0x40fdbf
40ff63:	8b 46 14             	mov    0x14(%esi),%eax
40ff66:	e9 38 fe ff ff       	jmp    0x40fda3
40ff6b:	8b 4e 08             	mov    0x8(%esi),%ecx
40ff6e:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
40ff72:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
40ff79:	e9 12 fe ff ff       	jmp    0x40fd90
40ff7e:	8b ff                	mov    %edi,%edi
40ff80:	0f fe 40 00          	paddd  0x0(%eax),%mm0
40ff84:	50                   	push   %eax
40ff85:	fe 40 00             	incb   0x0(%eax)
40ff88:	68 fe 40 00 b0       	push   $0xb00040fe