40c4f6:	53                   	push   %ebx
40c4f7:	53                   	push   %ebx
40c4f8:	68 68 3b 40 00       	push   $0x403b68
40c4fd:	eb 1f                	jmp    0x40c51e
40c4ff:	e8 76 34 00 00       	call   0x40f97a
40c504:	6a 01                	push   $0x1
40c506:	b9 04 04 00 00       	mov    $0x404,%ecx
40c50b:	53                   	push   %ebx
40c50c:	53                   	push   %ebx
40c50d:	66 3b c8             	cmp    %ax,%cx
40c510:	75 07                	jne    0x40c519
40c512:	68 f0 3b 40 00       	push   $0x403bf0
40c517:	eb 05                	jmp    0x40c51e
40c519:	68 68 3c 40 00       	push   $0x403c68
40c51e:	68 e0 3b 40 00       	push   $0x403be0
40c523:	53                   	push   %ebx
40c524:	ff 15 c8 b1 41 00    	call   *0x41b1c8
40c52a:	33 db                	xor    %ebx,%ebx
40c52c:	83 f8 20             	cmp    $0x20,%eax
40c52f:	0f 9f c3             	setg   %bl
40c532:	eb 08                	jmp    0x40c53c
40c534:	50                   	push   %eax
40c535:	e8 16 08 00 00       	call   0x40cd50
40c53a:	8b d8                	mov    %eax,%ebx
40c53c:	8b c3                	mov    %ebx,%eax
40c53e:	5b                   	pop    %ebx
40c53f:	5d                   	pop    %ebp
40c540:	c2 04 00             	ret    $0x4
40c543:	cc                   	int3
40c544:	cc                   	int3
40c545:	cc                   	int3
40c546:	cc                   	int3
40c547:	cc                   	int3
40c548:	cc                   	int3
40c549:	cc                   	int3
40c54a:	cc                   	int3
40c54b:	cc                   	int3
40c54c:	cc                   	int3
40c54d:	cc                   	int3
40c54e:	cc                   	int3
40c54f:	cc                   	int3
40c550:	8b ff                	mov    %edi,%edi
40c552:	55                   	push   %ebp
40c553:	8b ec                	mov    %esp,%ebp
40c555:	56                   	push   %esi
40c556:	8b f1                	mov    %ecx,%esi
40c558:	8b 4e 0c             	mov    0xc(%esi),%ecx
40c55b:	c7 06 3c 17 40 00    	movl   $0x40173c,(%esi)
40c561:	85 c9                	test   %ecx,%ecx
40c563:	74 0a                	je     0x40c56f
40c565:	51                   	push   %ecx
40c566:	e8 49 cc ff ff       	call   0x4091b4
40c56b:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40c56f:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40c573:	c7 06 90 15 40 00    	movl   $0x401590,(%esi)
40c579:	74 08                	je     0x40c583
40c57b:	56                   	push   %esi
40c57c:	ff 15 cc b2 41 00    	call   *0x41b2cc
40c582:	59                   	pop    %ecx
40c583:	8b c6                	mov    %esi,%eax
40c585:	5e                   	pop    %esi
40c586:	5d                   	pop    %ebp
40c587:	c2 04 00             	ret    $0x4
40c58a:	cc                   	int3
40c58b:	cc                   	int3
40c58c:	cc                   	int3
40c58d:	cc                   	int3
40c58e:	cc                   	int3
40c58f:	cc                   	int3
40c590:	68 2c 06 00 00       	push   $0x62c
40c595:	b8 87 43 41 00       	mov    $0x414387,%eax
40c59a:	e8 d3 76 00 00       	call   0x413c72
40c59f:	8b f9                	mov    %ecx,%edi
40c5a1:	83 a5 d4 f9 ff ff 00 	andl   $0x0,-0x62c(%ebp)
40c5a8:	33 f6                	xor    %esi,%esi
40c5aa:	83 3d 80 93 41 00 01 	cmpl   $0x1,0x419380
40c5b1:	75 3f                	jne    0x40c5f2
40c5b3:	8b 8e d0 56 41 00    	mov    0x4156d0(%esi),%ecx
40c5b9:	8d 95 d4 f9 ff ff    	lea    -0x62c(%ebp),%edx
40c5bf:	e8 21 34 00 00       	call   0x40f9e5
40c5c4:	85 c0                	test   %eax,%eax
40c5c6:	74 20                	je     0x40c5e8
40c5c8:	8b 9d d4 f9 ff ff    	mov    -0x62c(%ebp),%ebx
40c5ce:	85 db                	test   %ebx,%ebx
40c5d0:	74 16                	je     0x40c5e8
40c5d2:	53                   	push   %ebx
40c5d3:	ff b6 d4 56 41 00    	push   0x4156d4(%esi)
40c5d9:	8b cf                	mov    %edi,%ecx
40c5db:	e8 ab 06 00 00       	call   0x40cc8b
40c5e0:	53                   	push   %ebx
40c5e1:	ff 15 24 b3 41 00    	call   *0x41b324
40c5e7:	59                   	pop    %ecx
40c5e8:	83 c6 08             	add    $0x8,%esi
40c5eb:	83 fe 20             	cmp    $0x20,%esi
40c5ee:	72 c3                	jb     0x40c5b3
40c5f0:	eb 3d                	jmp    0x40c62f
40c5f2:	8b 8e f0 56 41 00    	mov    0x4156f0(%esi),%ecx
40c5f8:	8d 95 d4 f9 ff ff    	lea    -0x62c(%ebp),%edx
40c5fe:	e8 e2 33 00 00       	call   0x40f9e5
40c603:	85 c0                	test   %eax,%eax
40c605:	74 20                	je     0x40c627
40c607:	8b 9d d4 f9 ff ff    	mov    -0x62c(%ebp),%ebx
40c60d:	85 db                	test   %ebx,%ebx
40c60f:	74 16                	je     0x40c627
40c611:	53                   	push   %ebx
40c612:	ff b6 f4 56 41 00    	push   0x4156f4(%esi)
40c618:	8b cf                	mov    %edi,%ecx
40c61a:	e8 6c 06 00 00       	call   0x40cc8b
40c61f:	53                   	push   %ebx
40c620:	ff 15 24 b3 41 00    	call   *0x41b324
40c626:	59                   	pop    %ecx
40c627:	83 c6 08             	add    $0x8,%esi
40c62a:	83 fe 40             	cmp    $0x40,%esi
40c62d:	72 c3                	jb     0x40c5f2
40c62f:	8d 45 e0             	lea    -0x20(%ebp),%eax
40c632:	50                   	push   %eax
40c633:	68 0a 04 00 00       	push   $0x40a
40c638:	ff 77 04             	push   0x4(%edi)
40c63b:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c641:	50                   	push   %eax
40c642:	ff 15 f8 b1 41 00    	call   *0x41b1f8
40c648:	8b 35 18 98 41 00    	mov    0x419818,%esi
40c64e:	81 fe 22 00 10 00    	cmp    $0x100022,%esi
40c654:	73 25                	jae    0x40c67b
40c656:	81 fe 14 00 02 00    	cmp    $0x20014,%esi
40c65c:	75 0f                	jne    0x40c66d
40c65e:	6a 07                	push   $0x7
40c660:	5e                   	pop    %esi
40c661:	c7 85 d0 f9 ff ff 05 	movl   $0x5,-0x630(%ebp)
40c668:	00 00 00
40c66b:	eb 1e                	jmp    0x40c68b
40c66d:	81 ee 10 00 02 00    	sub    $0x20010,%esi
40c673:	89 b5 d0 f9 ff ff    	mov    %esi,-0x630(%ebp)
40c679:	eb 10                	jmp    0x40c68b
40c67b:	81 ee 1e 00 10 00    	sub    $0x10001e,%esi
40c681:	c7 85 d0 f9 ff ff 04 	movl   $0x4,-0x630(%ebp)
40c688:	00 00 00
40c68b:	56                   	push   %esi
40c68c:	68 eb 03 00 00       	push   $0x3eb
40c691:	8b cf                	mov    %edi,%ecx
40c693:	e8 19 06 00 00       	call   0x40ccb1
40c698:	33 c0                	xor    %eax,%eax
40c69a:	8b cf                	mov    %edi,%ecx
40c69c:	83 fe 07             	cmp    $0x7,%esi
40c69f:	0f 94 c0             	sete   %al
40c6a2:	50                   	push   %eax
40c6a3:	68 02 04 00 00       	push   $0x402
40c6a8:	e8 bf 05 00 00       	call   0x40cc6c
40c6ad:	68 4c 01 00 00       	push   $0x14c
40c6b2:	e8 e0 6c 00 00       	call   0x413397
40c6b7:	8b f0                	mov    %eax,%esi
40c6b9:	33 db                	xor    %ebx,%ebx
40c6bb:	89 b5 cc f9 ff ff    	mov    %esi,-0x634(%ebp)
40c6c1:	59                   	pop    %ecx
40c6c2:	85 f6                	test   %esi,%esi
40c6c4:	74 1d                	je     0x40c6e3
40c6c6:	68 40 01 00 00       	push   $0x140
40c6cb:	53                   	push   %ebx
40c6cc:	56                   	push   %esi
40c6cd:	89 9e 44 01 00 00    	mov    %ebx,0x144(%esi)
40c6d3:	89 9e 48 01 00 00    	mov    %ebx,0x148(%esi)
40c6d9:	e8 83 7a 00 00       	call   0x414161
40c6de:	83 c4 0c             	add    $0xc,%esp
40c6e1:	eb 02                	jmp    0x40c6e5
40c6e3:	8b f3                	mov    %ebx,%esi
40c6e5:	89 77 0c             	mov    %esi,0xc(%edi)
40c6e8:	85 f6                	test   %esi,%esi
40c6ea:	0f 84 b7 00 00 00    	je     0x40c7a7
40c6f0:	68 04 06 00 00       	push   $0x604
40c6f5:	8d 85 d8 f9 ff ff    	lea    -0x628(%ebp),%eax
40c6fb:	53                   	push   %ebx
40c6fc:	50                   	push   %eax
40c6fd:	e8 5f 7a 00 00       	call   0x414161
40c702:	83 c4 0c             	add    $0xc,%esp
40c705:	c7 85 c8 f9 ff ff 54 	movl   $0x401554,-0x638(%ebp)
40c70c:	15 40 00
40c70f:	89 9d cc f9 ff ff    	mov    %ebx,-0x634(%ebp)
40c715:	33 db                	xor    %ebx,%ebx
40c717:	8d 8d c8 f9 ff ff    	lea    -0x638(%ebp),%ecx
40c71d:	43                   	inc    %ebx
40c71e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c721:	e8 60 c0 ff ff       	call   0x408786
40c726:	8d 85 cc f9 ff ff    	lea    -0x634(%ebp),%eax
40c72c:	50                   	push   %eax
40c72d:	68 6b 01 00 00       	push   $0x16b
40c732:	e8 25 67 00 00       	call   0x412e5c
40c737:	85 c0                	test   %eax,%eax
40c739:	78 21                	js     0x40c75c
40c73b:	8b 8d cc f9 ff ff    	mov    -0x634(%ebp),%ecx
40c741:	85 c9                	test   %ecx,%ecx
40c743:	74 17                	je     0x40c75c
40c745:	8b 01                	mov    (%ecx),%eax
40c747:	8d 95 d8 f9 ff ff    	lea    -0x628(%ebp),%edx
40c74d:	52                   	push   %edx
40c74e:	51                   	push   %ecx
40c74f:	8b 70 18             	mov    0x18(%eax),%esi
40c752:	8b ce                	mov    %esi,%ecx
40c754:	ff 15 90 b3 41 00    	call   *0x41b390
40c75a:	ff d6                	call   *%esi
40c75c:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40c763:	8d 8d c8 f9 ff ff    	lea    -0x638(%ebp),%ecx
40c769:	c7 85 c8 f9 ff ff 54 	movl   $0x401554,-0x638(%ebp)
40c770:	15 40 00
40c773:	e8 0e c0 ff ff       	call   0x408786
40c778:	39 9d d8 f9 ff ff    	cmp    %ebx,-0x628(%ebp)
40c77e:	75 0d                	jne    0x40c78d
40c780:	8d 8d d8 f9 ff ff    	lea    -0x628(%ebp),%ecx
40c786:	e8 49 2c 00 00       	call   0x40f3d4
40c78b:	eb 02                	jmp    0x40c78f
40c78d:	33 db                	xor    %ebx,%ebx
40c78f:	ff b5 d0 f9 ff ff    	push   -0x630(%ebp)
40c795:	8d 45 e0             	lea    -0x20(%ebp),%eax
40c798:	89 5f 10             	mov    %ebx,0x10(%edi)
40c79b:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c79e:	50                   	push   %eax
40c79f:	ff 77 04             	push   0x4(%edi)
40c7a2:	e8 0d 25 00 00       	call   0x40ecb4
40c7a7:	e8 84 74 00 00       	call   0x413c30
40c7ac:	c2 04 00             	ret    $0x4
40c7af:	cc                   	int3
40c7b0:	6a 0c                	push   $0xc
40c7b2:	b8 c2 43 41 00       	mov    $0x4143c2,%eax
40c7b7:	e8 83 74 00 00       	call   0x413c3f
40c7bc:	8b d9                	mov    %ecx,%ebx
40c7be:	8b 45 08             	mov    0x8(%ebp),%eax
40c7c1:	ba eb 03 00 00       	mov    $0x3eb,%edx
40c7c6:	8b c8                	mov    %eax,%ecx
40c7c8:	33 ff                	xor    %edi,%edi
40c7ca:	0f b7 c0             	movzwl %ax,%eax
40c7cd:	c1 e9 10             	shr    $0x10,%ecx
40c7d0:	2b c2                	sub    %edx,%eax
40c7d2:	0f 84 23 01 00 00    	je     0x40c8fb
40c7d8:	83 e8 14             	sub    $0x14,%eax
40c7db:	74 22                	je     0x40c7ff
40c7dd:	83 e8 03             	sub    $0x3,%eax
40c7e0:	74 06                	je     0x40c7e8
40c7e2:	47                   	inc    %edi
40c7e3:	e9 ec 01 00 00       	jmp    0x40c9d4
40c7e8:	33 c0                	xor    %eax,%eax
40c7ea:	66 3b c1             	cmp    %cx,%ax
40c7ed:	0f 85 e1 01 00 00    	jne    0x40c9d4
40c7f3:	8b cb                	mov    %ebx,%ecx
40c7f5:	e8 f1 02 00 00       	call   0x40caeb
40c7fa:	e9 d5 01 00 00       	jmp    0x40c9d4
40c7ff:	33 c0                	xor    %eax,%eax
40c801:	40                   	inc    %eax
40c802:	66 3b c1             	cmp    %cx,%ax
40c805:	0f 85 c9 01 00 00    	jne    0x40c9d4
40c80b:	57                   	push   %edi
40c80c:	57                   	push   %edi
40c80d:	68 88 01 00 00       	push   $0x188
40c812:	68 ff 03 00 00       	push   $0x3ff
40c817:	ff 73 04             	push   0x4(%ebx)
40c81a:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c820:	50                   	push   %eax
40c821:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c827:	85 c0                	test   %eax,%eax
40c829:	0f 85 a5 01 00 00    	jne    0x40c9d4
40c82f:	68 08 02 00 00       	push   $0x208
40c834:	e8 53 6d 00 00       	call   0x41358c
40c839:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c83c:	59                   	pop    %ecx
40c83d:	85 c0                	test   %eax,%eax
40c83f:	0f 84 8f 01 00 00    	je     0x40c9d4
40c845:	6a 14                	push   $0x14
40c847:	e8 4b 6b 00 00       	call   0x413397
40c84c:	8b f0                	mov    %eax,%esi
40c84e:	59                   	pop    %ecx
40c84f:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c852:	89 75 e8             	mov    %esi,-0x18(%ebp)
40c855:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c858:	85 f6                	test   %esi,%esi
40c85a:	74 32                	je     0x40c88e
40c85c:	33 c0                	xor    %eax,%eax
40c85e:	89 7e 04             	mov    %edi,0x4(%esi)
40c861:	66 89 46 08          	mov    %ax,0x8(%esi)
40c865:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c869:	68 08 02 00 00       	push   $0x208
40c86e:	c7 06 c8 15 40 00    	movl   $0x4015c8,(%esi)
40c874:	e8 13 6d 00 00       	call   0x41358c
40c879:	89 46 0c             	mov    %eax,0xc(%esi)
40c87c:	c7 04 24 08 02 00 00 	movl   $0x208,(%esp)
40c883:	e8 04 6d 00 00       	call   0x41358c
40c888:	59                   	pop    %ecx
40c889:	89 46 10             	mov    %eax,0x10(%esi)
40c88c:	eb 05                	jmp    0x40c893
40c88e:	8b f7                	mov    %edi,%esi
40c890:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c893:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c897:	85 f6                	test   %esi,%esi
40c899:	74 34                	je     0x40c8cf
40c89b:	51                   	push   %ecx
40c89c:	8b ce                	mov    %esi,%ecx
40c89e:	e8 ae c3 ff ff       	call   0x408c51
40c8a3:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c8a6:	ba cd 00 00 00       	mov    $0xcd,%edx
40c8ab:	56                   	push   %esi
40c8ac:	e8 d4 32 00 00       	call   0x40fb85
40c8b1:	51                   	push   %ecx
40c8b2:	ff 75 ec             	push   -0x14(%ebp)
40c8b5:	8b ce                	mov    %esi,%ecx
40c8b7:	e8 63 c5 ff ff       	call   0x408e1f
40c8bc:	8b 06                	mov    (%esi),%eax
40c8be:	6a 01                	push   $0x1
40c8c0:	8b 30                	mov    (%eax),%esi
40c8c2:	8b ce                	mov    %esi,%ecx
40c8c4:	ff 15 90 b3 41 00    	call   *0x41b390
40c8ca:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c8cd:	ff d6                	call   *%esi
40c8cf:	8b 75 ec             	mov    -0x14(%ebp),%esi
40c8d2:	56                   	push   %esi
40c8d3:	57                   	push   %edi
40c8d4:	68 80 01 00 00       	push   $0x180
40c8d9:	68 ff 03 00 00       	push   $0x3ff
40c8de:	ff 73 04             	push   0x4(%ebx)
40c8e1:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c8e7:	50                   	push   %eax
40c8e8:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c8ee:	56                   	push   %esi
40c8ef:	ff 15 24 b3 41 00    	call   *0x41b324
40c8f5:	59                   	pop    %ecx
40c8f6:	e9 d9 00 00 00       	jmp    0x40c9d4
40c8fb:	33 c0                	xor    %eax,%eax
40c8fd:	40                   	inc    %eax
40c8fe:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c901:	66 3b c1             	cmp    %cx,%ax
40c904:	0f 85 ca 00 00 00    	jne    0x40c9d4
40c90a:	52                   	push   %edx
40c90b:	8b cb                	mov    %ebx,%ecx
40c90d:	e8 c5 03 00 00       	call   0x40ccd7
40c912:	57                   	push   %edi
40c913:	57                   	push   %edi
40c914:	68 46 01 00 00       	push   $0x146
40c919:	68 eb 03 00 00       	push   $0x3eb
40c91e:	ff 73 04             	push   0x4(%ebx)
40c921:	8b f0                	mov    %eax,%esi
40c923:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c929:	50                   	push   %eax
40c92a:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c930:	8d 4e 01             	lea    0x1(%esi),%ecx
40c933:	3b c1                	cmp    %ecx,%eax
40c935:	75 0b                	jne    0x40c942
40c937:	33 c0                	xor    %eax,%eax
40c939:	40                   	inc    %eax
40c93a:	39 05 80 93 41 00    	cmp    %eax,0x419380
40c940:	75 05                	jne    0x40c947
40c942:	8b c7                	mov    %edi,%eax
40c944:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c947:	50                   	push   %eax
40c948:	68 02 04 00 00       	push   $0x402