40ad55:	ff 75 08             	push   0x8(%ebp)
40ad58:	e8 a3 f2 ff ff       	call   0x40a000
40ad5d:	85 c0                	test   %eax,%eax
40ad5f:	0f 88 2f 5f 03 00    	js     0x440c94
40ad65:	ff 44 24 34          	incl   0x34(%esp)
40ad69:	8b 4c 24 74          	mov    0x74(%esp),%ecx
40ad6d:	3b ce                	cmp    %esi,%ecx
40ad6f:	0f 85 ce 05 00 00    	jne    0x40b343
40ad75:	c7 84 24 8c 00 00 00 	movl   $0x1,0x8c(%esp)
40ad7c:	01 00 00 00
40ad80:	c7 84 24 80 00 00 00 	movl   $0x0,0x80(%esp)
40ad87:	00 00 00 00
40ad8b:	8b 74 24 34          	mov    0x34(%esp),%esi
40ad8f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40ad93:	ff 74 24 30          	push   0x30(%esp)
40ad97:	8d 89 70 04 00 00    	lea    0x470(%ecx),%ecx
40ad9d:	e8 ee e2 00 00       	call   0x419090
40ada2:	3b 70 18             	cmp    0x18(%eax),%esi
40ada5:	0f 8c 53 09 00 00    	jl     0x40b6fe
40adab:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40adaf:	ff 74 24 30          	push   0x30(%esp)
40adb3:	8d 89 70 04 00 00    	lea    0x470(%ecx),%ecx
40adb9:	e8 d2 e2 00 00       	call   0x419090
40adbe:	3b 70 1c             	cmp    0x1c(%eax),%esi
40adc1:	0f 8f 37 09 00 00    	jg     0x40b6fe
40adc7:	8b 74 24 18          	mov    0x18(%esp),%esi
40adcb:	8b 4e 08             	mov    0x8(%esi),%ecx
40adce:	85 c9                	test   %ecx,%ecx
40add0:	0f 85 db 52 03 00    	jne    0x4400b1
40add6:	8b 46 0c             	mov    0xc(%esi),%eax
40add9:	83 f8 05             	cmp    $0x5,%eax
40addc:	0f 8d e1 52 03 00    	jge    0x4400c3
40ade2:	8b 54 24 0c          	mov    0xc(%esp),%edx
40ade6:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
40aded:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
40adf3:	8b 02                	mov    (%edx),%eax
40adf5:	8b 48 04             	mov    0x4(%eax),%ecx
40adf8:	8b 44 11 08          	mov    0x8(%ecx,%edx,1),%eax
40adfc:	03 ca                	add    %edx,%ecx
40adfe:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40ae02:	0f 85 b9 08 00 00    	jne    0x40b6c1
40ae08:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
40ae0f:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40ae13:	8b 41 08             	mov    0x8(%ecx),%eax
40ae16:	0f 85 ad 08 00 00    	jne    0x40b6c9
40ae1c:	c6 40 18 00          	movb   $0x0,0x18(%eax)
40ae20:	8b 02                	mov    (%edx),%eax
40ae22:	8b 40 04             	mov    0x4(%eax),%eax
40ae25:	03 c2                	add    %edx,%eax
40ae27:	89 44 24 4c          	mov    %eax,0x4c(%esp)
40ae2b:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
40ae2f:	0f 85 46 53 03 00    	jne    0x44017b
40ae35:	8b 70 08             	mov    0x8(%eax),%esi
40ae38:	8b 4e 28             	mov    0x28(%esi),%ecx
40ae3b:	85 c9                	test   %ecx,%ecx
40ae3d:	0f 85 43 53 03 00    	jne    0x440186
40ae43:	8b 46 2c             	mov    0x2c(%esi),%eax
40ae46:	83 f8 05             	cmp    $0x5,%eax
40ae49:	0f 8d 4d 53 03 00    	jge    0x44019c
40ae4f:	8b 44 24 4c          	mov    0x4c(%esp),%eax
40ae53:	c7 46 2c 01 00 00 00 	movl   $0x1,0x2c(%esi)
40ae5a:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
40ae61:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
40ae65:	8b 40 08             	mov    0x8(%eax),%eax
40ae68:	0f 85 63 08 00 00    	jne    0x40b6d1
40ae6e:	ff 74 24 30          	push   0x30(%esp)
40ae72:	8d 8a 70 04 00 00    	lea    0x470(%edx),%ecx
40ae78:	c6 40 30 00          	movb   $0x0,0x30(%eax)
40ae7c:	e8 0f e2 00 00       	call   0x419090
40ae81:	ff 74 24 18          	push   0x18(%esp)
40ae85:	8b 50 10             	mov    0x10(%eax),%edx
40ae88:	8b 48 14             	mov    0x14(%eax),%ecx
40ae8b:	8b 70 0c             	mov    0xc(%eax),%esi
40ae8e:	8d 44 24 68          	lea    0x68(%esp),%eax
40ae92:	50                   	push   %eax
40ae93:	8b 44 24 14          	mov    0x14(%esp),%eax
40ae97:	8b 00                	mov    (%eax),%eax
40ae99:	8b 0c 01             	mov    (%ecx,%eax,1),%ecx
40ae9c:	03 ca                	add    %edx,%ecx
40ae9e:	03 4c 24 14          	add    0x14(%esp),%ecx
40aea2:	ff d6                	call   *%esi
40aea4:	85 c0                	test   %eax,%eax
40aea6:	0f 88 da 5d 03 00    	js     0x440c86
40aeac:	33 f6                	xor    %esi,%esi
40aeae:	c7 44 24 64 84 fb 48 	movl   $0x48fb84,0x64(%esp)
40aeb5:	00
40aeb6:	39 74 24 6c          	cmp    %esi,0x6c(%esp)
40aeba:	76 36                	jbe    0x40aef2
40aebc:	8d 64 24 00          	lea    0x0(%esp),%esp
40aec0:	8b 44 24 68          	mov    0x68(%esp),%eax
40aec4:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
40aec7:	89 4c 24 40          	mov    %ecx,0x40(%esp)
40aecb:	85 c9                	test   %ecx,%ecx
40aecd:	74 15                	je     0x40aee4
40aecf:	e8 1c ef ff ff       	call   0x409df0
40aed4:	ff 74 24 40          	push   0x40(%esp)
40aed8:	e8 8f 61 01 00       	call   0x42106c
40aedd:	8b 44 24 6c          	mov    0x6c(%esp),%eax
40aee1:	83 c4 04             	add    $0x4,%esp
40aee4:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
40aeeb:	46                   	inc    %esi
40aeec:	3b 74 24 6c          	cmp    0x6c(%esp),%esi
40aef0:	72 ce                	jb     0x40aec0
40aef2:	ff 74 24 68          	push   0x68(%esp)
40aef6:	c7 44 24 70 00 00 00 	movl   $0x0,0x70(%esp)
40aefd:	00
40aefe:	e8 69 61 01 00       	call   0x42106c
40af03:	83 c4 04             	add    $0x4,%esp
40af06:	8b 44 24 0c          	mov    0xc(%esp),%eax
40af0a:	83 b8 f8 00 00 00 01 	cmpl   $0x1,0xf8(%eax)
40af11:	0f 84 57 5e 03 00    	je     0x440d6e
40af17:	8b 75 0c             	mov    0xc(%ebp),%esi
40af1a:	e9 e8 f1 ff ff       	jmp    0x40a107
40af1f:	8b 44 24 10          	mov    0x10(%esp),%eax
40af23:	83 f8 16             	cmp    $0x16,%eax
40af26:	0f 85 58 02 00 00    	jne    0x40b184
40af2c:	8d 41 01             	lea    0x1(%ecx),%eax
40af2f:	c7 44 24 10 0b 00 00 	movl   $0xb,0x10(%esp)
40af36:	00
40af37:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40af3a:	8b 74 24 10          	mov    0x10(%esp),%esi
40af3e:	89 01                	mov    %eax,(%ecx)
40af40:	e9 2b f2 ff ff       	jmp    0x40a170
40af45:	8d 41 01             	lea    0x1(%ecx),%eax
40af48:	33 f6                	xor    %esi,%esi
40af4a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40af4d:	89 01                	mov    %eax,(%ecx)
40af4f:	e9 17 f2 ff ff       	jmp    0x40a16b
40af54:	8b 44 24 08          	mov    0x8(%esp),%eax
40af58:	3d 88 74 4c 00       	cmp    $0x4c7488,%eax
40af5d:	74 3e                	je     0x40af9d
40af5f:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
40af63:	0f 84 5f 06 00 00    	je     0x40b5c8
40af69:	8b 48 08             	mov    0x8(%eax),%ecx
40af6c:	85 c9                	test   %ecx,%ecx
40af6e:	0f 85 66 06 00 00    	jne    0x40b5da
40af74:	8b 40 0c             	mov    0xc(%eax),%eax
40af77:	83 f8 05             	cmp    $0x5,%eax
40af7a:	0f 8d c4 5a 03 00    	jge    0x440a44
40af80:	8b 44 24 08          	mov    0x8(%esp),%eax
40af84:	8b c8                	mov    %eax,%ecx
40af86:	68 88 74 4c 00       	push   $0x4c7488
40af8b:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)
40af92:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40af98:	e8 23 eb ff ff       	call   0x409ac0
40af9d:	c6 44 24 2d 00       	movb   $0x0,0x2d(%esp)
40afa2:	e9 8f f2 ff ff       	jmp    0x40a236
40afa7:	8b c2                	mov    %edx,%eax
40afa9:	e9 ad fa ff ff       	jmp    0x40aa5b
40afae:	8b 74 24 24          	mov    0x24(%esp),%esi
40afb2:	c7 44 24 10 16 00 00 	movl   $0x16,0x10(%esp)
40afb9:	00
40afba:	85 f6                	test   %esi,%esi
40afbc:	0f 85 0e 02 00 00    	jne    0x40b1d0
40afc2:	81 ff 88 74 4c 00    	cmp    $0x4c7488,%edi
40afc8:	74 1d                	je     0x40afe7
40afca:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
40afce:	0f 84 7e 06 00 00    	je     0x40b652
40afd4:	8b cf                	mov    %edi,%ecx
40afd6:	e8 45 ea ff ff       	call   0x409a20
40afdb:	68 88 74 4c 00       	push   $0x4c7488
40afe0:	8b cf                	mov    %edi,%ecx
40afe2:	e8 d9 ea ff ff       	call   0x409ac0
40afe7:	8b 54 24 08          	mov    0x8(%esp),%edx
40afeb:	8b 45 0c             	mov    0xc(%ebp),%eax
40afee:	46                   	inc    %esi
40afef:	89 74 24 24          	mov    %esi,0x24(%esp)
40aff3:	8b 08                	mov    (%eax),%ecx
40aff5:	8b 45 08             	mov    0x8(%ebp),%eax
40aff8:	8b 40 04             	mov    0x4(%eax),%eax
40affb:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40affe:	83 fe 01             	cmp    $0x1,%esi
40b001:	0f 85 0b 02 00 00    	jne    0x40b212
40b007:	8b f7                	mov    %edi,%esi
40b009:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
40b00d:	8b 00                	mov    (%eax),%eax
40b00f:	8b 4e 08             	mov    0x8(%esi),%ecx
40b012:	89 44 24 4c          	mov    %eax,0x4c(%esp)
40b016:	0f 84 92 4e 03 00    	je     0x43feae
40b01c:	85 c9                	test   %ecx,%ecx
40b01e:	0f 85 95 4e 03 00    	jne    0x43feb9
40b024:	8b 46 0c             	mov    0xc(%esi),%eax
40b027:	83 f8 05             	cmp    $0x5,%eax
40b02a:	0f 8d 9b 4e 03 00    	jge    0x43fecb
40b030:	6a 10                	push   $0x10
40b032:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40b038:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
40b03f:	e8 b2 5f 01 00       	call   0x420ff6
40b044:	8b d0                	mov    %eax,%edx
40b046:	83 c4 04             	add    $0x4,%esp
40b049:	85 d2                	test   %edx,%edx
40b04b:	0f 84 53 06 00 00    	je     0x40b6a4
40b051:	8b 44 24 4c          	mov    0x4c(%esp),%eax
40b055:	8b 08                	mov    (%eax),%ecx
40b057:	89 0a                	mov    %ecx,(%edx)
40b059:	8b 48 04             	mov    0x4(%eax),%ecx
40b05c:	89 4a 04             	mov    %ecx,0x4(%edx)
40b05f:	8b 48 08             	mov    0x8(%eax),%ecx
40b062:	89 4a 08             	mov    %ecx,0x8(%edx)
40b065:	8b 40 0c             	mov    0xc(%eax),%eax
40b068:	89 42 0c             	mov    %eax,0xc(%edx)
40b06b:	ff 00                	incl   (%eax)
40b06d:	89 56 08             	mov    %edx,0x8(%esi)
40b070:	8b 75 0c             	mov    0xc(%ebp),%esi
40b073:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b077:	ff 06                	incl   (%esi)
40b079:	80 b8 fd 00 00 00 00 	cmpb   $0x0,0xfd(%eax)
40b080:	0f 85 f6 4e 03 00    	jne    0x43ff7c
40b086:	80 b8 fe 00 00 00 00 	cmpb   $0x0,0xfe(%eax)
40b08d:	8b 55 08             	mov    0x8(%ebp),%edx
40b090:	8b 45 14             	mov    0x14(%ebp),%eax
40b093:	0f 84 74 f0 ff ff    	je     0x40a10d
40b099:	e9 f6 4e 03 00       	jmp    0x43ff94
40b09e:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0a2:	83 f8 16             	cmp    $0x16,%eax
40b0a5:	0f 85 52 02 00 00    	jne    0x40b2fd
40b0ab:	c7 44 24 10 0c 00 00 	movl   $0xc,0x10(%esp)
40b0b2:	00
40b0b3:	8b 74 24 10          	mov    0x10(%esp),%esi
40b0b7:	8d 41 01             	lea    0x1(%ecx),%eax
40b0ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b0bd:	89 01                	mov    %eax,(%ecx)
40b0bf:	e9 ac f0 ff ff       	jmp    0x40a170
40b0c4:	8b 52 04             	mov    0x4(%edx),%edx
40b0c7:	e9 9c f9 ff ff       	jmp    0x40aa68
40b0cc:	8b 44 24 08          	mov    0x8(%esp),%eax
40b0d0:	3d 88 74 4c 00       	cmp    $0x4c7488,%eax
40b0d5:	74 1f                	je     0x40b0f6
40b0d7:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
40b0db:	0f 84 9a 57 03 00    	je     0x44087b
40b0e1:	8b c8                	mov    %eax,%ecx
40b0e3:	e8 38 e9 ff ff       	call   0x409a20
40b0e8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b0ec:	68 88 74 4c 00       	push   $0x4c7488
40b0f1:	e8 ca e9 ff ff       	call   0x409ac0
40b0f6:	c6 44 24 2d 00       	movb   $0x0,0x2d(%esp)
40b0fb:	e9 56 f4 ff ff       	jmp    0x40a556
40b100:	4e                   	dec    %esi
40b101:	8d 41 01             	lea    0x1(%ecx),%eax
40b104:	e9 38 fb ff ff       	jmp    0x40ac41
40b109:	46                   	inc    %esi
40b10a:	8d 41 01             	lea    0x1(%ecx),%eax
40b10d:	e9 2f fb ff ff       	jmp    0x40ac41
40b112:	8d 41 01             	lea    0x1(%ecx),%eax
40b115:	be 0e 00 00 00       	mov    $0xe,%esi
40b11a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b11d:	89 01                	mov    %eax,(%ecx)
40b11f:	e9 47 f0 ff ff       	jmp    0x40a16b
40b124:	83 c0 02             	add    $0x2,%eax
40b127:	83 c2 02             	add    $0x2,%edx
40b12a:	89 44 24 38          	mov    %eax,0x38(%esp)
40b12e:	49                   	dec    %ecx
40b12f:	0f 85 eb f1 ff ff    	jne    0x40a320
40b135:	e9 cf f1 ff ff       	jmp    0x40a309
40b13a:	83 3d 94 74 4c 00 04 	cmpl   $0x4,0x4c7494
40b141:	0f 85 bb f0 ff ff    	jne    0x40a202
40b147:	e9 12 58 03 00       	jmp    0x44095e
40b14c:	8b 46 0c             	mov    0xc(%esi),%eax
40b14f:	ff 08                	decl   (%eax)
40b151:	8b 46 0c             	mov    0xc(%esi),%eax
40b154:	83 38 00             	cmpl   $0x0,(%eax)
40b157:	0f 84 14 58 03 00    	je     0x440971
40b15d:	56                   	push   %esi
40b15e:	e8 09 5f 01 00       	call   0x42106c
40b163:	83 c4 04             	add    $0x4,%esp
40b166:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
40b16d:	e9 9b f0 ff ff       	jmp    0x40a20d
40b172:	8d 41 01             	lea    0x1(%ecx),%eax
40b175:	be 09 00 00 00       	mov    $0x9,%esi
40b17a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b17d:	89 01                	mov    %eax,(%ecx)
40b17f:	e9 e7 ef ff ff       	jmp    0x40a16b
40b184:	83 f8 13             	cmp    $0x13,%eax
40b187:	0f 84 9f fd ff ff    	je     0x40af2c
40b18d:	8d 41 01             	lea    0x1(%ecx),%eax
40b190:	c7 44 24 10 11 00 00 	movl   $0x11,0x10(%esp)
40b197:	00
40b198:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b19b:	8b 74 24 10          	mov    0x10(%esp),%esi
40b19f:	89 01                	mov    %eax,(%ecx)
40b1a1:	e9 ca ef ff ff       	jmp    0x40a170
40b1a6:	48                   	dec    %eax
40b1a7:	83 f8 29             	cmp    $0x29,%eax
40b1aa:	0f 87 b6 ef ff ff    	ja     0x40a166
40b1b0:	0f b6 80 44 b8 40 00 	movzbl 0x40b844(%eax),%eax
40b1b7:	ff 24 85 24 b8 40 00 	jmp    *0x40b824(,%eax,4)
40b1be:	8d 41 01             	lea    0x1(%ecx),%eax
40b1c1:	be 07 00 00 00       	mov    $0x7,%esi
40b1c6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b1c9:	89 01                	mov    %eax,(%ecx)
40b1cb:	e9 9b ef ff ff       	jmp    0x40a16b
40b1d0:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40b1d5:	0f 84 d2 01 00 00    	je     0x40b3ad
40b1db:	8b 44 24 08          	mov    0x8(%esp),%eax
40b1df:	3d 88 74 4c 00       	cmp    $0x4c7488,%eax
40b1e4:	74 22                	je     0x40b208
40b1e6:	83 3d 94 74 4c 00 04 	cmpl   $0x4,0x4c7494
40b1ed:	0f 84 c6 03 00 00    	je     0x40b5b9
40b1f3:	8b c8                	mov    %eax,%ecx
40b1f5:	e8 26 e8 ff ff       	call   0x409a20
40b1fa:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b1fe:	68 88 74 4c 00       	push   $0x4c7488
40b203:	e8 b8 e8 ff ff       	call   0x409ac0
40b208:	c6 44 24 2d 00       	movb   $0x0,0x2d(%esp)
40b20d:	e9 d5 fd ff ff       	jmp    0x40afe7
40b212:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40b217:	0f 85 7f 04 00 00    	jne    0x40b69c
40b21d:	8b f2                	mov    %edx,%esi
40b21f:	e9 e5 fd ff ff       	jmp    0x40b009
40b224:	8b 74 24 24          	mov    0x24(%esp),%esi
40b228:	85 f6                	test   %esi,%esi
40b22a:	0f 84 b5 f2 ff ff    	je     0x40a4e5
40b230:	8b 44 24 28          	mov    0x28(%esp),%eax
40b234:	8b 7c 24 20          	mov    0x20(%esp),%edi
40b238:	89 44 24 08          	mov    %eax,0x8(%esp)
40b23c:	89 7d 10             	mov    %edi,0x10(%ebp)
40b23f:	83 fe 01             	cmp    $0x1,%esi
40b242:	0f 85 97 59 03 00    	jne    0x440bdf
40b248:	8b c7                	mov    %edi,%eax
40b24a:	50                   	push   %eax
40b24b:	8d 8c 24 ec 00 00 00 	lea    0xec(%esp),%ecx
40b252:	c7 84 24 f4 00 00 00 	movl   $0x0,0xf4(%esp)
40b259:	00 00 00 00
40b25d:	e8 5e e8 ff ff       	call   0x409ac0
40b262:	8d 8c 24 e8 00 00 00 	lea    0xe8(%esp),%ecx
40b269:	e8 2b e1 ff ff       	call   0x409399
40b26e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b272:	84 c0                	test   %al,%al
40b274:	0f 85 90 02 00 00    	jne    0x40b50a
40b27a:	83 f9 07             	cmp    $0x7,%ecx
40b27d:	75 5d                	jne    0x40b2dc
40b27f:	ff 75 0c             	push   0xc(%ebp)
40b282:	ff 75 08             	push   0x8(%ebp)
40b285:	e8 68 07 00 00       	call   0x40b9f2
40b28a:	85 c0                	test   %eax,%eax
40b28c:	0f 88 6e 5b 03 00    	js     0x440e00
40b292:	83 7c 24 10 08       	cmpl   $0x8,0x10(%esp)
40b297:	0f 84 55 59 03 00    	je     0x440bf2
40b29d:	83 fe 01             	cmp    $0x1,%esi
40b2a0:	0f 85 6a 59 03 00    	jne    0x440c10
40b2a6:	8b f7                	mov    %edi,%esi
40b2a8:	8b ce                	mov    %esi,%ecx
40b2aa:	e8 71 e7 ff ff       	call   0x409a20
40b2af:	c7 46 0c 09 00 00 00 	movl   $0x9,0xc(%esi)
40b2b6:	c6 06 00             	movb   $0x0,(%esi)
40b2b9:	80 7c 24 59 00       	cmpb   $0x0,0x59(%esp)
40b2be:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40b2c2:	0f 85 64 59 03 00    	jne    0x440c2c
40b2c8:	80 7c 24 58 00       	cmpb   $0x0,0x58(%esp)
40b2cd:	0f 84 74 59 03 00    	je     0x440c47