401637:	85 ff                	test   %edi,%edi
401639:	75 09                	jne    0x401644
40163b:	33 c0                	xor    %eax,%eax
40163d:	b9 68 23 40 00       	mov    $0x402368,%ecx
401642:	87 01                	xchg   %eax,(%ecx)
401644:	83 3d 70 23 40 00 00 	cmpl   $0x0,0x402370
40164b:	74 23                	je     0x401670
40164d:	68 70 23 40 00       	push   $0x402370
401652:	e8 39 03 00 00       	call   0x401990
401657:	59                   	pop    %ecx
401658:	85 c0                	test   %eax,%eax
40165a:	74 14                	je     0x401670
40165c:	53                   	push   %ebx
40165d:	6a 02                	push   $0x2
40165f:	53                   	push   %ebx
401660:	8b 35 70 23 40 00    	mov    0x402370,%esi
401666:	8b ce                	mov    %esi,%ecx
401668:	ff 15 b8 30 40 00    	call   *0x4030b8
40166e:	ff d6                	call   *%esi
401670:	a1 98 30 40 00       	mov    0x403098,%eax
401675:	8b 08                	mov    (%eax),%ecx
401677:	85 c9                	test   %ecx,%ecx
401679:	74 82                	je     0x4015fd
40167b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40167e:	6a 20                	push   $0x20
401680:	5e                   	pop    %esi
401681:	8b 55 e4             	mov    -0x1c(%ebp),%edx
401684:	0f b7 01             	movzwl (%ecx),%eax
401687:	66 3b c6             	cmp    %si,%ax
40168a:	77 4f                	ja     0x4016db
40168c:	66 85 c0             	test   %ax,%ax
40168f:	74 19                	je     0x4016aa
401691:	85 d2                	test   %edx,%edx
401693:	75 46                	jne    0x4016db
401695:	66 85 c0             	test   %ax,%ax
401698:	74 10                	je     0x4016aa
40169a:	66 3b c6             	cmp    %si,%ax
40169d:	77 0b                	ja     0x4016aa
40169f:	83 c1 02             	add    $0x2,%ecx
4016a2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4016a5:	0f b7 01             	movzwl (%ecx),%eax
4016a8:	eb eb                	jmp    0x401695
4016aa:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
4016ae:	74 06                	je     0x4016b6
4016b0:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
4016b4:	eb 03                	jmp    0x4016b9
4016b6:	6a 0a                	push   $0xa
4016b8:	58                   	pop    %eax
4016b9:	50                   	push   %eax
4016ba:	51                   	push   %ecx
4016bb:	53                   	push   %ebx
4016bc:	68 00 00 40 00       	push   $0x400000
4016c1:	e8 1a fd ff ff       	call   0x4013e0
4016c6:	a3 10 20 40 00       	mov    %eax,0x402010
4016cb:	83 3d 28 20 40 00 00 	cmpl   $0x0,0x402028
4016d2:	75 4f                	jne    0x401723
4016d4:	50                   	push   %eax
4016d5:	ff 15 90 30 40 00    	call   *0x403090
4016db:	83 f8 22             	cmp    $0x22,%eax
4016de:	75 0c                	jne    0x4016ec
4016e0:	33 c0                	xor    %eax,%eax
4016e2:	85 d2                	test   %edx,%edx
4016e4:	0f 94 c0             	sete   %al
4016e7:	8b d0                	mov    %eax,%edx
4016e9:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4016ec:	83 c1 02             	add    $0x2,%ecx
4016ef:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4016f2:	eb 90                	jmp    0x401684
4016f4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4016f7:	8b 01                	mov    (%ecx),%eax
4016f9:	8b 00                	mov    (%eax),%eax
4016fb:	89 45 dc             	mov    %eax,-0x24(%ebp)
4016fe:	51                   	push   %ecx
4016ff:	50                   	push   %eax
401700:	e8 69 01 00 00       	call   0x40186e
401705:	59                   	pop    %ecx
401706:	59                   	pop    %ecx
401707:	c3                   	ret
401708:	8b 65 e8             	mov    -0x18(%ebp),%esp
40170b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40170e:	a3 10 20 40 00       	mov    %eax,0x402010
401713:	83 3d 28 20 40 00 00 	cmpl   $0x0,0x402028
40171a:	75 07                	jne    0x401723
40171c:	50                   	push   %eax
40171d:	ff 15 a0 30 40 00    	call   *0x4030a0
401723:	83 3d 14 20 40 00 00 	cmpl   $0x0,0x402014
40172a:	75 0b                	jne    0x401737
40172c:	ff 15 a8 30 40 00    	call   *0x4030a8
401732:	a1 10 20 40 00       	mov    0x402010,%eax
401737:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40173e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401741:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401748:	59                   	pop    %ecx
401749:	5f                   	pop    %edi
40174a:	5e                   	pop    %esi
40174b:	5b                   	pop    %ebx
40174c:	c9                   	leave
40174d:	c3                   	ret
40174e:	8b ff                	mov    %edi,%edi
401750:	55                   	push   %ebp
401751:	8b ec                	mov    %esp,%ebp
401753:	56                   	push   %esi
401754:	8b 75 08             	mov    0x8(%ebp),%esi
401757:	33 c0                	xor    %eax,%eax
401759:	3b 75 0c             	cmp    0xc(%ebp),%esi
40175c:	73 1e                	jae    0x40177c
40175e:	57                   	push   %edi
40175f:	85 c0                	test   %eax,%eax
401761:	75 18                	jne    0x40177b
401763:	8b 3e                	mov    (%esi),%edi
401765:	85 ff                	test   %edi,%edi
401767:	74 0a                	je     0x401773
401769:	8b cf                	mov    %edi,%ecx
40176b:	ff 15 b8 30 40 00    	call   *0x4030b8
401771:	ff d7                	call   *%edi
401773:	83 c6 04             	add    $0x4,%esi
401776:	3b 75 0c             	cmp    0xc(%ebp),%esi
401779:	72 e4                	jb     0x40175f
40177b:	5f                   	pop    %edi
40177c:	5e                   	pop    %esi
40177d:	5d                   	pop    %ebp
40177e:	c3                   	ret
40177f:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401784:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
40178b:	75 55                	jne    0x4017e2
40178d:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
401793:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
40179a:	45 00 00
40179d:	75 43                	jne    0x4017e2
40179f:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
4017a6:	ba 0b 01 00 00       	mov    $0x10b,%edx
4017ab:	66 3b c2             	cmp    %dx,%ax
4017ae:	74 1f                	je     0x4017cf
4017b0:	ba 0b 02 00 00       	mov    $0x20b,%edx
4017b5:	66 3b c2             	cmp    %dx,%ax
4017b8:	75 28                	jne    0x4017e2
4017ba:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
4017c1:	76 1f                	jbe    0x4017e2
4017c3:	33 c0                	xor    %eax,%eax
4017c5:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
4017cb:	0f 95 c0             	setne  %al
4017ce:	c3                   	ret
4017cf:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
4017d6:	76 0a                	jbe    0x4017e2
4017d8:	33 c0                	xor    %eax,%eax
4017da:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
4017e0:	eb e9                	jmp    0x4017cb
4017e2:	33 c0                	xor    %eax,%eax
4017e4:	c3                   	ret
4017e5:	cc                   	int3
4017e6:	cc                   	int3
4017e7:	cc                   	int3
4017e8:	cc                   	int3
4017e9:	cc                   	int3
4017ea:	cc                   	int3
4017eb:	cc                   	int3
4017ec:	cc                   	int3
4017ed:	cc                   	int3
4017ee:	cc                   	int3
4017ef:	cc                   	int3
4017f0:	e8 90 02 00 00       	call   0x401a85
4017f5:	e9 79 fd ff ff       	jmp    0x401573
4017fa:	cc                   	int3
4017fb:	cc                   	int3
4017fc:	cc                   	int3
4017fd:	cc                   	int3
4017fe:	cc                   	int3
4017ff:	cc                   	int3
401800:	3b 0d 04 20 40 00    	cmp    0x402004,%ecx
401806:	75 03                	jne    0x40180b
401808:	c2 00 00             	ret    $0x0
40180b:	e9 ed 03 00 00       	jmp    0x401bfd
401810:	8b ff                	mov    %edi,%edi
401812:	55                   	push   %ebp
401813:	8b ec                	mov    %esp,%ebp
401815:	8b 45 08             	mov    0x8(%ebp),%eax
401818:	8b 00                	mov    (%eax),%eax
40181a:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
401820:	75 2b                	jne    0x40184d
401822:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
401826:	75 25                	jne    0x40184d
401828:	8b 40 14             	mov    0x14(%eax),%eax
40182b:	3d 20 05 93 19       	cmp    $0x19930520,%eax
401830:	74 15                	je     0x401847
401832:	3d 21 05 93 19       	cmp    $0x19930521,%eax
401837:	74 0e                	je     0x401847
401839:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40183e:	74 07                	je     0x401847
401840:	3d 00 40 99 01       	cmp    $0x1994000,%eax
401845:	75 06                	jne    0x40184d
401847:	ff 15 8c 30 40 00    	call   *0x40308c
40184d:	33 c0                	xor    %eax,%eax
40184f:	5d                   	pop    %ebp
401850:	c2 04 00             	ret    $0x4
401853:	cc                   	int3
401854:	cc                   	int3
401855:	cc                   	int3
401856:	cc                   	int3
401857:	cc                   	int3
401858:	cc                   	int3
401859:	cc                   	int3
40185a:	cc                   	int3
40185b:	cc                   	int3
40185c:	cc                   	int3
40185d:	cc                   	int3
40185e:	cc                   	int3
40185f:	cc                   	int3
401860:	68 10 18 40 00       	push   $0x401810
401865:	ff 15 18 30 40 00    	call   *0x403018
40186b:	33 c0                	xor    %eax,%eax
40186d:	c3                   	ret
40186e:	ff 25 80 30 40 00    	jmp    *0x403080
401874:	6a 0c                	push   $0xc
401876:	68 38 1d 40 00       	push   $0x401d38
40187b:	e8 b8 02 00 00       	call   0x401b38
401880:	33 c9                	xor    %ecx,%ecx
401882:	8b 45 08             	mov    0x8(%ebp),%eax
401885:	85 c0                	test   %eax,%eax
401887:	74 4b                	je     0x4018d4
401889:	83 f8 ff             	cmp    $0xffffffff,%eax
40188c:	74 46                	je     0x4018d4
40188e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401891:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
401896:	66 39 10             	cmp    %dx,(%eax)
401899:	75 32                	jne    0x4018cd
40189b:	8b 50 3c             	mov    0x3c(%eax),%edx
40189e:	85 d2                	test   %edx,%edx
4018a0:	78 2b                	js     0x4018cd
4018a2:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
4018a8:	73 23                	jae    0x4018cd
4018aa:	03 c2                	add    %edx,%eax
4018ac:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4018af:	8b 08                	mov    (%eax),%ecx
4018b1:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
4018b7:	f7 d9                	neg    %ecx
4018b9:	1b c9                	sbb    %ecx,%ecx
4018bb:	f7 d1                	not    %ecx
4018bd:	23 c8                	and    %eax,%ecx
4018bf:	eb 09                	jmp    0x4018ca
4018c1:	33 c0                	xor    %eax,%eax
4018c3:	40                   	inc    %eax
4018c4:	c3                   	ret
4018c5:	8b 65 e8             	mov    -0x18(%ebp),%esp
4018c8:	33 c9                	xor    %ecx,%ecx
4018ca:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4018cd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4018d4:	8b c1                	mov    %ecx,%eax
4018d6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4018d9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4018e0:	59                   	pop    %ecx
4018e1:	5f                   	pop    %edi
4018e2:	5e                   	pop    %esi
4018e3:	5b                   	pop    %ebx
4018e4:	c9                   	leave
4018e5:	c2 04 00             	ret    $0x4
4018e8:	8b ff                	mov    %edi,%edi
4018ea:	55                   	push   %ebp
4018eb:	8b ec                	mov    %esp,%ebp
4018ed:	6a 00                	push   $0x0
4018ef:	ff 15 2c 30 40 00    	call   *0x40302c
4018f5:	85 c0                	test   %eax,%eax
4018f7:	74 20                	je     0x401919
4018f9:	50                   	push   %eax
4018fa:	e8 75 ff ff ff       	call   0x401874
4018ff:	85 c0                	test   %eax,%eax
401901:	74 16                	je     0x401919
401903:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401907:	6a 02                	push   $0x2
401909:	58                   	pop    %eax
40190a:	66 3b c8             	cmp    %ax,%cx
40190d:	74 0d                	je     0x40191c
40190f:	83 f9 03             	cmp    $0x3,%ecx
401912:	75 05                	jne    0x401919
401914:	33 c0                	xor    %eax,%eax
401916:	40                   	inc    %eax
401917:	5d                   	pop    %ebp
401918:	c3                   	ret
401919:	8b 45 08             	mov    0x8(%ebp),%eax
40191c:	5d                   	pop    %ebp
40191d:	c3                   	ret
40191e:	ff 25 84 30 40 00    	jmp    *0x403084
401924:	cc                   	int3
401925:	cc                   	int3
401926:	cc                   	int3
401927:	cc                   	int3
401928:	cc                   	int3
401929:	cc                   	int3
40192a:	cc                   	int3
40192b:	cc                   	int3
40192c:	cc                   	int3
40192d:	cc                   	int3
40192e:	cc                   	int3
40192f:	cc                   	int3
401930:	33 c0                	xor    %eax,%eax
401932:	c3                   	ret
401933:	cc                   	int3
401934:	cc                   	int3
401935:	cc                   	int3
401936:	cc                   	int3
401937:	cc                   	int3
401938:	cc                   	int3
401939:	cc                   	int3
40193a:	cc                   	int3
40193b:	cc                   	int3
40193c:	cc                   	int3
40193d:	cc                   	int3
40193e:	cc                   	int3
40193f:	cc                   	int3
401940:	8b ff                	mov    %edi,%edi
401942:	55                   	push   %ebp
401943:	8b ec                	mov    %esp,%ebp
401945:	8b 45 08             	mov    0x8(%ebp),%eax
401948:	33 d2                	xor    %edx,%edx
40194a:	53                   	push   %ebx
40194b:	56                   	push   %esi
40194c:	57                   	push   %edi
40194d:	8b 48 3c             	mov    0x3c(%eax),%ecx
401950:	03 c8                	add    %eax,%ecx
401952:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401956:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
40195a:	83 c0 18             	add    $0x18,%eax
40195d:	03 c1                	add    %ecx,%eax
40195f:	85 db                	test   %ebx,%ebx
401961:	74 1b                	je     0x40197e
401963:	8b 7d 0c             	mov    0xc(%ebp),%edi
401966:	8b 70 0c             	mov    0xc(%eax),%esi
401969:	3b fe                	cmp    %esi,%edi
40196b:	72 09                	jb     0x401976
40196d:	8b 48 08             	mov    0x8(%eax),%ecx
401970:	03 ce                	add    %esi,%ecx
401972:	3b f9                	cmp    %ecx,%edi
401974:	72 0a                	jb     0x401980
401976:	42                   	inc    %edx
401977:	83 c0 28             	add    $0x28,%eax
40197a:	3b d3                	cmp    %ebx,%edx
40197c:	72 e8                	jb     0x401966
40197e:	33 c0                	xor    %eax,%eax
401980:	5f                   	pop    %edi
401981:	5e                   	pop    %esi
401982:	5b                   	pop    %ebx
401983:	5d                   	pop    %ebp
401984:	c3                   	ret
401985:	cc                   	int3
401986:	cc                   	int3
401987:	cc                   	int3
401988:	cc                   	int3
401989:	cc                   	int3
40198a:	cc                   	int3
40198b:	cc                   	int3
40198c:	cc                   	int3