4093de:	85 c0                	test   %eax,%eax
4093e0:	75 14                	jne    0x4093f6
4093e2:	6a 05                	push   $0x5
4093e4:	58                   	pop    %eax
4093e5:	c7 85 f8 fd ff ff 14 	movl   $0x14,-0x208(%ebp)
4093ec:	00 00 00
4093ef:	6a 18                	push   $0x18
4093f1:	e9 c3 01 00 00       	jmp    0x4095b9
4093f6:	6a 09                	push   $0x9
4093f8:	68 b4 4f 40 00       	push   $0x404fb4
4093fd:	ff 34 9f             	push   (%edi,%ebx,4)
409400:	ff 15 10 f1 40 00    	call   *0x40f110
409406:	83 c4 0c             	add    $0xc,%esp
409409:	85 c0                	test   %eax,%eax
40940b:	75 18                	jne    0x409425
40940d:	c7 85 f0 fd ff ff 9c 	movl   $0x40169c,-0x210(%ebp)
409414:	16 40 00
409417:	6a 02                	push   $0x2
409419:	58                   	pop    %eax
40941a:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
409420:	e9 50 06 00 00       	jmp    0x409a75
409425:	6a 0a                	push   $0xa
409427:	68 c8 4f 40 00       	push   $0x404fc8
40942c:	ff 34 9f             	push   (%edi,%ebx,4)
40942f:	ff 15 10 f1 40 00    	call   *0x40f110
409435:	83 c4 0c             	add    $0xc,%esp
409438:	85 c0                	test   %eax,%eax
40943a:	75 0c                	jne    0x409448
40943c:	c7 85 f0 fd ff ff 8c 	movl   $0x40518c,-0x210(%ebp)
409443:	51 40 00
409446:	eb cf                	jmp    0x409417
409448:	6a 0a                	push   $0xa
40944a:	68 e0 4f 40 00       	push   $0x404fe0
40944f:	ff 34 9f             	push   (%edi,%ebx,4)
409452:	ff 15 10 f1 40 00    	call   *0x40f110
409458:	83 c4 0c             	add    $0xc,%esp
40945b:	85 c0                	test   %eax,%eax
40945d:	75 19                	jne    0x409478
40945f:	c7 85 f0 fd ff ff bc 	movl   $0x4016bc,-0x210(%ebp)
409466:	16 40 00
409469:	c7 85 f8 fd ff ff 03 	movl   $0x3,-0x208(%ebp)
409470:	00 00 00
409473:	e9 fd 05 00 00       	jmp    0x409a75
409478:	6a 0b                	push   $0xb
40947a:	68 f8 4f 40 00       	push   $0x404ff8
40947f:	ff 34 9f             	push   (%edi,%ebx,4)
409482:	ff 15 10 f1 40 00    	call   *0x40f110
409488:	83 c4 0c             	add    $0xc,%esp
40948b:	85 c0                	test   %eax,%eax
40948d:	75 0c                	jne    0x40949b
40948f:	c7 85 f0 fd ff ff ac 	movl   $0x4051ac,-0x210(%ebp)
409496:	51 40 00
409499:	eb ce                	jmp    0x409469
40949b:	6a 08                	push   $0x8
40949d:	68 10 50 40 00       	push   $0x405010
4094a2:	ff 34 9f             	push   (%edi,%ebx,4)
4094a5:	ff 15 10 f1 40 00    	call   *0x40f110
4094ab:	83 c4 0c             	add    $0xc,%esp
4094ae:	85 c0                	test   %eax,%eax
4094b0:	75 1e                	jne    0x4094d0
4094b2:	6a 02                	push   $0x2
4094b4:	58                   	pop    %eax
4094b5:	c7 85 f8 fd ff ff 04 	movl   $0x4,-0x208(%ebp)
4094bc:	00 00 00
4094bf:	c7 85 f0 fd ff ff dc 	movl   $0x4016dc,-0x210(%ebp)
4094c6:	16 40 00
4094c9:	6a 12                	push   $0x12
4094cb:	e9 e9 00 00 00       	jmp    0x4095b9
4094d0:	6a 09                	push   $0x9
4094d2:	68 24 50 40 00       	push   $0x405024
4094d7:	ff 34 9f             	push   (%edi,%ebx,4)
4094da:	ff 15 10 f1 40 00    	call   *0x40f110
4094e0:	83 c4 0c             	add    $0xc,%esp
4094e3:	85 c0                	test   %eax,%eax
4094e5:	75 19                	jne    0x409500
4094e7:	c7 85 f8 fd ff ff 04 	movl   $0x4,-0x208(%ebp)
4094ee:	00 00 00
4094f1:	c7 85 f0 fd ff ff bc 	movl   $0x4051bc,-0x210(%ebp)
4094f8:	51 40 00
4094fb:	e9 b4 00 00 00       	jmp    0x4095b4
409500:	6a 0d                	push   $0xd
409502:	68 38 50 40 00       	push   $0x405038
409507:	ff 34 9f             	push   (%edi,%ebx,4)
40950a:	ff 15 10 f1 40 00    	call   *0x40f110
409510:	83 c4 0c             	add    $0xc,%esp
409513:	85 c0                	test   %eax,%eax
409515:	75 19                	jne    0x409530
409517:	c7 85 f0 fd ff ff ac 	movl   $0x4016ac,-0x210(%ebp)
40951e:	16 40 00
409521:	c7 85 f8 fd ff ff 05 	movl   $0x5,-0x208(%ebp)
409528:	00 00 00
40952b:	e9 45 05 00 00       	jmp    0x409a75
409530:	6a 0a                	push   $0xa
409532:	68 54 50 40 00       	push   $0x405054
409537:	ff 34 9f             	push   (%edi,%ebx,4)
40953a:	ff 15 10 f1 40 00    	call   *0x40f110
409540:	83 c4 0c             	add    $0xc,%esp
409543:	85 c0                	test   %eax,%eax
409545:	75 0c                	jne    0x409553
409547:	c7 85 f0 fd ff ff 9c 	movl   $0x40519c,-0x210(%ebp)
40954e:	51 40 00
409551:	eb ce                	jmp    0x409521
409553:	6a 0c                	push   $0xc
409555:	68 6c 50 40 00       	push   $0x40506c
40955a:	ff 34 9f             	push   (%edi,%ebx,4)
40955d:	ff 15 10 f1 40 00    	call   *0x40f110
409563:	83 c4 0c             	add    $0xc,%esp
409566:	85 c0                	test   %eax,%eax
409568:	75 1b                	jne    0x409585
40956a:	6a 02                	push   $0x2
40956c:	58                   	pop    %eax
40956d:	c7 85 f8 fd ff ff 06 	movl   $0x6,-0x208(%ebp)
409574:	00 00 00
409577:	c7 85 f0 fd ff ff cc 	movl   $0x4016cc,-0x210(%ebp)
40957e:	16 40 00
409581:	6a 1a                	push   $0x1a
409583:	eb 34                	jmp    0x4095b9
409585:	6a 09                	push   $0x9
409587:	68 88 50 40 00       	push   $0x405088
40958c:	ff 34 9f             	push   (%edi,%ebx,4)
40958f:	ff 15 10 f1 40 00    	call   *0x40f110
409595:	83 c4 0c             	add    $0xc,%esp
409598:	85 c0                	test   %eax,%eax
40959a:	0f 85 2e 05 00 00    	jne    0x409ace
4095a0:	c7 85 f8 fd ff ff 06 	movl   $0x6,-0x208(%ebp)
4095a7:	00 00 00
4095aa:	c7 85 f0 fd ff ff 8c 	movl   $0x40168c,-0x210(%ebp)
4095b1:	16 40 00
4095b4:	6a 02                	push   $0x2
4095b6:	58                   	pop    %eax
4095b7:	6a 14                	push   $0x14
4095b9:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
4095bf:	5f                   	pop    %edi
4095c0:	8b 85 cc fd ff ff    	mov    -0x234(%ebp),%eax
4095c6:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
4095c9:	83 c1 fe             	add    $0xfffffffe,%ecx
4095cc:	03 cf                	add    %edi,%ecx
4095ce:	0f b7 01             	movzwl (%ecx),%eax
4095d1:	66 85 c0             	test   %ax,%ax
4095d4:	0f 84 f4 04 00 00    	je     0x409ace
4095da:	8b 9d e0 fd ff ff    	mov    -0x220(%ebp),%ebx
4095e0:	8b d0                	mov    %eax,%edx
4095e2:	6a 02                	push   $0x2
4095e4:	5e                   	pop    %esi
4095e5:	66 83 fa 2f          	cmp    $0x2f,%dx
4095e9:	75 06                	jne    0x4095f1
4095eb:	33 c0                	xor    %eax,%eax
4095ed:	43                   	inc    %ebx
4095ee:	66 89 01             	mov    %ax,(%ecx)
4095f1:	03 ce                	add    %esi,%ecx
4095f3:	0f b7 01             	movzwl (%ecx),%eax
4095f6:	8b d0                	mov    %eax,%edx
4095f8:	66 85 c0             	test   %ax,%ax
4095fb:	75 e8                	jne    0x4095e5
4095fd:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
409603:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
409609:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40960f:	8b 9d bc fd ff ff    	mov    -0x244(%ebp),%ebx
409615:	66 85 c0             	test   %ax,%ax
409618:	0f 84 b0 04 00 00    	je     0x409ace
40961e:	0f b7 c0             	movzwl %ax,%eax
409621:	6b c0 0c             	imul   $0xc,%eax,%eax
409624:	50                   	push   %eax
409625:	6a 40                	push   $0x40
409627:	ff 15 64 f0 40 00    	call   *0x40f064
40962d:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
409633:	85 c0                	test   %eax,%eax
409635:	0f 84 00 fc ff ff    	je     0x40923b
40963b:	8b 85 cc fd ff ff    	mov    -0x234(%ebp),%eax
409641:	8b 04 98             	mov    (%eax,%ebx,4),%eax
409644:	03 c7                	add    %edi,%eax
409646:	8b bd f8 fd ff ff    	mov    -0x208(%ebp),%edi
40964c:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
409652:	83 ff 04             	cmp    $0x4,%edi
409655:	74 6a                	je     0x4096c1
409657:	83 ff 06             	cmp    $0x6,%edi
40965a:	74 65                	je     0x4096c1
40965c:	6a 10                	push   $0x10
40965e:	6a 40                	push   $0x40
409660:	ff 15 64 f0 40 00    	call   *0x40f064
409666:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40966c:	85 c0                	test   %eax,%eax
40966e:	0f 84 c7 fb ff ff    	je     0x40923b
409674:	50                   	push   %eax
409675:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40967b:	ff 15 00 f0 40 00    	call   *0x40f000
409681:	85 c0                	test   %eax,%eax
409683:	0f 85 45 04 00 00    	jne    0x409ace
409689:	8b 8d f4 fd ff ff    	mov    -0x20c(%ebp),%ecx
40968f:	81 85 e0 fd ff ff ff 	addl   $0xffff,-0x220(%ebp)
409696:	ff 00 00
409699:	8d 51 02             	lea    0x2(%ecx),%edx
40969c:	66 8b 01             	mov    (%ecx),%ax
40969f:	83 c1 02             	add    $0x2,%ecx
4096a2:	66 3b 85 c8 fd ff ff 	cmp    -0x238(%ebp),%ax
4096a9:	75 f1                	jne    0x40969c
4096ab:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
4096b1:	2b ca                	sub    %edx,%ecx
4096b3:	d1 f9                	sar    $1,%ecx
4096b5:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4096b8:	83 c0 02             	add    $0x2,%eax
4096bb:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4096c1:	33 c9                	xor    %ecx,%ecx
4096c3:	89 8d c0 fd ff ff    	mov    %ecx,-0x240(%ebp)
4096c9:	66 3b 8d e0 fd ff ff 	cmp    -0x220(%ebp),%cx
4096d0:	0f 83 7f 03 00 00    	jae    0x409a55
4096d6:	33 c9                	xor    %ecx,%ecx
4096d8:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
4096de:	8b c8                	mov    %eax,%ecx
4096e0:	8d 51 02             	lea    0x2(%ecx),%edx
4096e3:	66 8b 01             	mov    (%ecx),%ax
4096e6:	83 c1 02             	add    $0x2,%ecx
4096e9:	66 3b 85 c8 fd ff ff 	cmp    -0x238(%ebp),%ax
4096f0:	75 f1                	jne    0x4096e3
4096f2:	2b ca                	sub    %edx,%ecx
4096f4:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4096fa:	d1 f9                	sar    $1,%ecx
4096fc:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
409703:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
409709:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40970f:	0f b7 c0             	movzwl %ax,%eax
409712:	6b c8 0c             	imul   $0xc,%eax,%ecx
409715:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
40971b:	89 8d d0 fd ff ff    	mov    %ecx,-0x230(%ebp)
409721:	89 04 11             	mov    %eax,(%ecx,%edx,1)
409724:	83 f8 01             	cmp    $0x1,%eax
409727:	0f 85 c9 00 00 00    	jne    0x4097f6
40972d:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
409733:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
409739:	33 d2                	xor    %edx,%edx
40973b:	d1 e8                	shr    $1,%eax
40973d:	52                   	push   %edx
40973e:	52                   	push   %edx
40973f:	51                   	push   %ecx
409740:	52                   	push   %edx
409741:	48                   	dec    %eax
409742:	6a 08                	push   $0x8
409744:	50                   	push   %eax
409745:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40974b:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
409751:	ff 15 00 00 41 00    	call   *0x410000
409757:	85 c0                	test   %eax,%eax
409759:	0f 84 7e 03 00 00    	je     0x409add
40975f:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
409765:	6a 40                	push   $0x40
409767:	ff 15 64 f0 40 00    	call   *0x40f064
40976d:	8b f8                	mov    %eax,%edi
40976f:	85 ff                	test   %edi,%edi
409771:	0f 84 c4 fa ff ff    	je     0x40923b
409777:	33 c0                	xor    %eax,%eax
409779:	50                   	push   %eax
40977a:	50                   	push   %eax
40977b:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
409781:	50                   	push   %eax
409782:	57                   	push   %edi
409783:	6a 08                	push   $0x8
409785:	ff b5 d8 fd ff ff    	push   -0x228(%ebp)
40978b:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
409791:	ff 15 00 00 41 00    	call   *0x410000
409797:	85 c0                	test   %eax,%eax
409799:	0f 84 3e 03 00 00    	je     0x409add
40979f:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4097a5:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4097ab:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
4097b1:	89 7c 11 08          	mov    %edi,0x8(%ecx,%edx,1)
4097b5:	8b bd f8 fd ff ff    	mov    -0x208(%ebp),%edi
4097bb:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)
4097bf:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
4097c5:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4097cb:	03 85 c4 fd ff ff    	add    -0x23c(%ebp),%eax
4097d1:	8b 8d c0 fd ff ff    	mov    -0x240(%ebp),%ecx
4097d7:	41                   	inc    %ecx
4097d8:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4097de:	89 8d c0 fd ff ff    	mov    %ecx,-0x240(%ebp)
4097e4:	66 3b 8d e0 fd ff ff 	cmp    -0x220(%ebp),%cx
4097eb:	0f 82 e5 fe ff ff    	jb     0x4096d6
4097f1:	e9 65 02 00 00       	jmp    0x409a5b
4097f6:	83 f8 02             	cmp    $0x2,%eax
4097f9:	0f 85 08 01 00 00    	jne    0x409907
4097ff:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
409805:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)
409809:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40980f:	89 44 11 08          	mov    %eax,0x8(%ecx,%edx,1)
409813:	83 ff 04             	cmp    $0x4,%edi
409816:	75 ad                	jne    0x4097c5
409818:	8b c8                	mov    %eax,%ecx
40981a:	8b f8                	mov    %eax,%edi
40981c:	8d 51 02             	lea    0x2(%ecx),%edx
40981f:	66 8b 01             	mov    (%ecx),%ax
409822:	83 c1 02             	add    $0x2,%ecx
409825:	66 3b 85 c8 fd ff ff 	cmp    -0x238(%ebp),%ax
40982c:	75 f1                	jne    0x40981f
40982e:	2b ca                	sub    %edx,%ecx
409830:	d1 f9                	sar    $1,%ecx
409832:	0f 84 8e 00 00 00    	je     0x4098c6
409838:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40983e:	6a 3b                	push   $0x3b
409840:	5a                   	pop    %edx
409841:	66 39 54 48 fe       	cmp    %dx,-0x2(%eax,%ecx,2)
409846:	74 7e                	je     0x4098c6
409848:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
40984e:	50                   	push   %eax
40984f:	6a 02                	push   $0x2
409851:	5f                   	pop    %edi
409852:	8b d7                	mov    %edi,%edx
409854:	e8 22 31 00 00       	call   0x40c97b
409859:	85 c0                	test   %eax,%eax
40985b:	0f 88 ad 02 00 00    	js     0x409b0e
409861:	8b 85 b0 fd ff ff    	mov    -0x250(%ebp),%eax
409867:	33 c9                	xor    %ecx,%ecx
409869:	f7 e7                	mul    %edi
40986b:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
409871:	3b d1                	cmp    %ecx,%edx
409873:	0f 87 84 02 00 00    	ja     0x409afd
409879:	72 09                	jb     0x409884
40987b:	83 f8 ff             	cmp    $0xffffffff,%eax
40987e:	0f 87 79 02 00 00    	ja     0x409afd
409884:	50                   	push   %eax
409885:	6a 40                	push   $0x40
409887:	ff 15 64 f0 40 00    	call   *0x40f064
40988d:	8b f8                	mov    %eax,%edi
40988f:	85 ff                	test   %edi,%edi
409891:	0f 84 56 02 00 00    	je     0x409aed
409897:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40989d:	8b 95 b0 fd ff ff    	mov    -0x250(%ebp),%edx
4098a3:	8b cf                	mov    %edi,%ecx
4098a5:	e8 c6 2f 00 00       	call   0x40c870
4098aa:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4098b0:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4098b6:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
4098bc:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)
4098c0:	89 7c 11 08          	mov    %edi,0x8(%ecx,%edx,1)
4098c4:	eb 06                	jmp    0x4098cc
4098c6:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4098cc:	0f b7 07             	movzwl (%edi),%eax
4098cf:	66 85 c0             	test   %ax,%ax
4098d2:	0f 84 f0 00 00 00    	je     0x4099c8
4098d8:	6a 02                	push   $0x2
4098da:	5b                   	pop    %ebx
4098db:	6a 3b                	push   $0x3b
4098dd:	8b c8                	mov    %eax,%ecx
4098df:	5e                   	pop    %esi
4098e0:	66 3b ce             	cmp    %si,%cx
4098e3:	75 05                	jne    0x4098ea
4098e5:	33 c0                	xor    %eax,%eax
4098e7:	66 89 07             	mov    %ax,(%edi)
4098ea:	03 fb                	add    %ebx,%edi
4098ec:	0f b7 07             	movzwl (%edi),%eax
4098ef:	8b c8                	mov    %eax,%ecx
4098f1:	66 85 c0             	test   %ax,%ax