40b382:	50                   	push   %eax
40b383:	e8 8f 13 00 00       	call   0x40c717
40b388:	33 c0                	xor    %eax,%eax
40b38a:	83 7d 0c 07          	cmpl   $0x7,0xc(%ebp)
40b38e:	0f 94 c0             	sete   %al
40b391:	a3 b0 1f 43 00       	mov    %eax,0x431fb0
40b396:	e9 ab 0e 00 00       	jmp    0x40c246
40b39b:	83 3d b4 1f 43 00 00 	cmpl   $0x0,0x431fb4
40b3a2:	74 0c                	je     0x40b3b0
40b3a4:	ba 70 1f 43 00       	mov    $0x431f70,%edx
40b3a9:	8b ce                	mov    %esi,%ecx
40b3ab:	e8 c3 28 00 00       	call   0x40dc73
40b3b0:	83 3d 68 26 43 00 00 	cmpl   $0x0,0x432668
40b3b7:	74 0c                	je     0x40b3c5
40b3b9:	ff 35 70 26 43 00    	push   0x432670
40b3bf:	ff 15 b4 30 43 00    	call   *0x4330b4
40b3c5:	a1 cc 1f 43 00       	mov    0x431fcc,%eax
40b3ca:	85 c0                	test   %eax,%eax
40b3cc:	74 07                	je     0x40b3d5
40b3ce:	50                   	push   %eax
40b3cf:	ff 15 b4 30 43 00    	call   *0x4330b4
40b3d5:	a1 c8 1f 43 00       	mov    0x431fc8,%eax
40b3da:	85 c0                	test   %eax,%eax
40b3dc:	74 07                	je     0x40b3e5
40b3de:	50                   	push   %eax
40b3df:	ff 15 b4 30 43 00    	call   *0x4330b4
40b3e5:	a1 d0 1f 43 00       	mov    0x431fd0,%eax
40b3ea:	85 c0                	test   %eax,%eax
40b3ec:	74 07                	je     0x40b3f5
40b3ee:	50                   	push   %eax
40b3ef:	ff 15 74 30 43 00    	call   *0x433074
40b3f5:	a1 d4 1f 43 00       	mov    0x431fd4,%eax
40b3fa:	85 c0                	test   %eax,%eax
40b3fc:	74 07                	je     0x40b405
40b3fe:	50                   	push   %eax
40b3ff:	ff 15 b4 30 43 00    	call   *0x4330b4
40b405:	8b 0d 10 27 43 00    	mov    0x432710,%ecx
40b40b:	85 c9                	test   %ecx,%ecx
40b40d:	0f 84 33 0e 00 00    	je     0x40c246
40b413:	8b 01                	mov    (%ecx),%eax
40b415:	51                   	push   %ecx
40b416:	8b 70 08             	mov    0x8(%eax),%esi
40b419:	8b ce                	mov    %esi,%ecx
40b41b:	ff 15 18 34 43 00    	call   *0x433418
40b421:	ff d6                	call   *%esi
40b423:	83 25 10 27 43 00 00 	andl   $0x0,0x432710
40b42a:	e9 17 0e 00 00       	jmp    0x40c246
40b42f:	33 ff                	xor    %edi,%edi
40b431:	89 35 14 19 43 00    	mov    %esi,0x431914
40b437:	6a 08                	push   $0x8
40b439:	89 3d c8 1f 43 00    	mov    %edi,0x431fc8
40b43f:	89 3d cc 1f 43 00    	mov    %edi,0x431fcc
40b445:	e8 85 4c 00 00       	call   0x4100cf
40b44a:	59                   	pop    %ecx
40b44b:	85 c0                	test   %eax,%eax
40b44d:	74 0f                	je     0x40b45e
40b44f:	c7 00 38 10 40 00    	movl   $0x401038,(%eax)
40b455:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
40b45c:	eb 02                	jmp    0x40b460
40b45e:	8b c7                	mov    %edi,%eax
40b460:	a3 10 27 43 00       	mov    %eax,0x432710
40b465:	85 c0                	test   %eax,%eax
40b467:	75 08                	jne    0x40b471
40b469:	83 c8 ff             	or     $0xffffffff,%eax
40b46c:	e9 d7 0d 00 00       	jmp    0x40c248
40b471:	8b ce                	mov    %esi,%ecx
40b473:	e8 c8 e6 ff ff       	call   0x409b40
40b478:	8b ce                	mov    %esi,%ecx
40b47a:	e8 b5 e4 ff ff       	call   0x409934
40b47f:	8b ce                	mov    %esi,%ecx
40b481:	e8 2b e7 ff ff       	call   0x409bb1
40b486:	e9 bb 0d 00 00       	jmp    0x40c246
40b48b:	8d 44 24 48          	lea    0x48(%esp),%eax
40b48f:	50                   	push   %eax
40b490:	56                   	push   %esi
40b491:	ff 15 ec 32 43 00    	call   *0x4332ec
40b497:	bf 70 1f 43 00       	mov    $0x431f70,%edi
40b49c:	89 44 24 0c          	mov    %eax,0xc(%esp)
40b4a0:	8b d0                	mov    %eax,%edx
40b4a2:	8b cf                	mov    %edi,%ecx
40b4a4:	e8 80 16 00 00       	call   0x40cb29
40b4a9:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b4ad:	8b cf                	mov    %edi,%ecx
40b4af:	e8 27 17 00 00       	call   0x40cbdb
40b4b4:	8b 0d b0 1f 43 00    	mov    0x431fb0,%ecx
40b4ba:	8b c1                	mov    %ecx,%eax
40b4bc:	f7 d8                	neg    %eax
40b4be:	1b c0                	sbb    %eax,%eax
40b4c0:	33 ff                	xor    %edi,%edi
40b4c2:	f7 d0                	not    %eax
40b4c4:	47                   	inc    %edi
40b4c5:	23 c1                	and    %ecx,%eax
40b4c7:	a3 b0 1f 43 00       	mov    %eax,0x431fb0
40b4cc:	a1 bc 1f 43 00       	mov    0x431fbc,%eax
40b4d1:	85 c0                	test   %eax,%eax
40b4d3:	75 1d                	jne    0x40b4f2
40b4d5:	0f b7 05 c4 1f 43 00 	movzwl 0x431fc4,%eax
40b4dc:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b4e0:	51                   	push   %ecx
40b4e1:	57                   	push   %edi
40b4e2:	50                   	push   %eax
40b4e3:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40b4e8:	e8 4c 18 00 00       	call   0x40cd39
40b4ed:	a1 bc 1f 43 00       	mov    0x431fbc,%eax
40b4f2:	83 3d 5c 1f 43 00 00 	cmpl   $0x0,0x431f5c
40b4f9:	74 1e                	je     0x40b519
40b4fb:	85 c0                	test   %eax,%eax
40b4fd:	74 11                	je     0x40b510
40b4ff:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40b505:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40b50a:	57                   	push   %edi
40b50b:	e8 4c 19 00 00       	call   0x40ce5c
40b510:	83 25 5c 1f 43 00 00 	andl   $0x0,0x431f5c
40b517:	eb 15                	jmp    0x40b52e
40b519:	85 c0                	test   %eax,%eax
40b51b:	74 11                	je     0x40b52e
40b51d:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40b523:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40b528:	57                   	push   %edi
40b529:	e8 2e 19 00 00       	call   0x40ce5c
40b52e:	8d 44 24 48          	lea    0x48(%esp),%eax
40b532:	50                   	push   %eax
40b533:	56                   	push   %esi
40b534:	ff 15 f4 32 43 00    	call   *0x4332f4
40b53a:	8b c7                	mov    %edi,%eax
40b53c:	e9 07 0d 00 00       	jmp    0x40c248
40b541:	83 f9 1f             	cmp    $0x1f,%ecx
40b544:	0f 84 60 03 00 00    	je     0x40b8aa
40b54a:	83 f9 4e             	cmp    $0x4e,%ecx
40b54d:	74 6e                	je     0x40b5bd
40b54f:	83 f9 51             	cmp    $0x51,%ecx
40b552:	0f 85 e8 02 00 00    	jne    0x40b840
40b558:	6a 08                	push   $0x8
40b55a:	8d 44 24 30          	lea    0x30(%esp),%eax
40b55e:	50                   	push   %eax
40b55f:	68 04 10 00 00       	push   $0x1004
40b564:	0f b7 c2             	movzwl %dx,%eax
40b567:	50                   	push   %eax
40b568:	ff 15 38 31 43 00    	call   *0x433138
40b56e:	85 c0                	test   %eax,%eax
40b570:	74 43                	je     0x40b5b5
40b572:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40b576:	50                   	push   %eax
40b577:	ff 15 fc 33 43 00    	call   *0x4333fc
40b57d:	59                   	pop    %ecx
40b57e:	39 05 5c 26 43 00    	cmp    %eax,0x43265c
40b584:	74 2f                	je     0x40b5b5
40b586:	ff 35 10 19 43 00    	push   0x431910
40b58c:	a3 5c 26 43 00       	mov    %eax,0x43265c
40b591:	ff 15 f0 32 43 00    	call   *0x4332f0
40b597:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40b59d:	8b f0                	mov    %eax,%esi
40b59f:	6a 01                	push   $0x1
40b5a1:	8b ce                	mov    %esi,%ecx
40b5a3:	e8 76 1d 00 00       	call   0x40d31e
40b5a8:	56                   	push   %esi
40b5a9:	ff 35 10 19 43 00    	push   0x431910
40b5af:	ff 15 08 33 43 00    	call   *0x433308
40b5b5:	33 c0                	xor    %eax,%eax
40b5b7:	40                   	inc    %eax
40b5b8:	e9 8b 0c 00 00       	jmp    0x40c248
40b5bd:	ff 15 a8 32 43 00    	call   *0x4332a8
40b5c3:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40b5c9:	8b d0                	mov    %eax,%edx
40b5cb:	85 c9                	test   %ecx,%ecx
40b5cd:	0f 84 73 0c 00 00    	je     0x40c246
40b5d3:	33 ff                	xor    %edi,%edi
40b5d5:	66 39 39             	cmp    %di,(%ecx)
40b5d8:	0f 84 68 0c 00 00    	je     0x40c246
40b5de:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b5e2:	81 79 08 ee fd ff ff 	cmpl   $0xfffffdee,0x8(%ecx)
40b5e9:	0f 85 57 0c 00 00    	jne    0x40c246
40b5ef:	0f bf c2             	movswl %dx,%eax
40b5f2:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40b5f6:	c1 ea 10             	shr    $0x10,%edx
40b5f9:	0f bf c2             	movswl %dx,%eax
40b5fc:	6a 01                	push   $0x1
40b5fe:	89 44 24 24          	mov    %eax,0x24(%esp)
40b602:	8d 44 24 20          	lea    0x20(%esp),%eax
40b606:	50                   	push   %eax
40b607:	56                   	push   %esi
40b608:	57                   	push   %edi
40b609:	ff 15 84 32 43 00    	call   *0x433284
40b60f:	8b 44 24 20          	mov    0x20(%esp),%eax
40b613:	99                   	cltd
40b614:	f7 3d 74 1f 43 00    	idivl  0x431f74
40b61a:	0f b7 0d 80 26 43 00 	movzwl 0x432680,%ecx
40b621:	8b f0                	mov    %eax,%esi
40b623:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40b627:	99                   	cltd
40b628:	f7 3d 70 1f 43 00    	idivl  0x431f70
40b62e:	0f af 35 b0 10 41 00 	imul   0x4110b0,%esi
40b635:	03 f0                	add    %eax,%esi
40b637:	03 f1                	add    %ecx,%esi
40b639:	89 74 24 14          	mov    %esi,0x14(%esp)
40b63d:	33 f6                	xor    %esi,%esi
40b63f:	46                   	inc    %esi
40b640:	39 35 bc 1f 43 00    	cmp    %esi,0x431fbc
40b646:	75 6e                	jne    0x40b6b6
40b648:	a1 90 1f 43 00       	mov    0x431f90,%eax
40b64d:	89 44 24 24          	mov    %eax,0x24(%esp)
40b651:	a1 94 1f 43 00       	mov    0x431f94,%eax
40b656:	56                   	push   %esi
40b657:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40b65b:	8d 44 24 28          	lea    0x28(%esp),%eax
40b65f:	50                   	push   %eax
40b660:	ff 35 14 19 43 00    	push   0x431914
40b666:	ff 35 10 19 43 00    	push   0x431910
40b66c:	ff 15 84 32 43 00    	call   *0x433284
40b672:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40b676:	a1 88 1f 43 00       	mov    0x431f88,%eax
40b67b:	ff 74 24 20          	push   0x20(%esp)
40b67f:	03 c1                	add    %ecx,%eax
40b681:	89 4c 24 30          	mov    %ecx,0x30(%esp)
40b685:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40b689:	ff 74 24 20          	push   0x20(%esp)
40b68d:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40b691:	a1 8c 1f 43 00       	mov    0x431f8c,%eax
40b696:	03 c1                	add    %ecx,%eax
40b698:	89 4c 24 38          	mov    %ecx,0x38(%esp)
40b69c:	89 44 24 40          	mov    %eax,0x40(%esp)
40b6a0:	8d 44 24 34          	lea    0x34(%esp),%eax
40b6a4:	50                   	push   %eax
40b6a5:	ff 15 28 32 43 00    	call   *0x433228
40b6ab:	0f b7 0d c4 1f 43 00 	movzwl 0x431fc4,%ecx
40b6b2:	85 c0                	test   %eax,%eax
40b6b4:	75 04                	jne    0x40b6ba
40b6b6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b6ba:	0f b7 05 3c 13 41 00 	movzwl 0x41133c,%eax
40b6c1:	3b c8                	cmp    %eax,%ecx
40b6c3:	0f 8f 7d 0b 00 00    	jg     0x40c246
40b6c9:	0f b7 05 38 13 41 00 	movzwl 0x411338,%eax
40b6d0:	3b c8                	cmp    %eax,%ecx
40b6d2:	0f 8f 6e 0b 00 00    	jg     0x40c246
40b6d8:	a1 48 26 43 00       	mov    0x432648,%eax
40b6dd:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40b6e1:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
40b6e6:	83 f8 20             	cmp    $0x20,%eax
40b6e9:	0f 84 57 0b 00 00    	je     0x40c246
40b6ef:	f7 05 18 19 43 00 00 	testl  $0x20000000,0x431918
40b6f6:	00 00 20
40b6f9:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
40b700:	74 2e                	je     0x40b730
40b702:	be 04 01 00 00       	mov    $0x104,%esi
40b707:	56                   	push   %esi
40b708:	50                   	push   %eax
40b709:	6a 73                	push   $0x73
40b70b:	ff 35 0c 19 41 00    	push   0x41190c
40b711:	ff 15 20 33 43 00    	call   *0x433320
40b717:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
40b71c:	50                   	push   %eax
40b71d:	8d 84 24 8c 00 00 00 	lea    0x8c(%esp),%eax
40b724:	50                   	push   %eax
40b725:	68 34 18 40 00       	push   $0x401834
40b72a:	56                   	push   %esi
40b72b:	e9 b5 00 00 00       	jmp    0x40b7e5
40b730:	50                   	push   %eax
40b731:	ff 74 24 10          	push   0x10(%esp)
40b735:	ff 15 bc 30 43 00    	call   *0x4330bc
40b73b:	a1 a4 16 41 00       	mov    0x4116a4,%eax
40b740:	3d b0 04 00 00       	cmp    $0x4b0,%eax
40b745:	0f 84 82 00 00 00    	je     0x40b7cd
40b74b:	57                   	push   %edi
40b74c:	57                   	push   %edi
40b74d:	6a 02                	push   $0x2
40b74f:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40b753:	51                   	push   %ecx
40b754:	56                   	push   %esi
40b755:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40b759:	51                   	push   %ecx
40b75a:	68 00 04 00 00       	push   $0x400
40b75f:	50                   	push   %eax
40b760:	ff 15 b0 31 43 00    	call   *0x4331b0
40b766:	3b c6                	cmp    %esi,%eax
40b768:	75 07                	jne    0x40b771
40b76a:	0f b6 44 24 14       	movzbl 0x14(%esp),%eax
40b76f:	eb 15                	jmp    0x40b786
40b771:	66 8b 44 24 14       	mov    0x14(%esp),%ax
40b776:	0f b6 c8             	movzbl %al,%ecx
40b779:	0f b6 c4             	movzbl %ah,%eax
40b77c:	66 c1 e1 08          	shl    $0x8,%cx
40b780:	66 0b c8             	or     %ax,%cx
40b783:	0f b7 c1             	movzwl %cx,%eax
40b786:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
40b78d:	0f b7 c0             	movzwl %ax,%eax
40b790:	51                   	push   %ecx
40b791:	50                   	push   %eax
40b792:	0f b7 44 24 14       	movzwl 0x14(%esp),%eax
40b797:	be 20 19 43 00       	mov    $0x431920,%esi
40b79c:	50                   	push   %eax
40b79d:	68 4c 18 40 00       	push   $0x40184c
40b7a2:	68 04 01 00 00       	push   $0x104
40b7a7:	56                   	push   %esi
40b7a8:	e8 fb 81 ff ff       	call   0x4039a8
40b7ad:	83 c4 18             	add    $0x18,%esp
40b7b0:	85 c0                	test   %eax,%eax
40b7b2:	0f 88 8e 0a 00 00    	js     0x40c246
40b7b8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b7bc:	56                   	push   %esi
40b7bd:	6a 50                	push   $0x50
40b7bf:	5a                   	pop    %edx
40b7c0:	8d 49 10             	lea    0x10(%ecx),%ecx
40b7c3:	e8 97 82 ff ff       	call   0x403a5f
40b7c8:	e9 79 0a 00 00       	jmp    0x40c246
40b7cd:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
40b7d4:	50                   	push   %eax
40b7d5:	0f b7 44 24 10       	movzwl 0x10(%esp),%eax
40b7da:	50                   	push   %eax
40b7db:	68 74 18 40 00       	push   $0x401874
40b7e0:	68 04 01 00 00       	push   $0x104
40b7e5:	be 20 19 43 00       	mov    $0x431920,%esi
40b7ea:	56                   	push   %esi
40b7eb:	e8 b8 81 ff ff       	call   0x4039a8
40b7f0:	83 c4 14             	add    $0x14,%esp
40b7f3:	eb bb                	jmp    0x40b7b0
40b7f5:	b8 81 00 00 00       	mov    $0x81,%eax
40b7fa:	e9 49 0a 00 00       	jmp    0x40c248
40b7ff:	8b c1                	mov    %ecx,%eax
40b801:	2d 00 01 00 00       	sub    $0x100,%eax
40b806:	0f 84 77 04 00 00    	je     0x40bc83
40b80c:	48                   	dec    %eax
40b80d:	83 e8 01             	sub    $0x1,%eax
40b810:	0f 84 14 04 00 00    	je     0x40bc2a
40b816:	83 e8 11             	sub    $0x11,%eax
40b819:	0f 84 ae 03 00 00    	je     0x40bbcd
40b81f:	6a 00                	push   $0x0
40b821:	5f                   	pop    %edi
40b822:	2d ed 00 00 00       	sub    $0xed,%eax
40b827:	0f 84 9c 01 00 00    	je     0x40b9c9
40b82d:	83 e8 01             	sub    $0x1,%eax
40b830:	0f 84 c6 00 00 00    	je     0x40b8fc
40b836:	83 e8 01             	sub    $0x1,%eax
40b839:	74 6f                	je     0x40b8aa
40b83b:	83 e8 01             	sub    $0x1,%eax
40b83e:	74 11                	je     0x40b851
40b840:	52                   	push   %edx
40b841:	ff 75 10             	push   0x10(%ebp)
40b844:	51                   	push   %ecx
40b845:	56                   	push   %esi
40b846:	ff 15 08 32 43 00    	call   *0x433208
40b84c:	e9 f7 09 00 00       	jmp    0x40c248
40b851:	be 70 1f 43 00       	mov    $0x431f70,%esi
40b856:	8b ce                	mov    %esi,%ecx
40b858:	e8 4f 0e 00 00       	call   0x40c6ac
40b85d:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40b864:	3b c1                	cmp    %ecx,%eax
40b866:	77 2b                	ja     0x40b893
40b868:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40b86e:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
40b872:	66 85 c0             	test   %ax,%ax