40931d:	51                   	push   %ecx
40931e:	53                   	push   %ebx
40931f:	56                   	push   %esi
409320:	57                   	push   %edi
409321:	89 65 e8             	mov    %esp,-0x18(%ebp)
409324:	8b 45 08             	mov    0x8(%ebp),%eax
409327:	85 c0                	test   %eax,%eax
409329:	74 1b                	je     0x409346
40932b:	8b 48 1c             	mov    0x1c(%eax),%ecx
40932e:	8b 49 04             	mov    0x4(%ecx),%ecx
409331:	85 c9                	test   %ecx,%ecx
409333:	74 11                	je     0x409346
409335:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409339:	51                   	push   %ecx
40933a:	ff 70 18             	push   0x18(%eax)
40933d:	e8 5c c6 ff ff       	call   0x40599e
409342:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
409346:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409349:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409350:	5f                   	pop    %edi
409351:	5e                   	pop    %esi
409352:	5b                   	pop    %ebx
409353:	c9                   	leave
409354:	c3                   	ret
409355:	33 c0                	xor    %eax,%eax
409357:	38 45 0c             	cmp    %al,0xc(%ebp)
40935a:	0f 95 c0             	setne  %al
40935d:	c3                   	ret
40935e:	8b 65 e8             	mov    -0x18(%ebp),%esp
409361:	e9 76 00 00 00       	jmp    0x4093dc
409366:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40936a:	56                   	push   %esi
40936b:	8b 74 24 08          	mov    0x8(%esp),%esi
40936f:	8b 01                	mov    (%ecx),%eax
409371:	8b 51 04             	mov    0x4(%ecx),%edx
409374:	03 c6                	add    %esi,%eax
409376:	85 d2                	test   %edx,%edx
409378:	7c 0d                	jl     0x409387
40937a:	8b 34 32             	mov    (%edx,%esi,1),%esi
40937d:	8b 49 08             	mov    0x8(%ecx),%ecx
409380:	8b 0c 0e             	mov    (%esi,%ecx,1),%ecx
409383:	03 ca                	add    %edx,%ecx
409385:	03 c1                	add    %ecx,%eax
409387:	5e                   	pop    %esi
409388:	c3                   	ret
409389:	cc                   	int3
40938a:	cc                   	int3
40938b:	cc                   	int3
40938c:	cc                   	int3
40938d:	cc                   	int3
40938e:	cc                   	int3
40938f:	cc                   	int3
409390:	55                   	push   %ebp
409391:	8b ec                	mov    %esp,%ebp
409393:	83 ec 04             	sub    $0x4,%esp
409396:	53                   	push   %ebx
409397:	51                   	push   %ecx
409398:	8b 45 0c             	mov    0xc(%ebp),%eax
40939b:	83 c0 0c             	add    $0xc,%eax
40939e:	89 45 fc             	mov    %eax,-0x4(%ebp)
4093a1:	8b 45 08             	mov    0x8(%ebp),%eax
4093a4:	55                   	push   %ebp
4093a5:	ff 75 10             	push   0x10(%ebp)
4093a8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4093ab:	8b 6d fc             	mov    -0x4(%ebp),%ebp
4093ae:	e8 6a c9 ff ff       	call   0x405d1d
4093b3:	56                   	push   %esi
4093b4:	57                   	push   %edi
4093b5:	ff d0                	call   *%eax
4093b7:	5f                   	pop    %edi
4093b8:	5e                   	pop    %esi
4093b9:	8b dd                	mov    %ebp,%ebx
4093bb:	5d                   	pop    %ebp
4093bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4093bf:	55                   	push   %ebp
4093c0:	8b eb                	mov    %ebx,%ebp
4093c2:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4093c8:	75 05                	jne    0x4093cf
4093ca:	b9 02 00 00 00       	mov    $0x2,%ecx
4093cf:	51                   	push   %ecx
4093d0:	e8 48 c9 ff ff       	call   0x405d1d
4093d5:	5d                   	pop    %ebp
4093d6:	59                   	pop    %ecx
4093d7:	5b                   	pop    %ebx
4093d8:	c9                   	leave
4093d9:	c2 0c 00             	ret    $0xc
4093dc:	55                   	push   %ebp
4093dd:	8b ec                	mov    %esp,%ebp
4093df:	6a ff                	push   $0xffffffff
4093e1:	68 f8 d7 40 00       	push   $0x40d7f8
4093e6:	68 74 87 40 00       	push   $0x408774
4093eb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4093f1:	50                   	push   %eax
4093f2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4093f9:	51                   	push   %ecx
4093fa:	51                   	push   %ecx
4093fb:	53                   	push   %ebx
4093fc:	56                   	push   %esi
4093fd:	57                   	push   %edi
4093fe:	89 65 e8             	mov    %esp,-0x18(%ebp)
409401:	33 f6                	xor    %esi,%esi
409403:	89 75 fc             	mov    %esi,-0x4(%ebp)
409406:	e8 bc f2 ff ff       	call   0x4086c7
40940b:	39 70 60             	cmp    %esi,0x60(%eax)
40940e:	74 1f                	je     0x40942f
409410:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
409417:	e8 ab f2 ff ff       	call   0x4086c7
40941c:	ff 50 60             	call   *0x60(%eax)
40941f:	89 75 fc             	mov    %esi,-0x4(%ebp)
409422:	eb 0b                	jmp    0x40942f
409424:	6a 01                	push   $0x1
409426:	58                   	pop    %eax
409427:	c3                   	ret
409428:	8b 65 e8             	mov    -0x18(%ebp),%esp
40942b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40942f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
409433:	e8 00 00 00 00       	call   0x409438
409438:	e9 90 23 00 00       	jmp    0x40b7cd
40943d:	55                   	push   %ebp
40943e:	8b ec                	mov    %esp,%ebp
409440:	6a ff                	push   $0xffffffff
409442:	68 10 d8 40 00       	push   $0x40d810
409447:	68 74 87 40 00       	push   $0x408774
40944c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409452:	50                   	push   %eax
409453:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40945a:	51                   	push   %ecx
40945b:	51                   	push   %ecx
40945c:	53                   	push   %ebx
40945d:	56                   	push   %esi
40945e:	57                   	push   %edi
40945f:	89 65 e8             	mov    %esp,-0x18(%ebp)
409462:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409466:	a1 e0 0e 41 00       	mov    0x410ee0,%eax
40946b:	85 c0                	test   %eax,%eax
40946d:	74 16                	je     0x409485
40946f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
409476:	ff d0                	call   *%eax
409478:	eb 07                	jmp    0x409481
40947a:	6a 01                	push   $0x1
40947c:	58                   	pop    %eax
40947d:	c3                   	ret
40947e:	8b 65 e8             	mov    -0x18(%ebp),%esp
409481:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409485:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
409489:	e8 00 00 00 00       	call   0x40948e
40948e:	e9 49 ff ff ff       	jmp    0x4093dc
409493:	56                   	push   %esi
409494:	8b 74 24 08          	mov    0x8(%esp),%esi
409498:	3b 35 c0 1e 41 00    	cmp    0x411ec0,%esi
40949e:	73 40                	jae    0x4094e0
4094a0:	8b ce                	mov    %esi,%ecx
4094a2:	8b c6                	mov    %esi,%eax
4094a4:	c1 f9 05             	sar    $0x5,%ecx
4094a7:	83 e0 1f             	and    $0x1f,%eax
4094aa:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
4094b1:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4094b4:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
4094b9:	74 25                	je     0x4094e0
4094bb:	57                   	push   %edi
4094bc:	56                   	push   %esi
4094bd:	e8 e3 23 00 00       	call   0x40b8a5
4094c2:	ff 74 24 18          	push   0x18(%esp)
4094c6:	ff 74 24 18          	push   0x18(%esp)
4094ca:	56                   	push   %esi
4094cb:	e8 28 00 00 00       	call   0x4094f8
4094d0:	56                   	push   %esi
4094d1:	8b f8                	mov    %eax,%edi
4094d3:	e8 2c 24 00 00       	call   0x40b904
4094d8:	83 c4 14             	add    $0x14,%esp
4094db:	8b c7                	mov    %edi,%eax
4094dd:	5f                   	pop    %edi
4094de:	5e                   	pop    %esi
4094df:	c3                   	ret
4094e0:	e8 f9 db ff ff       	call   0x4070de
4094e5:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4094eb:	e8 f7 db ff ff       	call   0x4070e7
4094f0:	83 20 00             	andl   $0x0,(%eax)
4094f3:	83 c8 ff             	or     $0xffffffff,%eax
4094f6:	5e                   	pop    %esi
4094f7:	c3                   	ret
4094f8:	55                   	push   %ebp
4094f9:	8b ec                	mov    %esp,%ebp
4094fb:	81 ec 14 04 00 00    	sub    $0x414,%esp
409501:	53                   	push   %ebx
409502:	56                   	push   %esi
409503:	57                   	push   %edi
409504:	33 ff                	xor    %edi,%edi
409506:	39 7d 10             	cmp    %edi,0x10(%ebp)
409509:	89 7d f8             	mov    %edi,-0x8(%ebp)
40950c:	89 7d f0             	mov    %edi,-0x10(%ebp)
40950f:	75 07                	jne    0x409518
409511:	33 c0                	xor    %eax,%eax
409513:	e9 66 01 00 00       	jmp    0x40967e
409518:	8b 45 08             	mov    0x8(%ebp),%eax
40951b:	c1 f8 05             	sar    $0x5,%eax
40951e:	8d 1c 85 c0 1d 41 00 	lea    0x411dc0(,%eax,4),%ebx
409525:	8b 45 08             	mov    0x8(%ebp),%eax
409528:	83 e0 1f             	and    $0x1f,%eax
40952b:	8d 34 c0             	lea    (%eax,%eax,8),%esi
40952e:	8b 03                	mov    (%ebx),%eax
409530:	c1 e6 02             	shl    $0x2,%esi
409533:	f6 44 30 04 20       	testb  $0x20,0x4(%eax,%esi,1)
409538:	74 0e                	je     0x409548
40953a:	6a 02                	push   $0x2
40953c:	57                   	push   %edi
40953d:	ff 75 08             	push   0x8(%ebp)
409540:	e8 7b 04 00 00       	call   0x4099c0
409545:	83 c4 0c             	add    $0xc,%esp
409548:	8b 03                	mov    (%ebx),%eax
40954a:	03 c6                	add    %esi,%eax
40954c:	f6 40 04 80          	testb  $0x80,0x4(%eax)
409550:	0f 84 c1 00 00 00    	je     0x409617
409556:	8b 45 0c             	mov    0xc(%ebp),%eax
409559:	39 7d 10             	cmp    %edi,0x10(%ebp)
40955c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40955f:	89 7d 08             	mov    %edi,0x8(%ebp)
409562:	0f 86 ea 00 00 00    	jbe    0x409652
409568:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
40956e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409571:	2b 4d 0c             	sub    0xc(%ebp),%ecx
409574:	3b 4d 10             	cmp    0x10(%ebp),%ecx
409577:	73 29                	jae    0x4095a2
409579:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40957c:	ff 45 fc             	incl   -0x4(%ebp)
40957f:	8a 09                	mov    (%ecx),%cl
409581:	80 f9 0a             	cmp    $0xa,%cl
409584:	75 07                	jne    0x40958d
409586:	ff 45 f0             	incl   -0x10(%ebp)
409589:	c6 00 0d             	movb   $0xd,(%eax)
40958c:	40                   	inc    %eax
40958d:	88 08                	mov    %cl,(%eax)
40958f:	40                   	inc    %eax
409590:	8b c8                	mov    %eax,%ecx
409592:	8d 95 ec fb ff ff    	lea    -0x414(%ebp),%edx
409598:	2b ca                	sub    %edx,%ecx
40959a:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4095a0:	7c cc                	jl     0x40956e
4095a2:	8b f8                	mov    %eax,%edi
4095a4:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
4095aa:	2b f8                	sub    %eax,%edi
4095ac:	8d 45 f4             	lea    -0xc(%ebp),%eax
4095af:	6a 00                	push   $0x0
4095b1:	50                   	push   %eax
4095b2:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
4095b8:	57                   	push   %edi
4095b9:	50                   	push   %eax
4095ba:	8b 03                	mov    (%ebx),%eax
4095bc:	ff 34 30             	push   (%eax,%esi,1)
4095bf:	ff 15 80 d0 40 00    	call   *0x40d080
4095c5:	85 c0                	test   %eax,%eax
4095c7:	74 43                	je     0x40960c
4095c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4095cc:	01 45 f8             	add    %eax,-0x8(%ebp)
4095cf:	3b c7                	cmp    %edi,%eax
4095d1:	7c 0b                	jl     0x4095de
4095d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4095d6:	2b 45 0c             	sub    0xc(%ebp),%eax
4095d9:	3b 45 10             	cmp    0x10(%ebp),%eax
4095dc:	72 8a                	jb     0x409568
4095de:	33 ff                	xor    %edi,%edi
4095e0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4095e3:	3b c7                	cmp    %edi,%eax
4095e5:	0f 85 90 00 00 00    	jne    0x40967b
4095eb:	39 7d 08             	cmp    %edi,0x8(%ebp)
4095ee:	74 62                	je     0x409652
4095f0:	6a 05                	push   $0x5
4095f2:	5e                   	pop    %esi
4095f3:	39 75 08             	cmp    %esi,0x8(%ebp)
4095f6:	75 4c                	jne    0x409644
4095f8:	e8 e1 da ff ff       	call   0x4070de
4095fd:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409603:	e8 df da ff ff       	call   0x4070e7
409608:	89 30                	mov    %esi,(%eax)
40960a:	eb 41                	jmp    0x40964d
40960c:	ff 15 9c d0 40 00    	call   *0x40d09c
409612:	89 45 08             	mov    %eax,0x8(%ebp)
409615:	eb c7                	jmp    0x4095de
409617:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40961a:	57                   	push   %edi
40961b:	51                   	push   %ecx
40961c:	ff 75 10             	push   0x10(%ebp)
40961f:	ff 75 0c             	push   0xc(%ebp)
409622:	ff 30                	push   (%eax)
409624:	ff 15 80 d0 40 00    	call   *0x40d080
40962a:	85 c0                	test   %eax,%eax
40962c:	74 0b                	je     0x409639
40962e:	8b 45 f4             	mov    -0xc(%ebp),%eax
409631:	89 7d 08             	mov    %edi,0x8(%ebp)
409634:	89 45 f8             	mov    %eax,-0x8(%ebp)
409637:	eb a7                	jmp    0x4095e0
409639:	ff 15 9c d0 40 00    	call   *0x40d09c
40963f:	89 45 08             	mov    %eax,0x8(%ebp)
409642:	eb 9c                	jmp    0x4095e0
409644:	ff 75 08             	push   0x8(%ebp)
409647:	e8 1f da ff ff       	call   0x40706b
40964c:	59                   	pop    %ecx
40964d:	83 c8 ff             	or     $0xffffffff,%eax
409650:	eb 2c                	jmp    0x40967e
409652:	8b 03                	mov    (%ebx),%eax
409654:	f6 44 30 04 40       	testb  $0x40,0x4(%eax,%esi,1)
409659:	74 0c                	je     0x409667
40965b:	8b 45 0c             	mov    0xc(%ebp),%eax
40965e:	80 38 1a             	cmpb   $0x1a,(%eax)
409661:	0f 84 aa fe ff ff    	je     0x409511
409667:	e8 72 da ff ff       	call   0x4070de
40966c:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)
409672:	e8 70 da ff ff       	call   0x4070e7
409677:	89 38                	mov    %edi,(%eax)
409679:	eb d2                	jmp    0x40964d
40967b:	2b 45 f0             	sub    -0x10(%ebp),%eax
40967e:	5f                   	pop    %edi
40967f:	5e                   	pop    %esi
409680:	5b                   	pop    %ebx
409681:	c9                   	leave
409682:	c3                   	ret
409683:	ff 05 f0 17 41 00    	incl   0x4117f0
409689:	68 00 10 00 00       	push   $0x1000
40968e:	e8 fa dc ff ff       	call   0x40738d
409693:	59                   	pop    %ecx
409694:	8b 4c 24 04          	mov    0x4(%esp),%ecx
409698:	85 c0                	test   %eax,%eax
40969a:	89 41 08             	mov    %eax,0x8(%ecx)
40969d:	74 0d                	je     0x4096ac
40969f:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
4096a3:	c7 41 18 00 10 00 00 	movl   $0x1000,0x18(%ecx)
4096aa:	eb 11                	jmp    0x4096bd
4096ac:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
4096b0:	8d 41 14             	lea    0x14(%ecx),%eax
4096b3:	89 41 08             	mov    %eax,0x8(%ecx)
4096b6:	c7 41 18 02 00 00 00 	movl   $0x2,0x18(%ecx)
4096bd:	8b 41 08             	mov    0x8(%ecx),%eax
4096c0:	83 61 04 00          	andl   $0x0,0x4(%ecx)
4096c4:	89 01                	mov    %eax,(%ecx)
4096c6:	c3                   	ret
4096c7:	56                   	push   %esi
4096c8:	8b 74 24 08          	mov    0x8(%esp),%esi
4096cc:	8b 46 0c             	mov    0xc(%esi),%eax
4096cf:	a8 83                	test   $0x83,%al
4096d1:	0f 84 c7 00 00 00    	je     0x40979e
4096d7:	a8 40                	test   $0x40,%al
4096d9:	0f 85 bf 00 00 00    	jne    0x40979e
4096df:	a8 02                	test   $0x2,%al
4096e1:	74 0a                	je     0x4096ed
4096e3:	0c 20                	or     $0x20,%al
4096e5:	89 46 0c             	mov    %eax,0xc(%esi)
4096e8:	e9 b1 00 00 00       	jmp    0x40979e
4096ed:	0c 01                	or     $0x1,%al
4096ef:	66 a9 0c 01          	test   $0x10c,%ax
4096f3:	89 46 0c             	mov    %eax,0xc(%esi)