4015d3:	75 46                	jne    0x40161b
4015d5:	66 85 c0             	test   %ax,%ax
4015d8:	74 10                	je     0x4015ea
4015da:	66 3b c6             	cmp    %si,%ax
4015dd:	77 0b                	ja     0x4015ea
4015df:	83 c1 02             	add    $0x2,%ecx
4015e2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4015e5:	0f b7 01             	movzwl (%ecx),%eax
4015e8:	eb eb                	jmp    0x4015d5
4015ea:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
4015ee:	74 06                	je     0x4015f6
4015f0:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
4015f4:	eb 03                	jmp    0x4015f9
4015f6:	6a 0a                	push   $0xa
4015f8:	58                   	pop    %eax
4015f9:	50                   	push   %eax
4015fa:	51                   	push   %ecx
4015fb:	53                   	push   %ebx
4015fc:	68 00 00 40 00       	push   $0x400000
401601:	e8 ca fd ff ff       	call   0x4013d0
401606:	a3 10 20 40 00       	mov    %eax,0x402010
40160b:	83 3d 28 20 40 00 00 	cmpl   $0x0,0x402028
401612:	75 4f                	jne    0x401663
401614:	50                   	push   %eax
401615:	ff 15 7c 30 40 00    	call   *0x40307c
40161b:	83 f8 22             	cmp    $0x22,%eax
40161e:	75 0c                	jne    0x40162c
401620:	33 c0                	xor    %eax,%eax
401622:	85 d2                	test   %edx,%edx
401624:	0f 94 c0             	sete   %al
401627:	8b d0                	mov    %eax,%edx
401629:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40162c:	83 c1 02             	add    $0x2,%ecx
40162f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
401632:	eb 90                	jmp    0x4015c4
401634:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401637:	8b 01                	mov    (%ecx),%eax
401639:	8b 00                	mov    (%eax),%eax
40163b:	89 45 dc             	mov    %eax,-0x24(%ebp)
40163e:	51                   	push   %ecx
40163f:	50                   	push   %eax
401640:	e8 69 01 00 00       	call   0x4017ae
401645:	59                   	pop    %ecx
401646:	59                   	pop    %ecx
401647:	c3                   	ret
401648:	8b 65 e8             	mov    -0x18(%ebp),%esp
40164b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40164e:	a3 10 20 40 00       	mov    %eax,0x402010
401653:	83 3d 28 20 40 00 00 	cmpl   $0x0,0x402028
40165a:	75 07                	jne    0x401663
40165c:	50                   	push   %eax
40165d:	ff 15 78 30 40 00    	call   *0x403078
401663:	83 3d 14 20 40 00 00 	cmpl   $0x0,0x402014
40166a:	75 0b                	jne    0x401677
40166c:	ff 15 74 30 40 00    	call   *0x403074
401672:	a1 10 20 40 00       	mov    0x402010,%eax
401677:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40167e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401681:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401688:	59                   	pop    %ecx
401689:	5f                   	pop    %edi
40168a:	5e                   	pop    %esi
40168b:	5b                   	pop    %ebx
40168c:	c9                   	leave
40168d:	c3                   	ret
40168e:	8b ff                	mov    %edi,%edi
401690:	55                   	push   %ebp
401691:	8b ec                	mov    %esp,%ebp
401693:	56                   	push   %esi
401694:	8b 75 08             	mov    0x8(%ebp),%esi
401697:	33 c0                	xor    %eax,%eax
401699:	3b 75 0c             	cmp    0xc(%ebp),%esi
40169c:	73 1e                	jae    0x4016bc
40169e:	57                   	push   %edi
40169f:	85 c0                	test   %eax,%eax
4016a1:	75 18                	jne    0x4016bb
4016a3:	8b 3e                	mov    (%esi),%edi
4016a5:	85 ff                	test   %edi,%edi
4016a7:	74 0a                	je     0x4016b3
4016a9:	8b cf                	mov    %edi,%ecx
4016ab:	ff 15 98 30 40 00    	call   *0x403098
4016b1:	ff d7                	call   *%edi
4016b3:	83 c6 04             	add    $0x4,%esi
4016b6:	3b 75 0c             	cmp    0xc(%ebp),%esi
4016b9:	72 e4                	jb     0x40169f
4016bb:	5f                   	pop    %edi
4016bc:	5e                   	pop    %esi
4016bd:	5d                   	pop    %ebp
4016be:	c3                   	ret
4016bf:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4016c4:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
4016cb:	75 55                	jne    0x401722
4016cd:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
4016d3:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
4016da:	45 00 00
4016dd:	75 43                	jne    0x401722
4016df:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
4016e6:	ba 0b 01 00 00       	mov    $0x10b,%edx
4016eb:	66 3b c2             	cmp    %dx,%ax
4016ee:	74 1f                	je     0x40170f
4016f0:	ba 0b 02 00 00       	mov    $0x20b,%edx
4016f5:	66 3b c2             	cmp    %dx,%ax
4016f8:	75 28                	jne    0x401722
4016fa:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
401701:	76 1f                	jbe    0x401722
401703:	33 c0                	xor    %eax,%eax
401705:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
40170b:	0f 95 c0             	setne  %al
40170e:	c3                   	ret
40170f:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
401716:	76 0a                	jbe    0x401722
401718:	33 c0                	xor    %eax,%eax
40171a:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
401720:	eb e9                	jmp    0x40170b
401722:	33 c0                	xor    %eax,%eax
401724:	c3                   	ret
401725:	cc                   	int3
401726:	cc                   	int3
401727:	cc                   	int3
401728:	cc                   	int3
401729:	cc                   	int3
40172a:	cc                   	int3
40172b:	cc                   	int3
40172c:	cc                   	int3
40172d:	cc                   	int3
40172e:	cc                   	int3
40172f:	cc                   	int3
401730:	e8 90 02 00 00       	call   0x4019c5
401735:	e9 79 fd ff ff       	jmp    0x4014b3
40173a:	cc                   	int3
40173b:	cc                   	int3
40173c:	cc                   	int3
40173d:	cc                   	int3
40173e:	cc                   	int3
40173f:	cc                   	int3
401740:	3b 0d 04 20 40 00    	cmp    0x402004,%ecx
401746:	75 03                	jne    0x40174b
401748:	c2 00 00             	ret    $0x0
40174b:	e9 ed 03 00 00       	jmp    0x401b3d
401750:	8b ff                	mov    %edi,%edi
401752:	55                   	push   %ebp
401753:	8b ec                	mov    %esp,%ebp
401755:	8b 45 08             	mov    0x8(%ebp),%eax
401758:	8b 00                	mov    (%eax),%eax
40175a:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
401760:	75 2b                	jne    0x40178d
401762:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
401766:	75 25                	jne    0x40178d
401768:	8b 40 14             	mov    0x14(%eax),%eax
40176b:	3d 20 05 93 19       	cmp    $0x19930520,%eax
401770:	74 15                	je     0x401787
401772:	3d 21 05 93 19       	cmp    $0x19930521,%eax
401777:	74 0e                	je     0x401787
401779:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40177e:	74 07                	je     0x401787
401780:	3d 00 40 99 01       	cmp    $0x1994000,%eax
401785:	75 06                	jne    0x40178d
401787:	ff 15 60 30 40 00    	call   *0x403060
40178d:	33 c0                	xor    %eax,%eax
40178f:	5d                   	pop    %ebp
401790:	c2 04 00             	ret    $0x4
401793:	cc                   	int3
401794:	cc                   	int3
401795:	cc                   	int3
401796:	cc                   	int3
401797:	cc                   	int3
401798:	cc                   	int3
401799:	cc                   	int3
40179a:	cc                   	int3
40179b:	cc                   	int3
40179c:	cc                   	int3
40179d:	cc                   	int3
40179e:	cc                   	int3
40179f:	cc                   	int3
4017a0:	68 50 17 40 00       	push   $0x401750
4017a5:	ff 15 10 30 40 00    	call   *0x403010
4017ab:	33 c0                	xor    %eax,%eax
4017ad:	c3                   	ret
4017ae:	ff 25 90 30 40 00    	jmp    *0x403090
4017b4:	6a 0c                	push   $0xc
4017b6:	68 78 1c 40 00       	push   $0x401c78
4017bb:	e8 b8 02 00 00       	call   0x401a78
4017c0:	33 c9                	xor    %ecx,%ecx
4017c2:	8b 45 08             	mov    0x8(%ebp),%eax
4017c5:	85 c0                	test   %eax,%eax
4017c7:	74 4b                	je     0x401814
4017c9:	83 f8 ff             	cmp    $0xffffffff,%eax
4017cc:	74 46                	je     0x401814
4017ce:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4017d1:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
4017d6:	66 39 10             	cmp    %dx,(%eax)
4017d9:	75 32                	jne    0x40180d
4017db:	8b 50 3c             	mov    0x3c(%eax),%edx
4017de:	85 d2                	test   %edx,%edx
4017e0:	78 2b                	js     0x40180d
4017e2:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
4017e8:	73 23                	jae    0x40180d
4017ea:	03 c2                	add    %edx,%eax
4017ec:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4017ef:	8b 08                	mov    (%eax),%ecx
4017f1:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
4017f7:	f7 d9                	neg    %ecx
4017f9:	1b c9                	sbb    %ecx,%ecx
4017fb:	f7 d1                	not    %ecx
4017fd:	23 c8                	and    %eax,%ecx
4017ff:	eb 09                	jmp    0x40180a
401801:	33 c0                	xor    %eax,%eax
401803:	40                   	inc    %eax
401804:	c3                   	ret
401805:	8b 65 e8             	mov    -0x18(%ebp),%esp
401808:	33 c9                	xor    %ecx,%ecx
40180a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40180d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401814:	8b c1                	mov    %ecx,%eax
401816:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401819:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401820:	59                   	pop    %ecx
401821:	5f                   	pop    %edi
401822:	5e                   	pop    %esi
401823:	5b                   	pop    %ebx
401824:	c9                   	leave
401825:	c2 04 00             	ret    $0x4
401828:	8b ff                	mov    %edi,%edi
40182a:	55                   	push   %ebp
40182b:	8b ec                	mov    %esp,%ebp
40182d:	6a 00                	push   $0x0
40182f:	ff 15 1c 30 40 00    	call   *0x40301c
401835:	85 c0                	test   %eax,%eax
401837:	74 20                	je     0x401859
401839:	50                   	push   %eax
40183a:	e8 75 ff ff ff       	call   0x4017b4
40183f:	85 c0                	test   %eax,%eax
401841:	74 16                	je     0x401859
401843:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401847:	6a 02                	push   $0x2
401849:	58                   	pop    %eax
40184a:	66 3b c8             	cmp    %ax,%cx
40184d:	74 0d                	je     0x40185c
40184f:	83 f9 03             	cmp    $0x3,%ecx
401852:	75 05                	jne    0x401859
401854:	33 c0                	xor    %eax,%eax
401856:	40                   	inc    %eax
401857:	5d                   	pop    %ebp
401858:	c3                   	ret
401859:	8b 45 08             	mov    0x8(%ebp),%eax
40185c:	5d                   	pop    %ebp
40185d:	c3                   	ret
40185e:	ff 25 88 30 40 00    	jmp    *0x403088
401864:	cc                   	int3
401865:	cc                   	int3
401866:	cc                   	int3
401867:	cc                   	int3
401868:	cc                   	int3
401869:	cc                   	int3
40186a:	cc                   	int3
40186b:	cc                   	int3
40186c:	cc                   	int3
40186d:	cc                   	int3
40186e:	cc                   	int3
40186f:	cc                   	int3
401870:	33 c0                	xor    %eax,%eax
401872:	c3                   	ret
401873:	cc                   	int3
401874:	cc                   	int3
401875:	cc                   	int3
401876:	cc                   	int3
401877:	cc                   	int3
401878:	cc                   	int3
401879:	cc                   	int3
40187a:	cc                   	int3
40187b:	cc                   	int3
40187c:	cc                   	int3
40187d:	cc                   	int3
40187e:	cc                   	int3
40187f:	cc                   	int3
401880:	8b ff                	mov    %edi,%edi
401882:	55                   	push   %ebp
401883:	8b ec                	mov    %esp,%ebp
401885:	8b 45 08             	mov    0x8(%ebp),%eax
401888:	33 d2                	xor    %edx,%edx
40188a:	53                   	push   %ebx
40188b:	56                   	push   %esi
40188c:	57                   	push   %edi
40188d:	8b 48 3c             	mov    0x3c(%eax),%ecx
401890:	03 c8                	add    %eax,%ecx
401892:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401896:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
40189a:	83 c0 18             	add    $0x18,%eax
40189d:	03 c1                	add    %ecx,%eax
40189f:	85 db                	test   %ebx,%ebx
4018a1:	74 1b                	je     0x4018be
4018a3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4018a6:	8b 70 0c             	mov    0xc(%eax),%esi
4018a9:	3b fe                	cmp    %esi,%edi
4018ab:	72 09                	jb     0x4018b6
4018ad:	8b 48 08             	mov    0x8(%eax),%ecx
4018b0:	03 ce                	add    %esi,%ecx
4018b2:	3b f9                	cmp    %ecx,%edi
4018b4:	72 0a                	jb     0x4018c0
4018b6:	42                   	inc    %edx
4018b7:	83 c0 28             	add    $0x28,%eax
4018ba:	3b d3                	cmp    %ebx,%edx
4018bc:	72 e8                	jb     0x4018a6
4018be:	33 c0                	xor    %eax,%eax
4018c0:	5f                   	pop    %edi
4018c1:	5e                   	pop    %esi
4018c2:	5b                   	pop    %ebx
4018c3:	5d                   	pop    %ebp
4018c4:	c3                   	ret
4018c5:	cc                   	int3
4018c6:	cc                   	int3
4018c7:	cc                   	int3
4018c8:	cc                   	int3
4018c9:	cc                   	int3
4018ca:	cc                   	int3
4018cb:	cc                   	int3
4018cc:	cc                   	int3
4018cd:	cc                   	int3
4018ce:	cc                   	int3
4018cf:	cc                   	int3
4018d0:	8b ff                	mov    %edi,%edi
4018d2:	55                   	push   %ebp
4018d3:	8b ec                	mov    %esp,%ebp
4018d5:	6a fe                	push   $0xfffffffe
4018d7:	68 98 1c 40 00       	push   $0x401c98
4018dc:	68 e0 1a 40 00       	push   $0x401ae0
4018e1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4018e7:	50                   	push   %eax
4018e8:	83 ec 08             	sub    $0x8,%esp
4018eb:	53                   	push   %ebx
4018ec:	56                   	push   %esi
4018ed:	57                   	push   %edi
4018ee:	a1 04 20 40 00       	mov    0x402004,%eax
4018f3:	31 45 f8             	xor    %eax,-0x8(%ebp)
4018f6:	33 c5                	xor    %ebp,%eax
4018f8:	50                   	push   %eax
4018f9:	8d 45 f0             	lea    -0x10(%ebp),%eax
4018fc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401902:	89 65 e8             	mov    %esp,-0x18(%ebp)
401905:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40190c:	68 00 00 40 00       	push   $0x400000
401911:	e8 7a 00 00 00       	call   0x401990
401916:	83 c4 04             	add    $0x4,%esp
401919:	85 c0                	test   %eax,%eax
40191b:	74 54                	je     0x401971
40191d:	8b 45 08             	mov    0x8(%ebp),%eax
401920:	2d 00 00 40 00       	sub    $0x400000,%eax
401925:	50                   	push   %eax
401926:	68 00 00 40 00       	push   $0x400000
40192b:	e8 50 ff ff ff       	call   0x401880