4515ba:	8b 46 08             	mov    0x8(%esi),%eax
4515bd:	6a 02                	push   $0x2
4515bf:	8b 00                	mov    (%eax),%eax
4515c1:	5e                   	pop    %esi
4515c2:	0f b7 08             	movzwl (%eax),%ecx
4515c5:	66 85 c9             	test   %cx,%cx
4515c8:	74 09                	je     0x4515d3
4515ca:	66 89 0f             	mov    %cx,(%edi)
4515cd:	03 fe                	add    %esi,%edi
4515cf:	03 c6                	add    %esi,%eax
4515d1:	eb ef                	jmp    0x4515c2
4515d3:	33 c0                	xor    %eax,%eax
4515d5:	66 89 07             	mov    %ax,(%edi)
4515d8:	03 fe                	add    %esi,%edi
4515da:	43                   	inc    %ebx
4515db:	e9 77 ff ff ff       	jmp    0x451557
4515e0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4515e3:	33 c0                	xor    %eax,%eax
4515e5:	66 89 07             	mov    %ax,(%edi)
4515e8:	8b 7d f0             	mov    -0x10(%ebp),%edi
4515eb:	e9 80 00 00 00       	jmp    0x451670
4515f0:	6a 04                	push   $0x4
4515f2:	8b ce                	mov    %esi,%ecx
4515f4:	e8 eb bf fb ff       	call   0x40d5e4
4515f9:	84 c0                	test   %al,%al
4515fb:	0f 84 b8 00 00 00    	je     0x4516b9
451601:	8b ce                	mov    %esi,%ecx
451603:	e8 64 7d fb ff       	call   0x40936c
451608:	8b 46 08             	mov    0x8(%esi),%eax
45160b:	33 c9                	xor    %ecx,%ecx
45160d:	8b 40 04             	mov    0x4(%eax),%eax
451610:	6a 02                	push   $0x2
451612:	83 c0 02             	add    $0x2,%eax
451615:	5a                   	pop    %edx
451616:	f7 e2                	mul    %edx
451618:	0f 90 c1             	seto   %cl
45161b:	f7 d9                	neg    %ecx
45161d:	0b c8                	or     %eax,%ecx
45161f:	51                   	push   %ecx
451620:	e8 c5 de fc ff       	call   0x41f4ea
451625:	8b f8                	mov    %eax,%edi
451627:	8b 45 08             	mov    0x8(%ebp),%eax
45162a:	59                   	pop    %ecx
45162b:	8b 40 04             	mov    0x4(%eax),%eax
45162e:	8b 70 08             	mov    0x8(%eax),%esi
451631:	8b ce                	mov    %esi,%ecx
451633:	e8 34 7d fb ff       	call   0x40936c
451638:	8b 46 08             	mov    0x8(%esi),%eax
45163b:	6a 0a                	push   $0xa
45163d:	8b 08                	mov    (%eax),%ecx
45163f:	5a                   	pop    %edx
451640:	6a 02                	push   $0x2
451642:	8b c7                	mov    %edi,%eax
451644:	89 55 0c             	mov    %edx,0xc(%ebp)
451647:	5e                   	pop    %esi
451648:	66 39 11             	cmp    %dx,(%ecx)
45164b:	75 04                	jne    0x451651
45164d:	03 ce                	add    %esi,%ecx
45164f:	eb f7                	jmp    0x451648
451651:	0f b7 11             	movzwl (%ecx),%edx
451654:	66 3b 55 0c          	cmp    0xc(%ebp),%dx
451658:	75 04                	jne    0x45165e
45165a:	33 d2                	xor    %edx,%edx
45165c:	eb 05                	jmp    0x451663
45165e:	66 85 d2             	test   %dx,%dx
451661:	74 09                	je     0x45166c
451663:	66 89 10             	mov    %dx,(%eax)
451666:	03 c6                	add    %esi,%eax
451668:	03 ce                	add    %esi,%ecx
45166a:	eb e5                	jmp    0x451651
45166c:	33 c9                	xor    %ecx,%ecx
45166e:	89 08                	mov    %ecx,(%eax)
451670:	8b 45 08             	mov    0x8(%ebp),%eax
451673:	8b 40 04             	mov    0x4(%eax),%eax
451676:	8b 70 04             	mov    0x4(%eax),%esi
451679:	8b ce                	mov    %esi,%ecx
45167b:	e8 ec 7c fb ff       	call   0x40936c
451680:	ff 75 e0             	push   -0x20(%ebp)
451683:	8b 46 08             	mov    0x8(%esi),%eax
451686:	57                   	push   %edi
451687:	ff 30                	push   (%eax)
451689:	ff 15 84 d2 48 00    	call   *0x48d284
45168f:	85 c0                	test   %eax,%eax
451691:	74 1d                	je     0x4516b0
451693:	ff 75 e0             	push   -0x20(%ebp)
451696:	33 c0                	xor    %eax,%eax
451698:	50                   	push   %eax
451699:	50                   	push   %eax
45169a:	50                   	push   %eax
45169b:	ff 15 7c d2 48 00    	call   *0x48d27c
4516a1:	8b cb                	mov    %ebx,%ecx
4516a3:	e8 78 15 fc ff       	call   0x412c20
4516a8:	33 c0                	xor    %eax,%eax
4516aa:	40                   	inc    %eax
4516ab:	89 43 0c             	mov    %eax,0xc(%ebx)
4516ae:	89 03                	mov    %eax,(%ebx)
4516b0:	57                   	push   %edi
4516b1:	e8 a8 de fc ff       	call   0x41f55e
4516b6:	59                   	pop    %ecx
4516b7:	eb 10                	jmp    0x4516c9
4516b9:	8b 07                	mov    (%edi),%eax
4516bb:	6a 00                	push   $0x0
4516bd:	8b 48 04             	mov    0x4(%eax),%ecx
4516c0:	6a 01                	push   $0x1
4516c2:	03 cf                	add    %edi,%ecx
4516c4:	e8 83 b8 ff ff       	call   0x44cf4c
4516c9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4516cc:	e8 66 b4 fb ff       	call   0x40cb37
4516d1:	5f                   	pop    %edi
4516d2:	5e                   	pop    %esi
4516d3:	33 c0                	xor    %eax,%eax
4516d5:	5b                   	pop    %ebx
4516d6:	c9                   	leave
4516d7:	c2 08 00             	ret    $0x8
4516da:	55                   	push   %ebp
4516db:	8b ec                	mov    %esp,%ebp
4516dd:	83 e4 f8             	and    $0xfffffff8,%esp
4516e0:	81 ec d4 00 00 00    	sub    $0xd4,%esp
4516e6:	53                   	push   %ebx
4516e7:	56                   	push   %esi
4516e8:	8b d9                	mov    %ecx,%ebx
4516ea:	57                   	push   %edi
4516eb:	8d 4c 24 78          	lea    0x78(%esp),%ecx
4516ef:	e8 03 c1 fb ff       	call   0x40d7f7
4516f4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4516f7:	33 c0                	xor    %eax,%eax
4516f9:	68 00 dc 49 00       	push   $0x49dc00
4516fe:	89 44 24 28          	mov    %eax,0x28(%esp)
451702:	e8 b2 b6 fb ff       	call   0x40cdb9
451707:	8b 7d 08             	mov    0x8(%ebp),%edi
45170a:	8b 47 04             	mov    0x4(%edi),%eax
45170d:	8b 30                	mov    (%eax),%esi
45170f:	8b ce                	mov    %esi,%ecx
451711:	e8 56 7c fb ff       	call   0x40936c
451716:	8b 4e 08             	mov    0x8(%esi),%ecx
451719:	8b 01                	mov    (%ecx),%eax
45171b:	89 44 24 2c          	mov    %eax,0x2c(%esp)
45171f:	89 44 24 58          	mov    %eax,0x58(%esp)
451723:	8b 41 04             	mov    0x4(%ecx),%eax
451726:	89 44 24 5c          	mov    %eax,0x5c(%esp)
45172a:	8b 41 08             	mov    0x8(%ecx),%eax
45172d:	89 44 24 60          	mov    %eax,0x60(%esp)
451731:	8b 41 0c             	mov    0xc(%ecx),%eax
451734:	89 44 24 64          	mov    %eax,0x64(%esp)
451738:	ff 00                	incl   (%eax)
45173a:	8b 47 04             	mov    0x4(%edi),%eax
45173d:	8b 70 04             	mov    0x4(%eax),%esi
451740:	8b ce                	mov    %esi,%ecx
451742:	e8 25 7c fb ff       	call   0x40936c
451747:	8b 4e 08             	mov    0x8(%esi),%ecx
45174a:	8b 01                	mov    (%ecx),%eax
45174c:	89 44 24 28          	mov    %eax,0x28(%esp)
451750:	89 44 24 48          	mov    %eax,0x48(%esp)
451754:	8b 41 04             	mov    0x4(%ecx),%eax
451757:	89 44 24 4c          	mov    %eax,0x4c(%esp)
45175b:	8b 41 08             	mov    0x8(%ecx),%eax
45175e:	89 44 24 50          	mov    %eax,0x50(%esp)
451762:	8b 41 0c             	mov    0xc(%ecx),%eax
451765:	8d 4c 24 14          	lea    0x14(%esp),%ecx
451769:	ff 00                	incl   (%eax)
45176b:	89 44 24 54          	mov    %eax,0x54(%esp)
45176f:	e8 83 c0 fb ff       	call   0x40d7f7
451774:	8d 4c 24 30          	lea    0x30(%esp),%ecx
451778:	e8 7a c0 fb ff       	call   0x40d7f7
45177d:	8b 47 04             	mov    0x4(%edi),%eax
451780:	8b 70 08             	mov    0x8(%eax),%esi
451783:	8b ce                	mov    %esi,%ecx
451785:	e8 e2 7b fb ff       	call   0x40936c
45178a:	8b 46 08             	mov    0x8(%esi),%eax
45178d:	8b 08                	mov    (%eax),%ecx
45178f:	e8 60 af fc ff       	call   0x41c6f4
451794:	50                   	push   %eax
451795:	8d 4c 24 44          	lea    0x44(%esp),%ecx
451799:	e8 19 30 fb ff       	call   0x4047b7
45179e:	be 8c 2a 4b 00       	mov    $0x4b2a8c,%esi
4517a3:	56                   	push   %esi
4517a4:	ff 74 24 44          	push   0x44(%esp)
4517a8:	e9 a1 00 00 00       	jmp    0x45184e
4517ad:	50                   	push   %eax
4517ae:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4517b2:	e8 ac 52 fb ff       	call   0x406a63
4517b7:	68 6c 32 4b 00       	push   $0x4b326c
4517bc:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4517c0:	e8 a4 09 00 00       	call   0x452169
4517c5:	68 70 32 4b 00       	push   $0x4b3270
4517ca:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4517ce:	89 44 24 10          	mov    %eax,0x10(%esp)
4517d2:	e8 92 09 00 00       	call   0x452169
4517d7:	8b f0                	mov    %eax,%esi
4517d9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4517dd:	83 f8 ff             	cmp    $0xffffffff,%eax
4517e0:	0f 84 00 01 00 00    	je     0x4518e6
4517e6:	83 fe ff             	cmp    $0xffffffff,%esi
4517e9:	0f 84 f7 00 00 00    	je     0x4518e6
4517ef:	3b f0                	cmp    %eax,%esi
4517f1:	0f 82 ef 00 00 00    	jb     0x4518e6
4517f7:	8d 44 24 30          	lea    0x30(%esp),%eax
4517fb:	50                   	push   %eax
4517fc:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451800:	e8 08 39 fb ff       	call   0x40510d
451805:	68 8c 2a 4b 00       	push   $0x4b2a8c
45180a:	8d 4c 24 18          	lea    0x18(%esp),%ecx
45180e:	e8 79 39 fb ff       	call   0x40518c
451813:	8b 44 24 0c          	mov    0xc(%esp),%eax
451817:	2b f0                	sub    %eax,%esi
451819:	4e                   	dec    %esi
45181a:	56                   	push   %esi
45181b:	40                   	inc    %eax
45181c:	50                   	push   %eax
45181d:	8d 44 24 38          	lea    0x38(%esp),%eax
451821:	50                   	push   %eax
451822:	8d 8c 24 84 00 00 00 	lea    0x84(%esp),%ecx
451829:	e8 bb 51 fb ff       	call   0x4069e9
45182e:	8d 44 24 78          	lea    0x78(%esp),%eax
451832:	50                   	push   %eax
451833:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451837:	e8 d1 38 fb ff       	call   0x40510d
45183c:	be 8c 2a 4b 00       	mov    $0x4b2a8c,%esi
451841:	56                   	push   %esi
451842:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451846:	e8 41 39 fb ff       	call   0x40518c
45184b:	56                   	push   %esi
45184c:	6a 00                	push   $0x0
45184e:	e8 35 0e fd ff       	call   0x422688
451853:	59                   	pop    %ecx
451854:	59                   	pop    %ecx
451855:	85 c0                	test   %eax,%eax
451857:	0f 85 50 ff ff ff    	jne    0x4517ad
45185d:	56                   	push   %esi
45185e:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451862:	e8 25 39 fb ff       	call   0x40518c
451867:	33 f6                	xor    %esi,%esi
451869:	46                   	inc    %esi
45186a:	39 74 24 18          	cmp    %esi,0x18(%esp)
45186e:	76 26                	jbe    0x451896
451870:	56                   	push   %esi
451871:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451875:	e8 2c 49 fb ff       	call   0x4061a6
45187a:	66 83 38 7c          	cmpw   $0x7c,(%eax)
45187e:	75 0f                	jne    0x45188f
451880:	56                   	push   %esi
451881:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451885:	e8 1c 49 fb ff       	call   0x4061a6
45188a:	33 c9                	xor    %ecx,%ecx
45188c:	66 89 08             	mov    %cx,(%eax)
45188f:	46                   	inc    %esi
451890:	3b 74 24 18          	cmp    0x18(%esp),%esi
451894:	72 da                	jb     0x451870
451896:	83 7d 10 06          	cmpl   $0x6,0x10(%ebp)
45189a:	72 0f                	jb     0x4518ab
45189c:	8b 47 04             	mov    0x4(%edi),%eax
45189f:	8b 48 14             	mov    0x14(%eax),%ecx
4518a2:	e8 d0 9c ff ff       	call   0x44b577
4518a7:	89 44 24 24          	mov    %eax,0x24(%esp)
4518ab:	68 fe ff 01 00       	push   $0x1fffe
4518b0:	e8 35 dc fc ff       	call   0x41f4ea
4518b5:	59                   	pop    %ecx
4518b6:	50                   	push   %eax
4518b7:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4518bb:	e8 f7 2e fb ff       	call   0x4047b7
4518c0:	83 7d 10 05          	cmpl   $0x5,0x10(%ebp)
4518c4:	72 35                	jb     0x4518fb
4518c6:	8b 47 04             	mov    0x4(%edi),%eax
4518c9:	8b 70 10             	mov    0x10(%eax),%esi
4518cc:	8b ce                	mov    %esi,%ecx
4518ce:	e8 99 7a fb ff       	call   0x40936c
4518d3:	8b 46 08             	mov    0x8(%esi),%eax
4518d6:	8b 74 24 0c          	mov    0xc(%esp),%esi
4518da:	ff 30                	push   (%eax)
4518dc:	56                   	push   %esi
4518dd:	e8 41 f4 fc ff       	call   0x420d23
4518e2:	59                   	pop    %ecx
4518e3:	59                   	pop    %ecx
4518e4:	eb 1e                	jmp    0x451904
4518e6:	8b 03                	mov    (%ebx),%eax
4518e8:	6a 00                	push   $0x0
4518ea:	8b 48 04             	mov    0x4(%eax),%ecx
4518ed:	6a 02                	push   $0x2
4518ef:	03 cb                	add    %ebx,%ecx
4518f1:	e8 56 b6 ff ff       	call   0x44cf4c
4518f6:	e9 f3 01 00 00       	jmp    0x451aee
4518fb:	8b 74 24 0c          	mov    0xc(%esp),%esi
4518ff:	33 c0                	xor    %eax,%eax
451901:	66 89 06             	mov    %ax,(%esi)
451904:	6a 58                	push   $0x58
451906:	8d 84 24 8c 00 00 00 	lea    0x8c(%esp),%eax
45190d:	6a 00                	push   $0x0
45190f:	50                   	push   %eax
451910:	e8 3b f4 fc ff       	call   0x420d50
451915:	8b 44 24 30          	mov    0x30(%esp),%eax
451919:	89 84 24 98 00 00 00 	mov    %eax,0x98(%esp)
451920:	8b 44 24 20          	mov    0x20(%esp),%eax
451924:	89 84 24 a0 00 00 00 	mov    %eax,0xa0(%esp)
45192b:	8b 44 24 38          	mov    0x38(%esp),%eax
45192f:	89 84 24 c4 00 00 00 	mov    %eax,0xc4(%esp)
451936:	8b 44 24 34          	mov    0x34(%esp),%eax
45193a:	83 c4 0c             	add    $0xc,%esp
45193d:	83 7d 10 04          	cmpl   $0x4,0x10(%ebp)
451941:	89 b4 24 a4 00 00 00 	mov    %esi,0xa4(%esp)
451948:	c7 84 24 88 00 00 00 	movl   $0x58,0x88(%esp)
45194f:	58 00 00 00
451953:	c7 84 24 a8 00 00 00 	movl   $0xffff,0xa8(%esp)
45195a:	ff ff 00 00
45195e:	89 84 24 b4 00 00 00 	mov    %eax,0xb4(%esp)
451965:	c7 84 24 c4 00 00 00 	movl   $0x49dc00,0xc4(%esp)
45196c:	00 dc 49 00
451970:	be 04 00 08 00       	mov    $0x80004,%esi
451975:	0f 82 85 00 00 00    	jb     0x451a00
45197b:	8b 47 04             	mov    0x4(%edi),%eax
45197e:	8b 48 0c             	mov    0xc(%eax),%ecx
451981:	e8 00 b9 fb ff       	call   0x40d286
451986:	83 f8 1f             	cmp    $0x1f,%eax
451989:	7f 75                	jg     0x451a00
45198b:	8b 47 04             	mov    0x4(%edi),%eax
45198e:	8b 48 0c             	mov    0xc(%eax),%ecx
451991:	e8 f0 b8 fb ff       	call   0x40d286
451996:	85 c0                	test   %eax,%eax
451998:	78 66                	js     0x451a00
45199a:	8b 47 04             	mov    0x4(%edi),%eax
45199d:	8b 48 0c             	mov    0xc(%eax),%ecx
4519a0:	e8 e1 b8 fb ff       	call   0x40d286
4519a5:	a8 10                	test   $0x10,%al
4519a7:	74 03                	je     0x4519ac
4519a9:	83 c6 02             	add    $0x2,%esi
4519ac:	8b 47 04             	mov    0x4(%edi),%eax
4519af:	8b 48 0c             	mov    0xc(%eax),%ecx
4519b2:	e8 cf b8 fb ff       	call   0x40d286
4519b7:	a8 08                	test   $0x8,%al
4519b9:	74 06                	je     0x4519c1
4519bb:	81 ce 00 20 00 00    	or     $0x2000,%esi
4519c1:	8b 47 04             	mov    0x4(%edi),%eax
4519c4:	8b 48 0c             	mov    0xc(%eax),%ecx
4519c7:	e8 ba b8 fb ff       	call   0x40d286
4519cc:	a8 04                	test   $0x4,%al
4519ce:	74 06                	je     0x4519d6
4519d0:	81 ce 00 02 00 00    	or     $0x200,%esi
4519d6:	8b 47 04             	mov    0x4(%edi),%eax
4519d9:	8b 48 0c             	mov    0xc(%eax),%ecx
4519dc:	e8 a5 b8 fb ff       	call   0x40d286
4519e1:	a8 02                	test   $0x2,%al
4519e3:	74 06                	je     0x4519eb
4519e5:	81 ce 00 08 00 00    	or     $0x800,%esi
4519eb:	8b 47 04             	mov    0x4(%edi),%eax
4519ee:	8b 48 0c             	mov    0xc(%eax),%ecx
4519f1:	e8 90 b8 fb ff       	call   0x40d286
4519f6:	a8 01                	test   $0x1,%al
4519f8:	74 06                	je     0x451a00
4519fa:	81 ce 00 10 00 00    	or     $0x1000,%esi
451a00:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
451a04:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax