40d40b:	90                   	nop
40d40c:	f9                   	stc
40d40d:	d3 40 00             	roll   %cl,0x0(%eax)
40d410:	eb d3                	jmp    0x40d3e5
40d412:	40                   	inc    %eax
40d413:	00 f2                	add    %dh,%dl
40d415:	d3 40 00             	roll   %cl,0x0(%eax)
40d418:	00 d4                	add    %dl,%ah
40d41a:	40                   	inc    %eax
40d41b:	00 07                	add    %al,(%edi)
40d41d:	d4 40                	aam    $0x40
40d41f:	00 00                	add    %al,(%eax)
40d421:	01 02                	add    %eax,(%edx)
40d423:	00 03                	add    %al,(%ebx)
40d425:	03 00                	add    (%eax),%eax
40d427:	00 04 00             	add    %al,(%eax,%eax,1)
40d42a:	00 03                	add    %al,(%ebx)
40d42c:	8b ff                	mov    %edi,%edi
40d42e:	53                   	push   %ebx
40d42f:	56                   	push   %esi
40d430:	8b f1                	mov    %ecx,%esi
40d432:	57                   	push   %edi
40d433:	83 46 14 04          	addl   $0x4,0x14(%esi)
40d437:	8b 46 14             	mov    0x14(%esi),%eax
40d43a:	8b 78 fc             	mov    -0x4(%eax),%edi
40d43d:	85 ff                	test   %edi,%edi
40d43f:	74 2e                	je     0x40d46f
40d441:	8b 5f 04             	mov    0x4(%edi),%ebx
40d444:	85 db                	test   %ebx,%ebx
40d446:	74 27                	je     0x40d46f
40d448:	ff 76 2c             	push   0x2c(%esi)
40d44b:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40d44f:	50                   	push   %eax
40d450:	ff 76 04             	push   0x4(%esi)
40d453:	ff 36                	push   (%esi)
40d455:	e8 a4 f3 ff ff       	call   0x40c7fe
40d45a:	83 c4 10             	add    $0x10,%esp
40d45d:	89 5e 34             	mov    %ebx,0x34(%esi)
40d460:	0f b7 0f             	movzwl (%edi),%ecx
40d463:	84 c0                	test   %al,%al
40d465:	74 12                	je     0x40d479
40d467:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40d46b:	d1 e9                	shr    $1,%ecx
40d46d:	eb 0e                	jmp    0x40d47d
40d46f:	6a 06                	push   $0x6
40d471:	c7 46 34 40 d9 41 00 	movl   $0x41d940,0x34(%esi)
40d478:	59                   	pop    %ecx
40d479:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40d47d:	5f                   	pop    %edi
40d47e:	89 4e 38             	mov    %ecx,0x38(%esi)
40d481:	b0 01                	mov    $0x1,%al
40d483:	5e                   	pop    %esi
40d484:	5b                   	pop    %ebx
40d485:	c3                   	ret
40d486:	8b ff                	mov    %edi,%edi
40d488:	55                   	push   %ebp
40d489:	8b ec                	mov    %esp,%ebp
40d48b:	51                   	push   %ecx
40d48c:	51                   	push   %ecx
40d48d:	53                   	push   %ebx
40d48e:	56                   	push   %esi
40d48f:	57                   	push   %edi
40d490:	8b f1                	mov    %ecx,%esi
40d492:	33 d2                	xor    %edx,%edx
40d494:	6a 67                	push   $0x67
40d496:	5b                   	pop    %ebx
40d497:	6a 47                	push   $0x47
40d499:	83 4e 20 10          	orl    $0x10,0x20(%esi)
40d49d:	42                   	inc    %edx
40d49e:	8b 46 28             	mov    0x28(%esi),%eax
40d4a1:	5f                   	pop    %edi
40d4a2:	85 c0                	test   %eax,%eax
40d4a4:	79 1a                	jns    0x40d4c0
40d4a6:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40d4aa:	83 f8 61             	cmp    $0x61,%eax
40d4ad:	74 09                	je     0x40d4b8
40d4af:	83 f8 41             	cmp    $0x41,%eax
40d4b2:	74 04                	je     0x40d4b8
40d4b4:	6a 06                	push   $0x6
40d4b6:	eb 02                	jmp    0x40d4ba
40d4b8:	6a 0d                	push   $0xd
40d4ba:	58                   	pop    %eax
40d4bb:	89 46 28             	mov    %eax,0x28(%esi)
40d4be:	eb 17                	jmp    0x40d4d7
40d4c0:	75 15                	jne    0x40d4d7
40d4c2:	0f b7 4e 32          	movzwl 0x32(%esi),%ecx
40d4c6:	66 3b cb             	cmp    %bx,%cx
40d4c9:	74 07                	je     0x40d4d2
40d4cb:	33 c0                	xor    %eax,%eax
40d4cd:	66 3b cf             	cmp    %di,%cx
40d4d0:	75 05                	jne    0x40d4d7
40d4d2:	89 56 28             	mov    %edx,0x28(%esi)
40d4d5:	8b c2                	mov    %edx,%eax
40d4d7:	05 5d 01 00 00       	add    $0x15d,%eax
40d4dc:	8d 7e 40             	lea    0x40(%esi),%edi
40d4df:	50                   	push   %eax
40d4e0:	8b cf                	mov    %edi,%ecx
40d4e2:	e8 1c f2 ff ff       	call   0x40c703
40d4e7:	84 c0                	test   %al,%al
40d4e9:	75 0f                	jne    0x40d4fa
40d4eb:	8b cf                	mov    %edi,%ecx
40d4ed:	e8 e0 f1 ff ff       	call   0x40c6d2
40d4f2:	2d 5d 01 00 00       	sub    $0x15d,%eax
40d4f7:	89 46 28             	mov    %eax,0x28(%esi)
40d4fa:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
40d500:	85 c0                	test   %eax,%eax
40d502:	75 02                	jne    0x40d506
40d504:	8b c7                	mov    %edi,%eax
40d506:	89 46 34             	mov    %eax,0x34(%esi)
40d509:	83 46 14 08          	addl   $0x8,0x14(%esi)
40d50d:	8b 4e 14             	mov    0x14(%esi),%ecx
40d510:	8b 41 f8             	mov    -0x8(%ecx),%eax
40d513:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d516:	8b 41 fc             	mov    -0x4(%ecx),%eax
40d519:	8b cf                	mov    %edi,%ecx
40d51b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d51e:	e8 af f1 ff ff       	call   0x40c6d2
40d523:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
40d529:	8b c8                	mov    %eax,%ecx
40d52b:	85 db                	test   %ebx,%ebx
40d52d:	75 02                	jne    0x40d531
40d52f:	8b df                	mov    %edi,%ebx
40d531:	0f be 46 32          	movsbl 0x32(%esi),%eax
40d535:	6a 01                	push   $0x1
40d537:	ff 76 08             	push   0x8(%esi)
40d53a:	ff 76 04             	push   0x4(%esi)
40d53d:	ff 36                	push   (%esi)
40d53f:	ff 76 28             	push   0x28(%esi)
40d542:	50                   	push   %eax
40d543:	51                   	push   %ecx
40d544:	8b cf                	mov    %edi,%ecx
40d546:	e8 01 f3 ff ff       	call   0x40c84c
40d54b:	50                   	push   %eax
40d54c:	8b cf                	mov    %edi,%ecx
40d54e:	e8 7f f1 ff ff       	call   0x40c6d2
40d553:	50                   	push   %eax
40d554:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d557:	53                   	push   %ebx
40d558:	50                   	push   %eax
40d559:	e8 62 5a 00 00       	call   0x412fc0
40d55e:	8b 46 20             	mov    0x20(%esi),%eax
40d561:	83 c4 2c             	add    $0x2c,%esp
40d564:	c1 e8 05             	shr    $0x5,%eax
40d567:	a8 01                	test   $0x1,%al
40d569:	74 13                	je     0x40d57e
40d56b:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40d56f:	75 0d                	jne    0x40d57e
40d571:	ff 76 08             	push   0x8(%esi)
40d574:	ff 76 34             	push   0x34(%esi)
40d577:	e8 94 f6 ff ff       	call   0x40cc10
40d57c:	59                   	pop    %ecx
40d57d:	59                   	pop    %ecx
40d57e:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40d582:	6a 67                	push   $0x67
40d584:	59                   	pop    %ecx
40d585:	66 3b c1             	cmp    %cx,%ax
40d588:	74 08                	je     0x40d592
40d58a:	6a 47                	push   $0x47
40d58c:	59                   	pop    %ecx
40d58d:	66 3b c1             	cmp    %cx,%ax
40d590:	75 17                	jne    0x40d5a9
40d592:	8b 46 20             	mov    0x20(%esi),%eax
40d595:	c1 e8 05             	shr    $0x5,%eax
40d598:	a8 01                	test   $0x1,%al
40d59a:	75 0d                	jne    0x40d5a9
40d59c:	ff 76 08             	push   0x8(%esi)
40d59f:	ff 76 34             	push   0x34(%esi)
40d5a2:	e8 79 f5 ff ff       	call   0x40cb20
40d5a7:	59                   	pop    %ecx
40d5a8:	59                   	pop    %ecx
40d5a9:	8b 56 34             	mov    0x34(%esi),%edx
40d5ac:	8a 02                	mov    (%edx),%al
40d5ae:	3c 2d                	cmp    $0x2d,%al
40d5b0:	75 0a                	jne    0x40d5bc
40d5b2:	83 4e 20 40          	orl    $0x40,0x20(%esi)
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