40710e:	57                   	push   %edi
40710f:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
407113:	7f 06                	jg     0x40711b
407115:	0f be 49 08          	movsbl 0x8(%ecx),%ecx
407119:	eb 03                	jmp    0x40711e
40711b:	8b 49 08             	mov    0x8(%ecx),%ecx
40711e:	83 f9 ff             	cmp    $0xffffffff,%ecx
407121:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407124:	7c 04                	jl     0x40712a
407126:	3b c8                	cmp    %eax,%ecx
407128:	7c 05                	jl     0x40712f
40712a:	e8 26 57 00 00       	call   0x40c855
40712f:	8b 75 08             	mov    0x8(%ebp),%esi
407132:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
407137:	39 3e                	cmp    %edi,(%esi)
407139:	0f 85 cb 02 00 00    	jne    0x40740a
40713f:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
407143:	bb 20 05 93 19       	mov    $0x19930520,%ebx
407148:	0f 85 29 01 00 00    	jne    0x407277
40714e:	8b 46 14             	mov    0x14(%esi),%eax
407151:	3b c3                	cmp    %ebx,%eax
407153:	74 12                	je     0x407167
407155:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40715a:	74 0b                	je     0x407167
40715c:	3d 22 05 93 19       	cmp    $0x19930522,%eax
407161:	0f 85 10 01 00 00    	jne    0x407277
407167:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40716b:	0f 85 06 01 00 00    	jne    0x407277
407171:	e8 d6 53 00 00       	call   0x40c54c
407176:	83 b8 88 00 00 00 00 	cmpl   $0x0,0x88(%eax)
40717d:	0f 84 c6 02 00 00    	je     0x407449
407183:	e8 c4 53 00 00       	call   0x40c54c
407188:	8b b0 88 00 00 00    	mov    0x88(%eax),%esi
40718e:	89 75 08             	mov    %esi,0x8(%ebp)
407191:	e8 b6 53 00 00       	call   0x40c54c
407196:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
40719c:	6a 01                	push   $0x1
40719e:	56                   	push   %esi
40719f:	89 45 10             	mov    %eax,0x10(%ebp)
4071a2:	e8 ca 74 00 00       	call   0x40e671
4071a7:	85 c0                	test   %eax,%eax
4071a9:	59                   	pop    %ecx
4071aa:	59                   	pop    %ecx
4071ab:	75 05                	jne    0x4071b2
4071ad:	e8 a3 56 00 00       	call   0x40c855
4071b2:	39 3e                	cmp    %edi,(%esi)
4071b4:	75 26                	jne    0x4071dc
4071b6:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
4071ba:	75 20                	jne    0x4071dc
4071bc:	8b 46 14             	mov    0x14(%esi),%eax
4071bf:	3b c3                	cmp    %ebx,%eax
4071c1:	74 0e                	je     0x4071d1
4071c3:	3d 21 05 93 19       	cmp    $0x19930521,%eax
4071c8:	74 07                	je     0x4071d1
4071ca:	3d 22 05 93 19       	cmp    $0x19930522,%eax
4071cf:	75 0b                	jne    0x4071dc
4071d1:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
4071d5:	75 05                	jne    0x4071dc
4071d7:	e8 79 56 00 00       	call   0x40c855
4071dc:	e8 6b 53 00 00       	call   0x40c54c
4071e1:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
4071e8:	0f 84 89 00 00 00    	je     0x407277
4071ee:	e8 59 53 00 00       	call   0x40c54c
4071f3:	8b b8 94 00 00 00    	mov    0x94(%eax),%edi
4071f9:	e8 4e 53 00 00       	call   0x40c54c
4071fe:	ff 75 08             	push   0x8(%ebp)
407201:	33 f6                	xor    %esi,%esi
407203:	89 b0 94 00 00 00    	mov    %esi,0x94(%eax)
407209:	e8 1e f9 ff ff       	call   0x406b2c
40720e:	84 c0                	test   %al,%al
407210:	59                   	pop    %ecx
407211:	75 5c                	jne    0x40726f
407213:	33 db                	xor    %ebx,%ebx
407215:	39 1f                	cmp    %ebx,(%edi)
407217:	7e 1d                	jle    0x407236
407219:	8b 47 04             	mov    0x4(%edi),%eax
40721c:	8b 4c 03 04          	mov    0x4(%ebx,%eax,1),%ecx
407220:	68 48 c5 41 00       	push   $0x41c548
407225:	e8 ea e7 ff ff       	call   0x405a14
40722a:	84 c0                	test   %al,%al
40722c:	75 0d                	jne    0x40723b
40722e:	46                   	inc    %esi
40722f:	83 c3 10             	add    $0x10,%ebx
407232:	3b 37                	cmp    (%edi),%esi
407234:	7c e3                	jl     0x407219
407236:	e9 ce 55 00 00       	jmp    0x40c809
40723b:	6a 01                	push   $0x1
40723d:	ff 75 08             	push   0x8(%ebp)
407240:	e8 5b f8 ff ff       	call   0x406aa0
407245:	59                   	pop    %ecx
407246:	59                   	pop    %ecx
407247:	8d 45 08             	lea    0x8(%ebp),%eax
40724a:	50                   	push   %eax
40724b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40724e:	c7 45 08 78 76 41 00 	movl   $0x417678,0x8(%ebp)
407255:	e8 35 e6 ff ff       	call   0x40588f
40725a:	68 94 a9 41 00       	push   $0x41a994
40725f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
407262:	50                   	push   %eax
407263:	c7 45 d4 70 76 41 00 	movl   $0x417670,-0x2c(%ebp)
40726a:	e8 d3 ed ff ff       	call   0x406042
40726f:	8b 75 08             	mov    0x8(%ebp),%esi
407272:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
407277:	39 3e                	cmp    %edi,(%esi)
407279:	0f 85 88 01 00 00    	jne    0x407407
40727f:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
407283:	0f 85 7e 01 00 00    	jne    0x407407
407289:	8b 46 14             	mov    0x14(%esi),%eax
40728c:	3b c3                	cmp    %ebx,%eax
40728e:	74 12                	je     0x4072a2
407290:	3d 21 05 93 19       	cmp    $0x19930521,%eax
407295:	74 0b                	je     0x4072a2
407297:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40729c:	0f 85 65 01 00 00    	jne    0x407407
4072a2:	8b 7d 18             	mov    0x18(%ebp),%edi
4072a5:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
4072a9:	0f 86 bf 00 00 00    	jbe    0x40736e
4072af:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4072b2:	50                   	push   %eax
4072b3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4072b6:	50                   	push   %eax
4072b7:	ff 75 f8             	push   -0x8(%ebp)
4072ba:	ff 75 20             	push   0x20(%ebp)
4072bd:	57                   	push   %edi
4072be:	e8 2a f0 ff ff       	call   0x4062ed
4072c3:	83 c4 14             	add    $0x14,%esp
4072c6:	8b f8                	mov    %eax,%edi
4072c8:	8b 45 f0             	mov    -0x10(%ebp),%eax
4072cb:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
4072ce:	0f 83 97 00 00 00    	jae    0x40736b
4072d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4072d7:	39 07                	cmp    %eax,(%edi)
4072d9:	0f 8f 81 00 00 00    	jg     0x407360
4072df:	3b 47 04             	cmp    0x4(%edi),%eax
4072e2:	7f 7c                	jg     0x407360
4072e4:	8b 47 10             	mov    0x10(%edi),%eax
4072e7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4072ea:	8b 47 0c             	mov    0xc(%edi),%eax
4072ed:	85 c0                	test   %eax,%eax
4072ef:	89 45 e8             	mov    %eax,-0x18(%ebp)
4072f2:	7e 6c                	jle    0x407360
4072f4:	8b 46 1c             	mov    0x1c(%esi),%eax
4072f7:	8b 40 0c             	mov    0xc(%eax),%eax
4072fa:	8d 58 04             	lea    0x4(%eax),%ebx
4072fd:	8b 00                	mov    (%eax),%eax
4072ff:	85 c0                	test   %eax,%eax
407301:	89 45 ec             	mov    %eax,-0x14(%ebp)
407304:	7e 23                	jle    0x407329
407306:	ff 76 1c             	push   0x1c(%esi)
407309:	8b 03                	mov    (%ebx),%eax
40730b:	50                   	push   %eax
40730c:	ff 75 f4             	push   -0xc(%ebp)
40730f:	89 45 e0             	mov    %eax,-0x20(%ebp)
407312:	e8 c3 f5 ff ff       	call   0x4068da
407317:	83 c4 0c             	add    $0xc,%esp
40731a:	85 c0                	test   %eax,%eax
40731c:	75 1a                	jne    0x407338
40731e:	ff 4d ec             	decl   -0x14(%ebp)
407321:	83 c3 04             	add    $0x4,%ebx
407324:	39 45 ec             	cmp    %eax,-0x14(%ebp)
407327:	7f dd                	jg     0x407306
407329:	ff 4d e8             	decl   -0x18(%ebp)
40732c:	83 45 f4 10          	addl   $0x10,-0xc(%ebp)
407330:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
407334:	7f be                	jg     0x4072f4
407336:	eb 28                	jmp    0x407360
407338:	ff 75 24             	push   0x24(%ebp)
40733b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40733e:	ff 75 20             	push   0x20(%ebp)
407341:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
407345:	ff 75 e0             	push   -0x20(%ebp)
407348:	ff 75 18             	push   0x18(%ebp)
40734b:	ff 75 14             	push   0x14(%ebp)
40734e:	ff 75 10             	push   0x10(%ebp)
407351:	56                   	push   %esi
407352:	8b 75 0c             	mov    0xc(%ebp),%esi
407355:	e8 40 fc ff ff       	call   0x406f9a
40735a:	8b 75 08             	mov    0x8(%ebp),%esi
40735d:	83 c4 1c             	add    $0x1c,%esp
407360:	ff 45 f0             	incl   -0x10(%ebp)
407363:	83 c7 14             	add    $0x14,%edi
407366:	e9 5d ff ff ff       	jmp    0x4072c8
40736b:	8b 7d 18             	mov    0x18(%ebp),%edi
40736e:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
407372:	74 0a                	je     0x40737e
407374:	6a 01                	push   $0x1
407376:	56                   	push   %esi
407377:	e8 24 f7 ff ff       	call   0x406aa0
40737c:	59                   	pop    %ecx
40737d:	59                   	pop    %ecx
40737e:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
407382:	0f 85 ae 00 00 00    	jne    0x407436
407388:	8b 07                	mov    (%edi),%eax
40738a:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40738f:	3d 21 05 93 19       	cmp    $0x19930521,%eax
407394:	0f 82 9c 00 00 00    	jb     0x407436
40739a:	8b 7f 1c             	mov    0x1c(%edi),%edi
40739d:	85 ff                	test   %edi,%edi
40739f:	0f 84 91 00 00 00    	je     0x407436
4073a5:	56                   	push   %esi
4073a6:	e8 81 f7 ff ff       	call   0x406b2c
4073ab:	84 c0                	test   %al,%al
4073ad:	59                   	pop    %ecx
4073ae:	0f 85 82 00 00 00    	jne    0x407436
4073b4:	e8 93 51 00 00       	call   0x40c54c
4073b9:	e8 8e 51 00 00       	call   0x40c54c
4073be:	e8 89 51 00 00       	call   0x40c54c
4073c3:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
4073c9:	e8 7e 51 00 00       	call   0x40c54c
4073ce:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
4073d2:	8b 4d 10             	mov    0x10(%ebp),%ecx
4073d5:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
4073db:	56                   	push   %esi
4073dc:	75 05                	jne    0x4073e3
4073de:	ff 75 0c             	push   0xc(%ebp)
4073e1:	eb 03                	jmp    0x4073e6
4073e3:	ff 75 24             	push   0x24(%ebp)
4073e6:	e8 d8 ec ff ff       	call   0x4060c3
4073eb:	8b 75 18             	mov    0x18(%ebp),%esi
4073ee:	6a ff                	push   $0xffffffff
4073f0:	56                   	push   %esi
4073f1:	ff 75 14             	push   0x14(%ebp)
4073f4:	ff 75 0c             	push   0xc(%ebp)
4073f7:	e8 7e f5 ff ff       	call   0x40697a
4073fc:	83 c4 10             	add    $0x10,%esp
4073ff:	ff 76 1c             	push   0x1c(%esi)
407402:	e8 9e f7 ff ff       	call   0x406ba5
407407:	8b 5d 18             	mov    0x18(%ebp),%ebx
40740a:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40740e:	76 26                	jbe    0x407436
407410:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
407414:	0f 85 1c fe ff ff    	jne    0x407236
40741a:	ff 75 24             	push   0x24(%ebp)
40741d:	ff 75 20             	push   0x20(%ebp)
407420:	ff 75 f8             	push   -0x8(%ebp)
407423:	53                   	push   %ebx
407424:	ff 75 14             	push   0x14(%ebp)
407427:	ff 75 10             	push   0x10(%ebp)
40742a:	ff 75 0c             	push   0xc(%ebp)
40742d:	56                   	push   %esi
40742e:	e8 d3 fb ff ff       	call   0x407006
407433:	83 c4 20             	add    $0x20,%esp
407436:	e8 11 51 00 00       	call   0x40c54c
40743b:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
407442:	74 05                	je     0x407449
407444:	e8 0c 54 00 00       	call   0x40c855
407449:	5f                   	pop    %edi
40744a:	5e                   	pop    %esi
40744b:	5b                   	pop    %ebx
40744c:	c9                   	leave
40744d:	c3                   	ret
40744e:	56                   	push   %esi
40744f:	ff 74 24 08          	push   0x8(%esp)
407453:	8b f1                	mov    %ecx,%esi
407455:	e8 9b e4 ff ff       	call   0x4058f5
40745a:	c7 06 70 76 41 00    	movl   $0x417670,(%esi)
407460:	8b c6                	mov    %esi,%eax
407462:	5e                   	pop    %esi
407463:	c2 04 00             	ret    $0x4
407466:	55                   	push   %ebp
407467:	8b ec                	mov    %esp,%ebp
407469:	53                   	push   %ebx
40746a:	56                   	push   %esi
40746b:	57                   	push   %edi
40746c:	e8 db 50 00 00       	call   0x40c54c
407471:	83 b8 0c 02 00 00 00 	cmpl   $0x0,0x20c(%eax)
407478:	8b 45 18             	mov    0x18(%ebp),%eax
40747b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40747e:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
407483:	be ff ff ff 1f       	mov    $0x1fffffff,%esi
407488:	bb 22 05 93 19       	mov    $0x19930522,%ebx
40748d:	75 20                	jne    0x4074af
40748f:	8b 11                	mov    (%ecx),%edx
407491:	3b d7                	cmp    %edi,%edx
407493:	74 1a                	je     0x4074af
407495:	81 fa 26 00 00 80    	cmp    $0x80000026,%edx
40749b:	74 12                	je     0x4074af
40749d:	8b 10                	mov    (%eax),%edx
40749f:	23 d6                	and    %esi,%edx
4074a1:	3b d3                	cmp    %ebx,%edx
4074a3:	72 0a                	jb     0x4074af
4074a5:	f6 40 20 01          	testb  $0x1,0x20(%eax)
4074a9:	0f 85 93 00 00 00    	jne    0x407542
4074af:	f6 41 04 66          	testb  $0x66,0x4(%ecx)
4074b3:	74 23                	je     0x4074d8
4074b5:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4074b9:	0f 84 83 00 00 00    	je     0x407542
4074bf:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
4074c3:	75 7d                	jne    0x407542
4074c5:	6a ff                	push   $0xffffffff
4074c7:	50                   	push   %eax
4074c8:	ff 75 14             	push   0x14(%ebp)
4074cb:	ff 75 0c             	push   0xc(%ebp)
4074ce:	e8 a7 f4 ff ff       	call   0x40697a
4074d3:	83 c4 10             	add    $0x10,%esp
4074d6:	eb 6a                	jmp    0x407542
4074d8:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
4074dc:	75 12                	jne    0x4074f0
4074de:	8b 10                	mov    (%eax),%edx
4074e0:	23 d6                	and    %esi,%edx
4074e2:	81 fa 21 05 93 19    	cmp    $0x19930521,%edx
4074e8:	72 58                	jb     0x407542
4074ea:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
4074ee:	74 52                	je     0x407542
4074f0:	39 39                	cmp    %edi,(%ecx)
4074f2:	75 32                	jne    0x407526
4074f4:	83 79 10 03          	cmpl   $0x3,0x10(%ecx)
4074f8:	72 2c                	jb     0x407526
4074fa:	39 59 14             	cmp    %ebx,0x14(%ecx)
4074fd:	76 27                	jbe    0x407526
4074ff:	8b 51 1c             	mov    0x1c(%ecx),%edx
407502:	8b 52 08             	mov    0x8(%edx),%edx
407505:	85 d2                	test   %edx,%edx
407507:	74 1d                	je     0x407526
407509:	0f b6 75 24          	movzbl 0x24(%ebp),%esi
40750d:	56                   	push   %esi
40750e:	ff 75 20             	push   0x20(%ebp)
407511:	ff 75 1c             	push   0x1c(%ebp)
407514:	50                   	push   %eax
407515:	ff 75 14             	push   0x14(%ebp)
407518:	ff 75 10             	push   0x10(%ebp)
40751b:	ff 75 0c             	push   0xc(%ebp)
40751e:	51                   	push   %ecx
40751f:	ff d2                	call   *%edx
407521:	83 c4 20             	add    $0x20,%esp
407524:	eb 1f                	jmp    0x407545
407526:	ff 75 20             	push   0x20(%ebp)
407529:	ff 75 1c             	push   0x1c(%ebp)
40752c:	ff 75 24             	push   0x24(%ebp)
40752f:	50                   	push   %eax
407530:	ff 75 14             	push   0x14(%ebp)
407533:	ff 75 10             	push   0x10(%ebp)
407536:	ff 75 0c             	push   0xc(%ebp)
407539:	51                   	push   %ecx
40753a:	e8 b9 fb ff ff       	call   0x4070f8
40753f:	83 c4 20             	add    $0x20,%esp
407542:	33 c0                	xor    %eax,%eax
407544:	40                   	inc    %eax
407545:	5f                   	pop    %edi
407546:	5e                   	pop    %esi
407547:	5b                   	pop    %ebx
407548:	5d                   	pop    %ebp
407549:	c3                   	ret
40754a:	8b 44 24 04          	mov    0x4(%esp),%eax
40754e:	a3 f4 d9 41 00       	mov    %eax,0x41d9f4
407553:	c3                   	ret
407554:	55                   	push   %ebp
407555:	8d ac 24 58 fd ff ff 	lea    -0x2a8(%esp),%ebp
40755c:	81 ec 28 03 00 00    	sub    $0x328,%esp
407562:	a1 20 c5 41 00       	mov    0x41c520,%eax