40d5b6:	42                   	inc    %edx
40d5b7:	89 56 34             	mov    %edx,0x34(%esi)
40d5ba:	8a 02                	mov    (%edx),%al
40d5bc:	3c 69                	cmp    $0x69,%al
40d5be:	74 0c                	je     0x40d5cc
40d5c0:	3c 49                	cmp    $0x49,%al
40d5c2:	74 08                	je     0x40d5cc
40d5c4:	3c 6e                	cmp    $0x6e,%al
40d5c6:	74 04                	je     0x40d5cc
40d5c8:	3c 4e                	cmp    $0x4e,%al
40d5ca:	75 0b                	jne    0x40d5d7
40d5cc:	83 66 20 f7          	andl   $0xfffffff7,0x20(%esi)
40d5d0:	6a 73                	push   $0x73
40d5d2:	58                   	pop    %eax
40d5d3:	66 89 46 32          	mov    %ax,0x32(%esi)
40d5d7:	8d 7a 01             	lea    0x1(%edx),%edi
40d5da:	8a 0a                	mov    (%edx),%cl
40d5dc:	42                   	inc    %edx
40d5dd:	84 c9                	test   %cl,%cl
40d5df:	75 f9                	jne    0x40d5da
40d5e1:	2b d7                	sub    %edi,%edx
40d5e3:	b0 01                	mov    $0x1,%al
40d5e5:	5f                   	pop    %edi
40d5e6:	89 56 38             	mov    %edx,0x38(%esi)
40d5e9:	5e                   	pop    %esi
40d5ea:	5b                   	pop    %ebx
40d5eb:	c9                   	leave
40d5ec:	c3                   	ret
40d5ed:	8b ff                	mov    %edi,%edi
40d5ef:	55                   	push   %ebp
40d5f0:	8b ec                	mov    %esp,%ebp
40d5f2:	51                   	push   %ecx
40d5f3:	53                   	push   %ebx
40d5f4:	56                   	push   %esi
40d5f5:	8b f1                	mov    %ecx,%esi
40d5f7:	57                   	push   %edi
40d5f8:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d5fc:	8d 7e 40             	lea    0x40(%esi),%edi
40d5ff:	8b 46 14             	mov    0x14(%esi),%eax
40d602:	ff 76 2c             	push   0x2c(%esi)
40d605:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40d609:	0f b7 58 fc          	movzwl -0x4(%eax),%ebx
40d60d:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40d611:	50                   	push   %eax
40d612:	ff 76 04             	push   0x4(%esi)
40d615:	ff 36                	push   (%esi)
40d617:	e8 e2 f1 ff ff       	call   0x40c7fe
40d61c:	83 c4 10             	add    $0x10,%esp
40d61f:	84 c0                	test   %al,%al
40d621:	75 32                	jne    0x40d655
40d623:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
40d629:	88 5d fc             	mov    %bl,-0x4(%ebp)
40d62c:	88 45 fd             	mov    %al,-0x3(%ebp)
40d62f:	85 c9                	test   %ecx,%ecx
40d631:	75 02                	jne    0x40d635
40d633:	8b cf                	mov    %edi,%ecx
40d635:	8b 46 08             	mov    0x8(%esi),%eax
40d638:	50                   	push   %eax
40d639:	8b 00                	mov    (%eax),%eax
40d63b:	ff 70 04             	push   0x4(%eax)
40d63e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d641:	50                   	push   %eax
40d642:	51                   	push   %ecx
40d643:	e8 0f 4e 00 00       	call   0x412457
40d648:	83 c4 10             	add    $0x10,%esp
40d64b:	85 c0                	test   %eax,%eax
40d64d:	79 15                	jns    0x40d664
40d64f:	c6 46 30 01          	movb   $0x1,0x30(%esi)
40d653:	eb 0f                	jmp    0x40d664
40d655:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
40d65b:	85 c0                	test   %eax,%eax
40d65d:	75 02                	jne    0x40d661
40d65f:	8b c7                	mov    %edi,%eax
40d661:	66 89 18             	mov    %bx,(%eax)
40d664:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
40d66a:	85 c0                	test   %eax,%eax
40d66c:	74 02                	je     0x40d670
40d66e:	8b f8                	mov    %eax,%edi
40d670:	89 7e 34             	mov    %edi,0x34(%esi)
40d673:	b0 01                	mov    $0x1,%al
40d675:	5f                   	pop    %edi
40d676:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
40d67d:	5e                   	pop    %esi
40d67e:	5b                   	pop    %ebx
40d67f:	c9                   	leave
40d680:	c2 04 00             	ret    $0x4
40d683:	8b ff                	mov    %edi,%edi
40d685:	55                   	push   %ebp
40d686:	8b ec                	mov    %esp,%ebp
40d688:	51                   	push   %ecx
40d689:	53                   	push   %ebx
40d68a:	56                   	push   %esi
40d68b:	8b f1                	mov    %ecx,%esi
40d68d:	57                   	push   %edi
40d68e:	ff 76 2c             	push   0x2c(%esi)
40d691:	e8 3a fd ff ff       	call   0x40d3d0
40d696:	59                   	pop    %ecx
40d697:	8b c8                	mov    %eax,%ecx
40d699:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d69c:	83 e9 01             	sub    $0x1,%ecx
40d69f:	74 78                	je     0x40d719
40d6a1:	83 e9 01             	sub    $0x1,%ecx
40d6a4:	74 56                	je     0x40d6fc
40d6a6:	49                   	dec    %ecx
40d6a7:	83 e9 01             	sub    $0x1,%ecx
40d6aa:	74 33                	je     0x40d6df
40d6ac:	83 e9 04             	sub    $0x4,%ecx
40d6af:	74 17                	je     0x40d6c8
40d6b1:	e8 1d 16 00 00       	call   0x40ecd3
40d6b6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d6bc:	e8 55 15 00 00       	call   0x40ec16
40d6c1:	32 c0                	xor    %al,%al
40d6c3:	e9 09 01 00 00       	jmp    0x40d7d1
40d6c8:	8b 46 20             	mov    0x20(%esi),%eax
40d6cb:	83 46 14 08          	addl   $0x8,0x14(%esi)
40d6cf:	c1 e8 04             	shr    $0x4,%eax
40d6d2:	a8 01                	test   $0x1,%al
40d6d4:	8b 46 14             	mov    0x14(%esi),%eax
40d6d7:	8b 78 f8             	mov    -0x8(%eax),%edi
40d6da:	8b 58 fc             	mov    -0x4(%eax),%ebx
40d6dd:	eb 5a                	jmp    0x40d739
40d6df:	8b 46 20             	mov    0x20(%esi),%eax
40d6e2:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d6e6:	c1 e8 04             	shr    $0x4,%eax
40d6e9:	a8 01                	test   $0x1,%al
40d6eb:	8b 46 14             	mov    0x14(%esi),%eax
40d6ee:	74 05                	je     0x40d6f5
40d6f0:	8b 40 fc             	mov    -0x4(%eax),%eax
40d6f3:	eb 3f                	jmp    0x40d734
40d6f5:	8b 78 fc             	mov    -0x4(%eax),%edi
40d6f8:	33 db                	xor    %ebx,%ebx
40d6fa:	eb 3d                	jmp    0x40d739
40d6fc:	8b 46 20             	mov    0x20(%esi),%eax
40d6ff:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d703:	c1 e8 04             	shr    $0x4,%eax
40d706:	a8 01                	test   $0x1,%al
40d708:	8b 46 14             	mov    0x14(%esi),%eax
40d70b:	74 06                	je     0x40d713
40d70d:	0f bf 40 fc          	movswl -0x4(%eax),%eax
40d711:	eb 21                	jmp    0x40d734
40d713:	0f b7 40 fc          	movzwl -0x4(%eax),%eax
40d717:	eb 1b                	jmp    0x40d734
40d719:	8b 46 20             	mov    0x20(%esi),%eax
40d71c:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d720:	c1 e8 04             	shr    $0x4,%eax
40d723:	a8 01                	test   $0x1,%al
40d725:	8b 46 14             	mov    0x14(%esi),%eax
40d728:	74 06                	je     0x40d730
40d72a:	0f be 40 fc          	movsbl -0x4(%eax),%eax
40d72e:	eb 04                	jmp    0x40d734
40d730:	0f b6 40 fc          	movzbl -0x4(%eax),%eax
40d734:	99                   	cltd
40d735:	8b f8                	mov    %eax,%edi
40d737:	8b da                	mov    %edx,%ebx
40d739:	8b 4e 20             	mov    0x20(%esi),%ecx
40d73c:	8b c1                	mov    %ecx,%eax
40d73e:	c1 e8 04             	shr    $0x4,%eax
40d741:	a8 01                	test   $0x1,%al
40d743:	74 17                	je     0x40d75c
40d745:	85 db                	test   %ebx,%ebx
40d747:	7f 13                	jg     0x40d75c
40d749:	7c 04                	jl     0x40d74f
40d74b:	85 ff                	test   %edi,%edi
40d74d:	73 0d                	jae    0x40d75c
40d74f:	f7 df                	neg    %edi
40d751:	83 d3 00             	adc    $0x0,%ebx
40d754:	f7 db                	neg    %ebx
40d756:	83 c9 40             	or     $0x40,%ecx
40d759:	89 4e 20             	mov    %ecx,0x20(%esi)
40d75c:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40d760:	7d 09                	jge    0x40d76b
40d762:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
40d769:	eb 11                	jmp    0x40d77c
40d76b:	ff 76 28             	push   0x28(%esi)
40d76e:	83 e1 f7             	and    $0xfffffff7,%ecx
40d771:	89 4e 20             	mov    %ecx,0x20(%esi)
40d774:	8d 4e 40             	lea    0x40(%esi),%ecx
40d777:	e8 04 f0 ff ff       	call   0x40c780
40d77c:	8b c7                	mov    %edi,%eax
40d77e:	0b c3                	or     %ebx,%eax
40d780:	75 04                	jne    0x40d786
40d782:	83 66 20 df          	andl   $0xffffffdf,0x20(%esi)
40d786:	83 7d fc 08          	cmpl   $0x8,-0x4(%ebp)
40d78a:	8b ce                	mov    %esi,%ecx
40d78c:	ff 75 0c             	push   0xc(%ebp)
40d78f:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40d793:	ff 75 08             	push   0x8(%ebp)
40d796:	75 09                	jne    0x40d7a1
40d798:	53                   	push   %ebx
40d799:	57                   	push   %edi
40d79a:	e8 52 f1 ff ff       	call   0x40c8f1
40d79f:	eb 06                	jmp    0x40d7a7
40d7a1:	57                   	push   %edi
40d7a2:	e8 c3 f0 ff ff       	call   0x40c86a
40d7a7:	8b 46 20             	mov    0x20(%esi),%eax
40d7aa:	c1 e8 07             	shr    $0x7,%eax
40d7ad:	a8 01                	test   $0x1,%al
40d7af:	74 1e                	je     0x40d7cf
40d7b1:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40d7b5:	6a 30                	push   $0x30
40d7b7:	5a                   	pop    %edx
40d7b8:	74 08                	je     0x40d7c2
40d7ba:	8b 46 34             	mov    0x34(%esi),%eax
40d7bd:	66 39 10             	cmp    %dx,(%eax)
40d7c0:	74 0d                	je     0x40d7cf
40d7c2:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
40d7c6:	8b 4e 34             	mov    0x34(%esi),%ecx
40d7c9:	66 89 11             	mov    %dx,(%ecx)
40d7cc:	ff 46 38             	incl   0x38(%esi)
40d7cf:	b0 01                	mov    $0x1,%al
40d7d1:	5f                   	pop    %edi
40d7d2:	5e                   	pop    %esi
40d7d3:	5b                   	pop    %ebx
40d7d4:	c9                   	leave
40d7d5:	c2 08 00             	ret    $0x8
40d7d8:	8b ff                	mov    %edi,%edi
40d7da:	56                   	push   %esi
40d7db:	8b f1                	mov    %ecx,%esi
40d7dd:	57                   	push   %edi
40d7de:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d7e2:	8b 46 14             	mov    0x14(%esi),%eax
40d7e5:	8b 78 fc             	mov    -0x4(%eax),%edi
40d7e8:	e8 56 59 00 00       	call   0x413143
40d7ed:	85 c0                	test   %eax,%eax
40d7ef:	75 14                	jne    0x40d805
40d7f1:	e8 dd 14 00 00       	call   0x40ecd3
40d7f6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d7fc:	e8 15 14 00 00       	call   0x40ec16
40d801:	32 c0                	xor    %al,%al
40d803:	eb 44                	jmp    0x40d849
40d805:	ff 76 2c             	push   0x2c(%esi)
40d808:	e8 c3 fb ff ff       	call   0x40d3d0
40d80d:	59                   	pop    %ecx
40d80e:	83 e8 01             	sub    $0x1,%eax
40d811:	74 2b                	je     0x40d83e
40d813:	83 e8 01             	sub    $0x1,%eax
40d816:	74 1d                	je     0x40d835
40d818:	48                   	dec    %eax
40d819:	83 e8 01             	sub    $0x1,%eax
40d81c:	74 10                	je     0x40d82e
40d81e:	83 e8 04             	sub    $0x4,%eax
40d821:	75 ce                	jne    0x40d7f1
40d823:	8b 46 18             	mov    0x18(%esi),%eax
40d826:	99                   	cltd
40d827:	89 07                	mov    %eax,(%edi)
40d829:	89 57 04             	mov    %edx,0x4(%edi)
40d82c:	eb 15                	jmp    0x40d843
40d82e:	8b 46 18             	mov    0x18(%esi),%eax
40d831:	89 07                	mov    %eax,(%edi)
40d833:	eb 0e                	jmp    0x40d843
40d835:	66 8b 46 18          	mov    0x18(%esi),%ax
40d839:	66 89 07             	mov    %ax,(%edi)
40d83c:	eb 05                	jmp    0x40d843
40d83e:	8a 46 18             	mov    0x18(%esi),%al
40d841:	88 07                	mov    %al,(%edi)
40d843:	c6 46 30 01          	movb   $0x1,0x30(%esi)
40d847:	b0 01                	mov    $0x1,%al
40d849:	5f                   	pop    %edi
40d84a:	5e                   	pop    %esi
40d84b:	c3                   	ret
40d84c:	8b 51 20             	mov    0x20(%ecx),%edx
40d84f:	8b c2                	mov    %edx,%eax
40d851:	c1 e8 05             	shr    $0x5,%eax
40d854:	a8 01                	test   $0x1,%al
40d856:	74 09                	je     0x40d861
40d858:	81 ca 80 00 00 00    	or     $0x80,%edx
40d85e:	89 51 20             	mov    %edx,0x20(%ecx)
40d861:	6a 00                	push   $0x0
40d863:	6a 08                	push   $0x8
40d865:	e8 19 fe ff ff       	call   0x40d683
40d86a:	c3                   	ret
40d86b:	6a 01                	push   $0x1
40d86d:	6a 10                	push   $0x10
40d86f:	c7 41 28 08 00 00 00 	movl   $0x8,0x28(%ecx)
40d876:	c7 41 2c 0a 00 00 00 	movl   $0xa,0x2c(%ecx)
40d87d:	e8 01 fe ff ff       	call   0x40d683
40d882:	c3                   	ret
40d883:	8b ff                	mov    %edi,%edi
40d885:	53                   	push   %ebx
40d886:	56                   	push   %esi
40d887:	8b f1                	mov    %ecx,%esi
40d889:	57                   	push   %edi
40d88a:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d88e:	8b 46 14             	mov    0x14(%esi),%eax
40d891:	8b 5e 28             	mov    0x28(%esi),%ebx
40d894:	8b 78 fc             	mov    -0x4(%eax),%edi
40d897:	89 7e 34             	mov    %edi,0x34(%esi)
40d89a:	83 fb ff             	cmp    $0xffffffff,%ebx
40d89d:	75 05                	jne    0x40d8a4
40d89f:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40d8a4:	ff 76 2c             	push   0x2c(%esi)
40d8a7:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40d8ab:	50                   	push   %eax
40d8ac:	ff 76 04             	push   0x4(%esi)
40d8af:	ff 36                	push   (%esi)
40d8b1:	e8 48 ef ff ff       	call   0x40c7fe
40d8b6:	83 c4 10             	add    $0x10,%esp
40d8b9:	84 c0                	test   %al,%al
40d8bb:	74 1b                	je     0x40d8d8
40d8bd:	85 ff                	test   %edi,%edi
40d8bf:	75 08                	jne    0x40d8c9
40d8c1:	bf 30 d9 41 00       	mov    $0x41d930,%edi
40d8c6:	89 7e 34             	mov    %edi,0x34(%esi)
40d8c9:	53                   	push   %ebx
40d8ca:	57                   	push   %edi
40d8cb:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40d8cf:	e8 85 32 00 00       	call   0x410b59
40d8d4:	59                   	pop    %ecx
40d8d5:	59                   	pop    %ecx
40d8d6:	eb 15                	jmp    0x40d8ed
40d8d8:	85 ff                	test   %edi,%edi
40d8da:	75 07                	jne    0x40d8e3
40d8dc:	c7 46 34 40 d9 41 00 	movl   $0x41d940,0x34(%esi)
40d8e3:	6a 00                	push   $0x0
40d8e5:	53                   	push   %ebx
40d8e6:	8b ce                	mov    %esi,%ecx
40d8e8:	e8 09 00 00 00       	call   0x40d8f6
40d8ed:	5f                   	pop    %edi
40d8ee:	89 46 38             	mov    %eax,0x38(%esi)
40d8f1:	b0 01                	mov    $0x1,%al
40d8f3:	5e                   	pop    %esi
40d8f4:	5b                   	pop    %ebx
40d8f5:	c3                   	ret
40d8f6:	8b ff                	mov    %edi,%edi
40d8f8:	55                   	push   %ebp
40d8f9:	8b ec                	mov    %esp,%ebp
40d8fb:	53                   	push   %ebx
40d8fc:	56                   	push   %esi
40d8fd:	8b d9                	mov    %ecx,%ebx
40d8ff:	57                   	push   %edi
40d900:	33 ff                	xor    %edi,%edi
40d902:	8b 73 34             	mov    0x34(%ebx),%esi
40d905:	39 7d 08             	cmp    %edi,0x8(%ebp)
40d908:	7e 2a                	jle    0x40d934
40d90a:	8a 06                	mov    (%esi),%al
40d90c:	84 c0                	test   %al,%al
40d90e:	74 24                	je     0x40d934
40d910:	0f b6 c0             	movzbl %al,%eax
40d913:	68 00 80 00 00       	push   $0x8000
40d918:	50                   	push   %eax
40d919:	8b 43 08             	mov    0x8(%ebx),%eax
40d91c:	8b 00                	mov    (%eax),%eax
40d91e:	ff 30                	push   (%eax)
40d920:	e8 08 e3 ff ff       	call   0x40bc2d
40d925:	83 c4 0c             	add    $0xc,%esp
40d928:	85 c0                	test   %eax,%eax
40d92a:	74 01                	je     0x40d92d
40d92c:	46                   	inc    %esi
40d92d:	46                   	inc    %esi
40d92e:	47                   	inc    %edi