40ae54:	e8 1f 06 00 00       	call   0x40b478
40ae59:	83 c4 0c             	add    $0xc,%esp
40ae5c:	8b f0                	mov    %eax,%esi
40ae5e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ae61:	e8 36 f3 ff ff       	call   0x40a19c
40ae66:	ff 40 18             	incl   0x18(%eax)
40ae69:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ae6d:	3b 75 14             	cmp    0x14(%ebp),%esi
40ae70:	74 68                	je     0x40aeda
40ae72:	83 fe ff             	cmp    $0xffffffff,%esi
40ae75:	0f 8e a6 00 00 00    	jle    0x40af21
40ae7b:	8b 7d 10             	mov    0x10(%ebp),%edi
40ae7e:	3b 77 04             	cmp    0x4(%edi),%esi
40ae81:	0f 8d 9a 00 00 00    	jge    0x40af21
40ae87:	8b 47 08             	mov    0x8(%edi),%eax
40ae8a:	8b 0c f0             	mov    (%eax,%esi,8),%ecx
40ae8d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40ae90:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40ae97:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
40ae9c:	74 30                	je     0x40aece
40ae9e:	51                   	push   %ecx
40ae9f:	57                   	push   %edi
40aea0:	ff 75 08             	push   0x8(%ebp)
40aea3:	e8 ed 05 00 00       	call   0x40b495
40aea8:	83 c4 0c             	add    $0xc,%esp
40aeab:	68 03 01 00 00       	push   $0x103
40aeb0:	ff 75 08             	push   0x8(%ebp)
40aeb3:	8b 47 08             	mov    0x8(%edi),%eax
40aeb6:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
40aeba:	e8 31 01 00 00       	call   0x40aff0
40aebf:	eb 0d                	jmp    0x40aece
40aec1:	ff 75 ec             	push   -0x14(%ebp)
40aec4:	e8 c4 d9 ff ff       	call   0x40888d
40aec9:	59                   	pop    %ecx
40aeca:	c3                   	ret
40aecb:	8b 65 e8             	mov    -0x18(%ebp),%esp
40aece:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40aed2:	8b 75 e0             	mov    -0x20(%ebp),%esi
40aed5:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40aed8:	eb 93                	jmp    0x40ae6d
40aeda:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40aee1:	e8 27 00 00 00       	call   0x40af0d
40aee6:	3b 75 14             	cmp    0x14(%ebp),%esi
40aee9:	75 36                	jne    0x40af21
40aeeb:	56                   	push   %esi
40aeec:	ff 75 10             	push   0x10(%ebp)
40aeef:	ff 75 08             	push   0x8(%ebp)
40aef2:	e8 9e 05 00 00       	call   0x40b495
40aef7:	83 c4 0c             	add    $0xc,%esp
40aefa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40aefd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40af04:	59                   	pop    %ecx
40af05:	5f                   	pop    %edi
40af06:	5e                   	pop    %esi
40af07:	5b                   	pop    %ebx
40af08:	c9                   	leave
40af09:	c3                   	ret
40af0a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40af0d:	e8 8a f2 ff ff       	call   0x40a19c
40af12:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40af16:	7e 08                	jle    0x40af20
40af18:	e8 7f f2 ff ff       	call   0x40a19c
40af1d:	ff 48 18             	decl   0x18(%eax)
40af20:	c3                   	ret
40af21:	e8 e8 3e 00 00       	call   0x40ee0e
40af26:	cc                   	int3
40af27:	55                   	push   %ebp
40af28:	8b ec                	mov    %esp,%ebp
40af2a:	83 ec 18             	sub    $0x18,%esp
40af2d:	53                   	push   %ebx
40af2e:	56                   	push   %esi
40af2f:	8b 75 0c             	mov    0xc(%ebp),%esi
40af32:	57                   	push   %edi
40af33:	85 f6                	test   %esi,%esi
40af35:	0f 84 80 00 00 00    	je     0x40afbb
40af3b:	8b 3e                	mov    (%esi),%edi
40af3d:	33 db                	xor    %ebx,%ebx
40af3f:	85 ff                	test   %edi,%edi
40af41:	7e 71                	jle    0x40afb4
40af43:	8b 45 08             	mov    0x8(%ebp),%eax
40af46:	8b d3                	mov    %ebx,%edx
40af48:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40af4b:	8b 40 1c             	mov    0x1c(%eax),%eax
40af4e:	8b 40 0c             	mov    0xc(%eax),%eax
40af51:	8b 08                	mov    (%eax),%ecx
40af53:	83 c0 04             	add    $0x4,%eax
40af56:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40af59:	89 45 e8             	mov    %eax,-0x18(%ebp)
40af5c:	8b c8                	mov    %eax,%ecx
40af5e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40af61:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40af64:	89 45 f8             	mov    %eax,-0x8(%ebp)
40af67:	85 c0                	test   %eax,%eax
40af69:	7e 3b                	jle    0x40afa6
40af6b:	8b 46 04             	mov    0x4(%esi),%eax
40af6e:	03 c2                	add    %edx,%eax
40af70:	89 45 ec             	mov    %eax,-0x14(%ebp)
40af73:	8b 55 08             	mov    0x8(%ebp),%edx
40af76:	ff 72 1c             	push   0x1c(%edx)
40af79:	ff 31                	push   (%ecx)
40af7b:	50                   	push   %eax
40af7c:	e8 77 fa ff ff       	call   0x40a9f8
40af81:	83 c4 0c             	add    $0xc,%esp
40af84:	85 c0                	test   %eax,%eax
40af86:	75 19                	jne    0x40afa1
40af88:	8b 45 f8             	mov    -0x8(%ebp),%eax
40af8b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40af8e:	48                   	dec    %eax
40af8f:	83 c1 04             	add    $0x4,%ecx
40af92:	89 45 f8             	mov    %eax,-0x8(%ebp)
40af95:	85 c0                	test   %eax,%eax
40af97:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40af9a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40af9d:	7f d4                	jg     0x40af73
40af9f:	eb 02                	jmp    0x40afa3
40afa1:	b3 01                	mov    $0x1,%bl
40afa3:	8b 55 fc             	mov    -0x4(%ebp),%edx
40afa6:	8b 45 e8             	mov    -0x18(%ebp),%eax
40afa9:	83 c2 10             	add    $0x10,%edx
40afac:	89 55 fc             	mov    %edx,-0x4(%ebp)
40afaf:	83 ef 01             	sub    $0x1,%edi
40afb2:	75 a8                	jne    0x40af5c
40afb4:	5f                   	pop    %edi
40afb5:	5e                   	pop    %esi
40afb6:	8a c3                	mov    %bl,%al
40afb8:	5b                   	pop    %ebx
40afb9:	c9                   	leave
40afba:	c3                   	ret
40afbb:	e8 4e 3e 00 00       	call   0x40ee0e
40afc0:	cc                   	int3
40afc1:	55                   	push   %ebp
40afc2:	8b ec                	mov    %esp,%ebp
40afc4:	ff 75 10             	push   0x10(%ebp)
40afc7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40afca:	ff 55 0c             	call   *0xc(%ebp)
40afcd:	5d                   	pop    %ebp
40afce:	c2 0c 00             	ret    $0xc
40afd1:	55                   	push   %ebp
40afd2:	8b ec                	mov    %esp,%ebp
40afd4:	ff 75 14             	push   0x14(%ebp)
40afd7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40afda:	ff 75 10             	push   0x10(%ebp)
40afdd:	ff 55 0c             	call   *0xc(%ebp)
40afe0:	5d                   	pop    %ebp
40afe1:	c2 10 00             	ret    $0x10
40afe4:	55                   	push   %ebp
40afe5:	8b ec                	mov    %esp,%ebp
40afe7:	8b 45 08             	mov    0x8(%ebp),%eax
40afea:	8b 40 1c             	mov    0x1c(%eax),%eax
40afed:	5d                   	pop    %ebp
40afee:	c3                   	ret
40afef:	cc                   	int3
40aff0:	55                   	push   %ebp
40aff1:	8b ec                	mov    %esp,%ebp
40aff3:	83 ec 04             	sub    $0x4,%esp
40aff6:	53                   	push   %ebx
40aff7:	51                   	push   %ecx
40aff8:	8b 45 0c             	mov    0xc(%ebp),%eax
40affb:	83 c0 0c             	add    $0xc,%eax
40affe:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b001:	8b 45 08             	mov    0x8(%ebp),%eax
40b004:	55                   	push   %ebp
40b005:	ff 75 10             	push   0x10(%ebp)
40b008:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b00b:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40b00e:	e8 9d 04 00 00       	call   0x40b4b0
40b013:	56                   	push   %esi
40b014:	57                   	push   %edi
40b015:	ff d0                	call   *%eax
40b017:	5f                   	pop    %edi
40b018:	5e                   	pop    %esi
40b019:	8b dd                	mov    %ebp,%ebx
40b01b:	5d                   	pop    %ebp
40b01c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b01f:	55                   	push   %ebp
40b020:	8b eb                	mov    %ebx,%ebp
40b022:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40b028:	75 05                	jne    0x40b02f
40b02a:	b9 02 00 00 00       	mov    $0x2,%ecx
40b02f:	51                   	push   %ecx
40b030:	e8 7b 04 00 00       	call   0x40b4b0
40b035:	5d                   	pop    %ebp
40b036:	59                   	pop    %ecx
40b037:	5b                   	pop    %ebx
40b038:	c9                   	leave
40b039:	c2 0c 00             	ret    $0xc
40b03c:	55                   	push   %ebp
40b03d:	8b ec                	mov    %esp,%ebp
40b03f:	a1 54 41 42 00       	mov    0x424154,%eax
40b044:	3d da 5d 40 00       	cmp    $0x405dda,%eax
40b049:	74 1f                	je     0x40b06a
40b04b:	64 8b 0d 18 00 00 00 	mov    %fs:0x18,%ecx
40b052:	8b 45 08             	mov    0x8(%ebp),%eax
40b055:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
40b05b:	3b 41 08             	cmp    0x8(%ecx),%eax
40b05e:	72 05                	jb     0x40b065
40b060:	3b 41 04             	cmp    0x4(%ecx),%eax
40b063:	76 05                	jbe    0x40b06a
40b065:	6a 0d                	push   $0xd
40b067:	59                   	pop    %ecx
40b068:	cd 29                	int    $0x29
40b06a:	5d                   	pop    %ebp
40b06b:	c3                   	ret
40b06c:	cc                   	int3
40b06d:	cc                   	int3
40b06e:	cc                   	int3
40b06f:	cc                   	int3
40b070:	53                   	push   %ebx
40b071:	56                   	push   %esi
40b072:	57                   	push   %edi
40b073:	8b 54 24 10          	mov    0x10(%esp),%edx
40b077:	8b 44 24 14          	mov    0x14(%esp),%eax
40b07b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40b07f:	55                   	push   %ebp
40b080:	52                   	push   %edx
40b081:	50                   	push   %eax
40b082:	51                   	push   %ecx
40b083:	51                   	push   %ecx
40b084:	68 10 b1 40 00       	push   $0x40b110
40b089:	64 ff 35 00 00 00 00 	push   %fs:0x0
40b090:	a1 14 30 43 00       	mov    0x433014,%eax
40b095:	33 c4                	xor    %esp,%eax
40b097:	89 44 24 08          	mov    %eax,0x8(%esp)
40b09b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40b0a2:	8b 44 24 30          	mov    0x30(%esp),%eax
40b0a6:	8b 58 08             	mov    0x8(%eax),%ebx
40b0a9:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40b0ad:	33 19                	xor    (%ecx),%ebx
40b0af:	8b 70 0c             	mov    0xc(%eax),%esi
40b0b2:	83 fe fe             	cmp    $0xfffffffe,%esi
40b0b5:	0f 84 46 00 00 00    	je     0x40b101
40b0bb:	8b 54 24 34          	mov    0x34(%esp),%edx
40b0bf:	83 fa fe             	cmp    $0xfffffffe,%edx
40b0c2:	74 08                	je     0x40b0cc
40b0c4:	3b f2                	cmp    %edx,%esi
40b0c6:	0f 86 35 00 00 00    	jbe    0x40b101
40b0cc:	8d 34 76             	lea    (%esi,%esi,2),%esi
40b0cf:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
40b0d3:	8b 0b                	mov    (%ebx),%ecx
40b0d5:	89 48 0c             	mov    %ecx,0xc(%eax)
40b0d8:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40b0dc:	0f 85 c0 ff ff ff    	jne    0x40b0a2
40b0e2:	68 01 01 00 00       	push   $0x101
40b0e7:	8b 43 08             	mov    0x8(%ebx),%eax
40b0ea:	e8 d1 03 00 00       	call   0x40b4c0
40b0ef:	b9 01 00 00 00       	mov    $0x1,%ecx
40b0f4:	8b 43 08             	mov    0x8(%ebx),%eax
40b0f7:	e8 e4 03 00 00       	call   0x40b4e0
40b0fc:	e9 a1 ff ff ff       	jmp    0x40b0a2
40b101:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40b108:	83 c4 18             	add    $0x18,%esp
40b10b:	5f                   	pop    %edi
40b10c:	5e                   	pop    %esi
40b10d:	5b                   	pop    %ebx
40b10e:	c3                   	ret
40b10f:	cc                   	int3
40b110:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b114:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40b11b:	b8 01 00 00 00       	mov    $0x1,%eax
40b120:	74 33                	je     0x40b155
40b122:	8b 44 24 08          	mov    0x8(%esp),%eax
40b126:	8b 48 08             	mov    0x8(%eax),%ecx
40b129:	33 c8                	xor    %eax,%ecx
40b12b:	e8 dc c2 ff ff       	call   0x40740c
40b130:	55                   	push   %ebp
40b131:	8b 68 18             	mov    0x18(%eax),%ebp
40b134:	ff 70 0c             	push   0xc(%eax)
40b137:	ff 70 10             	push   0x10(%eax)
40b13a:	ff 70 14             	push   0x14(%eax)
40b13d:	e8 2e ff ff ff       	call   0x40b070
40b142:	83 c4 0c             	add    $0xc,%esp
40b145:	5d                   	pop    %ebp
40b146:	8b 44 24 08          	mov    0x8(%esp),%eax
40b14a:	8b 54 24 10          	mov    0x10(%esp),%edx
40b14e:	89 02                	mov    %eax,(%edx)
40b150:	b8 03 00 00 00       	mov    $0x3,%eax
40b155:	c3                   	ret
40b156:	cc                   	int3
40b157:	cc                   	int3
40b158:	cc                   	int3
40b159:	cc                   	int3
40b15a:	cc                   	int3
40b15b:	cc                   	int3
40b15c:	cc                   	int3
40b15d:	cc                   	int3
40b15e:	cc                   	int3
40b15f:	cc                   	int3
40b160:	55                   	push   %ebp
40b161:	56                   	push   %esi
40b162:	57                   	push   %edi
40b163:	53                   	push   %ebx
40b164:	8b ea                	mov    %edx,%ebp
40b166:	33 c0                	xor    %eax,%eax
40b168:	33 db                	xor    %ebx,%ebx
40b16a:	33 d2                	xor    %edx,%edx
40b16c:	33 f6                	xor    %esi,%esi
40b16e:	33 ff                	xor    %edi,%edi
40b170:	ff d1                	call   *%ecx
40b172:	5b                   	pop    %ebx
40b173:	5f                   	pop    %edi
40b174:	5e                   	pop    %esi
40b175:	5d                   	pop    %ebp
40b176:	c3                   	ret
40b177:	cc                   	int3
40b178:	cc                   	int3
40b179:	cc                   	int3
40b17a:	cc                   	int3
40b17b:	cc                   	int3
40b17c:	cc                   	int3
40b17d:	cc                   	int3
40b17e:	cc                   	int3
40b17f:	cc                   	int3
40b180:	8b ea                	mov    %edx,%ebp
40b182:	8b f1                	mov    %ecx,%esi
40b184:	8b c1                	mov    %ecx,%eax
40b186:	6a 01                	push   $0x1
40b188:	e8 33 03 00 00       	call   0x40b4c0
40b18d:	33 c0                	xor    %eax,%eax
40b18f:	33 db                	xor    %ebx,%ebx
40b191:	33 c9                	xor    %ecx,%ecx
40b193:	33 d2                	xor    %edx,%edx
40b195:	33 ff                	xor    %edi,%edi
40b197:	ff e6                	jmp    *%esi
40b199:	cc                   	int3
40b19a:	cc                   	int3
40b19b:	cc                   	int3
40b19c:	cc                   	int3
40b19d:	cc                   	int3
40b19e:	cc                   	int3
40b19f:	cc                   	int3
40b1a0:	55                   	push   %ebp
40b1a1:	8b ec                	mov    %esp,%ebp
40b1a3:	53                   	push   %ebx
40b1a4:	56                   	push   %esi
40b1a5:	57                   	push   %edi
40b1a6:	6a 00                	push   $0x0
40b1a8:	52                   	push   %edx
40b1a9:	68 b5 b1 40 00       	push   $0x40b1b5
40b1ae:	51                   	push   %ecx
40b1af:	ff 15 90 40 42 00    	call   *0x424090
40b1b5:	5f                   	pop    %edi
40b1b6:	5e                   	pop    %esi
40b1b7:	5b                   	pop    %ebx
40b1b8:	5d                   	pop    %ebp
40b1b9:	c3                   	ret
40b1ba:	cc                   	int3
40b1bb:	cc                   	int3
40b1bc:	cc                   	int3
40b1bd:	cc                   	int3
40b1be:	cc                   	int3