409755:	e8 45 10 00 00       	call   0x40a79f
40975a:	59                   	pop    %ecx
40975b:	83 c8 ff             	or     $0xffffffff,%eax
40975e:	5e                   	pop    %esi
40975f:	c3                   	ret
409760:	57                   	push   %edi
409761:	56                   	push   %esi
409762:	e8 2a 00 00 00       	call   0x409791
409767:	59                   	pop    %ecx
409768:	85 c0                	test   %eax,%eax
40976a:	75 05                	jne    0x409771
40976c:	83 cf ff             	or     $0xffffffff,%edi
40976f:	eb 0c                	jmp    0x40977d
409771:	a3 6c 20 42 00       	mov    %eax,0x42206c
409776:	33 ff                	xor    %edi,%edi
409778:	a3 68 20 42 00       	mov    %eax,0x422068
40977d:	6a 00                	push   $0x0
40977f:	e8 1b 10 00 00       	call   0x40a79f
409784:	56                   	push   %esi
409785:	e8 15 10 00 00       	call   0x40a79f
40978a:	59                   	pop    %ecx
40978b:	59                   	pop    %ecx
40978c:	8b c7                	mov    %edi,%eax
40978e:	5f                   	pop    %edi
40978f:	5e                   	pop    %esi
409790:	c3                   	ret
409791:	8b ff                	mov    %edi,%edi
409793:	55                   	push   %ebp
409794:	8b ec                	mov    %esp,%ebp
409796:	83 ec 0c             	sub    $0xc,%esp
409799:	53                   	push   %ebx
40979a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40979d:	56                   	push   %esi
40979e:	57                   	push   %edi
40979f:	33 ff                	xor    %edi,%edi
4097a1:	8b f3                	mov    %ebx,%esi
4097a3:	0f b7 03             	movzwl (%ebx),%eax
4097a6:	8b d7                	mov    %edi,%edx
4097a8:	89 7d fc             	mov    %edi,-0x4(%ebp)
4097ab:	66 85 c0             	test   %ax,%ax
4097ae:	74 35                	je     0x4097e5
4097b0:	6a 3d                	push   $0x3d
4097b2:	8b c8                	mov    %eax,%ecx
4097b4:	5b                   	pop    %ebx
4097b5:	66 3b cb             	cmp    %bx,%cx
4097b8:	74 01                	je     0x4097bb
4097ba:	42                   	inc    %edx
4097bb:	8b ce                	mov    %esi,%ecx
4097bd:	8d 79 02             	lea    0x2(%ecx),%edi
4097c0:	66 8b 01             	mov    (%ecx),%ax
4097c3:	83 c1 02             	add    $0x2,%ecx
4097c6:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4097ca:	75 f4                	jne    0x4097c0
4097cc:	2b cf                	sub    %edi,%ecx
4097ce:	d1 f9                	sar    $1,%ecx
4097d0:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
4097d3:	83 c6 02             	add    $0x2,%esi
4097d6:	0f b7 06             	movzwl (%esi),%eax
4097d9:	8b c8                	mov    %eax,%ecx
4097db:	66 85 c0             	test   %ax,%ax
4097de:	75 d5                	jne    0x4097b5
4097e0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4097e3:	33 ff                	xor    %edi,%edi
4097e5:	8d 42 01             	lea    0x1(%edx),%eax
4097e8:	6a 04                	push   $0x4
4097ea:	50                   	push   %eax
4097eb:	e8 52 0f 00 00       	call   0x40a742
4097f0:	8b f0                	mov    %eax,%esi
4097f2:	59                   	pop    %ecx
4097f3:	59                   	pop    %ecx
4097f4:	85 f6                	test   %esi,%esi
4097f6:	75 0a                	jne    0x409802
4097f8:	57                   	push   %edi
4097f9:	e8 a1 0f 00 00       	call   0x40a79f
4097fe:	33 c0                	xor    %eax,%eax
409800:	eb 7f                	jmp    0x409881
409802:	0f b7 03             	movzwl (%ebx),%eax
409805:	89 75 f8             	mov    %esi,-0x8(%ebp)
409808:	66 85 c0             	test   %ax,%ax
40980b:	74 6a                	je     0x409877
40980d:	8b d0                	mov    %eax,%edx
40980f:	8b cb                	mov    %ebx,%ecx
409811:	8d 79 02             	lea    0x2(%ecx),%edi
409814:	66 8b 01             	mov    (%ecx),%ax
409817:	83 c1 02             	add    $0x2,%ecx
40981a:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
40981e:	75 f4                	jne    0x409814
409820:	2b cf                	sub    %edi,%ecx
409822:	d1 f9                	sar    $1,%ecx
409824:	6a 3d                	push   $0x3d
409826:	8d 41 01             	lea    0x1(%ecx),%eax
409829:	59                   	pop    %ecx
40982a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40982d:	66 3b d1             	cmp    %cx,%dx
409830:	74 38                	je     0x40986a
409832:	6a 02                	push   $0x2
409834:	50                   	push   %eax
409835:	e8 08 0f 00 00       	call   0x40a742
40983a:	8b f8                	mov    %eax,%edi
40983c:	59                   	pop    %ecx
40983d:	59                   	pop    %ecx
40983e:	85 ff                	test   %edi,%edi
409840:	74 45                	je     0x409887
409842:	53                   	push   %ebx
409843:	ff 75 f4             	push   -0xc(%ebp)
409846:	57                   	push   %edi
409847:	e8 9f 47 00 00       	call   0x40dfeb
40984c:	83 c4 0c             	add    $0xc,%esp
40984f:	85 c0                	test   %eax,%eax
409851:	75 4f                	jne    0x4098a2
409853:	8b 45 f8             	mov    -0x8(%ebp),%eax
409856:	89 38                	mov    %edi,(%eax)
409858:	83 c0 04             	add    $0x4,%eax
40985b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40985e:	33 c0                	xor    %eax,%eax
409860:	50                   	push   %eax
409861:	e8 39 0f 00 00       	call   0x40a79f
409866:	8b 45 f4             	mov    -0xc(%ebp),%eax
409869:	59                   	pop    %ecx
40986a:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
40986d:	0f b7 03             	movzwl (%ebx),%eax
409870:	8b d0                	mov    %eax,%edx
409872:	66 85 c0             	test   %ax,%ax
409875:	75 98                	jne    0x40980f
409877:	33 c0                	xor    %eax,%eax
409879:	50                   	push   %eax
40987a:	e8 20 0f 00 00       	call   0x40a79f
40987f:	8b c6                	mov    %esi,%eax
409881:	59                   	pop    %ecx
409882:	5f                   	pop    %edi
409883:	5e                   	pop    %esi
409884:	5b                   	pop    %ebx
409885:	c9                   	leave
409886:	c3                   	ret
409887:	56                   	push   %esi
409888:	e8 22 00 00 00       	call   0x4098af
40988d:	33 db                	xor    %ebx,%ebx
40988f:	53                   	push   %ebx
409890:	e8 0a 0f 00 00       	call   0x40a79f
409895:	53                   	push   %ebx
409896:	e8 04 0f 00 00       	call   0x40a79f
40989b:	83 c4 0c             	add    $0xc,%esp
40989e:	33 c0                	xor    %eax,%eax
4098a0:	eb e0                	jmp    0x409882
4098a2:	33 c0                	xor    %eax,%eax
4098a4:	50                   	push   %eax
4098a5:	50                   	push   %eax
4098a6:	50                   	push   %eax
4098a7:	50                   	push   %eax
4098a8:	50                   	push   %eax
4098a9:	e8 48 dc ff ff       	call   0x4074f6
4098ae:	cc                   	int3
4098af:	8b ff                	mov    %edi,%edi
4098b1:	55                   	push   %ebp
4098b2:	8b ec                	mov    %esp,%ebp
4098b4:	56                   	push   %esi
4098b5:	8b 75 08             	mov    0x8(%ebp),%esi
4098b8:	85 f6                	test   %esi,%esi
4098ba:	74 1f                	je     0x4098db
4098bc:	8b 06                	mov    (%esi),%eax
4098be:	57                   	push   %edi
4098bf:	8b fe                	mov    %esi,%edi
4098c1:	eb 0c                	jmp    0x4098cf
4098c3:	50                   	push   %eax
4098c4:	e8 d6 0e 00 00       	call   0x40a79f
4098c9:	8d 7f 04             	lea    0x4(%edi),%edi
4098cc:	8b 07                	mov    (%edi),%eax
4098ce:	59                   	pop    %ecx
4098cf:	85 c0                	test   %eax,%eax
4098d1:	75 f0                	jne    0x4098c3
4098d3:	56                   	push   %esi
4098d4:	e8 c6 0e 00 00       	call   0x40a79f
4098d9:	59                   	pop    %ecx
4098da:	5f                   	pop    %edi
4098db:	5e                   	pop    %esi
4098dc:	5d                   	pop    %ebp
4098dd:	c3                   	ret
4098de:	8b ff                	mov    %edi,%edi
4098e0:	53                   	push   %ebx
4098e1:	56                   	push   %esi
4098e2:	57                   	push   %edi
4098e3:	8b 3d 64 20 42 00    	mov    0x422064,%edi
4098e9:	85 ff                	test   %edi,%edi
4098eb:	74 67                	je     0x409954
4098ed:	8b 07                	mov    (%edi),%eax
4098ef:	85 c0                	test   %eax,%eax
4098f1:	74 56                	je     0x409949
4098f3:	33 db                	xor    %ebx,%ebx
4098f5:	53                   	push   %ebx
4098f6:	53                   	push   %ebx
4098f7:	6a ff                	push   $0xffffffff
4098f9:	50                   	push   %eax
4098fa:	53                   	push   %ebx
4098fb:	53                   	push   %ebx
4098fc:	e8 73 56 00 00       	call   0x40ef74
409901:	8b d8                	mov    %eax,%ebx
409903:	83 c4 18             	add    $0x18,%esp
409906:	85 db                	test   %ebx,%ebx
409908:	74 4a                	je     0x409954
40990a:	6a 02                	push   $0x2
40990c:	53                   	push   %ebx
40990d:	e8 30 0e 00 00       	call   0x40a742
409912:	8b f0                	mov    %eax,%esi
409914:	59                   	pop    %ecx
409915:	59                   	pop    %ecx
409916:	85 f6                	test   %esi,%esi
409918:	74 41                	je     0x40995b
40991a:	53                   	push   %ebx
40991b:	56                   	push   %esi
40991c:	6a ff                	push   $0xffffffff
40991e:	ff 37                	push   (%edi)
409920:	33 db                	xor    %ebx,%ebx
409922:	53                   	push   %ebx
409923:	53                   	push   %ebx
409924:	e8 4b 56 00 00       	call   0x40ef74
409929:	83 c4 18             	add    $0x18,%esp
40992c:	85 c0                	test   %eax,%eax
40992e:	74 1d                	je     0x40994d
409930:	53                   	push   %ebx
409931:	56                   	push   %esi
409932:	e8 a3 5b 00 00       	call   0x40f4da
409937:	53                   	push   %ebx
409938:	e8 62 0e 00 00       	call   0x40a79f
40993d:	83 c7 04             	add    $0x4,%edi
409940:	83 c4 0c             	add    $0xc,%esp
409943:	8b 07                	mov    (%edi),%eax
409945:	85 c0                	test   %eax,%eax
409947:	75 ac                	jne    0x4098f5
409949:	33 c0                	xor    %eax,%eax
40994b:	eb 0a                	jmp    0x409957
40994d:	56                   	push   %esi
40994e:	e8 4c 0e 00 00       	call   0x40a79f
409953:	59                   	pop    %ecx
409954:	83 c8 ff             	or     $0xffffffff,%eax
409957:	5f                   	pop    %edi
409958:	5e                   	pop    %esi
409959:	5b                   	pop    %ebx
40995a:	c3                   	ret
40995b:	6a 00                	push   $0x0
40995d:	eb ef                	jmp    0x40994e
40995f:	8b ff                	mov    %edi,%edi
409961:	55                   	push   %ebp
409962:	8b ec                	mov    %esp,%ebp
409964:	8b 45 08             	mov    0x8(%ebp),%eax
409967:	8b 00                	mov    (%eax),%eax
409969:	3b 05 70 20 42 00    	cmp    0x422070,%eax
40996f:	74 07                	je     0x409978
409971:	50                   	push   %eax
409972:	e8 38 ff ff ff       	call   0x4098af
409977:	59                   	pop    %ecx
409978:	5d                   	pop    %ebp
409979:	c3                   	ret
40997a:	8b ff                	mov    %edi,%edi
40997c:	55                   	push   %ebp
40997d:	8b ec                	mov    %esp,%ebp
40997f:	8b 45 08             	mov    0x8(%ebp),%eax
409982:	8b 00                	mov    (%eax),%eax
409984:	3b 05 6c 20 42 00    	cmp    0x42206c,%eax
40998a:	74 07                	je     0x409993
40998c:	50                   	push   %eax
40998d:	e8 1d ff ff ff       	call   0x4098af
409992:	59                   	pop    %ecx
409993:	5d                   	pop    %ebp
409994:	c3                   	ret
409995:	e9 76 fd ff ff       	jmp    0x409710
40999a:	6a 00                	push   $0x0
40999c:	b8 24 80 41 00       	mov    $0x418024,%eax
4099a1:	e8 ef df 00 00       	call   0x417995
4099a6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4099aa:	68 64 20 42 00       	push   $0x422064
4099af:	e8 ab ff ff ff       	call   0x40995f
4099b4:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4099bb:	c7 04 24 68 20 42 00 	movl   $0x422068,(%esp)
4099c2:	e8 b3 ff ff ff       	call   0x40997a
4099c7:	ff 35 70 20 42 00    	push   0x422070
4099cd:	e8 dd fe ff ff       	call   0x4098af
4099d2:	ff 35 6c 20 42 00    	push   0x42206c
4099d8:	e8 d2 fe ff ff       	call   0x4098af
4099dd:	83 c4 0c             	add    $0xc,%esp
4099e0:	e8 9c df 00 00       	call   0x417981
4099e5:	c3                   	ret
4099e6:	cc                   	int3
4099e7:	cc                   	int3
4099e8:	cc                   	int3
4099e9:	cc                   	int3
4099ea:	cc                   	int3
4099eb:	a1 6c 20 42 00       	mov    0x42206c,%eax
4099f0:	85 c0                	test   %eax,%eax
4099f2:	75 0a                	jne    0x4099fe
4099f4:	e8 17 fd ff ff       	call   0x409710
4099f9:	a3 6c 20 42 00       	mov    %eax,0x42206c
4099fe:	c3                   	ret
4099ff:	e9 38 fd ff ff       	jmp    0x40973c
409a04:	8b ff                	mov    %edi,%edi
409a06:	55                   	push   %ebp
409a07:	8b ec                	mov    %esp,%ebp
409a09:	56                   	push   %esi
409a0a:	8b 75 08             	mov    0x8(%ebp),%esi
409a0d:	3b 75 0c             	cmp    0xc(%ebp),%esi
409a10:	74 1a                	je     0x409a2c
409a12:	57                   	push   %edi
409a13:	8b 3e                	mov    (%esi),%edi
409a15:	85 ff                	test   %edi,%edi
409a17:	74 0a                	je     0x409a23
409a19:	8b cf                	mov    %edi,%ecx
409a1b:	ff 15 54 91 41 00    	call   *0x419154
409a21:	ff d7                	call   *%edi
409a23:	83 c6 04             	add    $0x4,%esi
409a26:	3b 75 0c             	cmp    0xc(%ebp),%esi
409a29:	75 e8                	jne    0x409a13
409a2b:	5f                   	pop    %edi
409a2c:	5e                   	pop    %esi
409a2d:	5d                   	pop    %ebp
409a2e:	c3                   	ret
409a2f:	8b ff                	mov    %edi,%edi
409a31:	55                   	push   %ebp
409a32:	8b ec                	mov    %esp,%ebp
409a34:	56                   	push   %esi
409a35:	8b 75 08             	mov    0x8(%ebp),%esi
409a38:	57                   	push   %edi
409a39:	eb 17                	jmp    0x409a52
409a3b:	8b 3e                	mov    (%esi),%edi
409a3d:	85 ff                	test   %edi,%edi
409a3f:	74 0e                	je     0x409a4f
409a41:	8b cf                	mov    %edi,%ecx
409a43:	ff 15 54 91 41 00    	call   *0x419154
409a49:	ff d7                	call   *%edi
409a4b:	85 c0                	test   %eax,%eax
409a4d:	75 0a                	jne    0x409a59
409a4f:	83 c6 04             	add    $0x4,%esi
409a52:	3b 75 0c             	cmp    0xc(%ebp),%esi
409a55:	75 e4                	jne    0x409a3b
409a57:	33 c0                	xor    %eax,%eax
409a59:	5f                   	pop    %edi
409a5a:	5e                   	pop    %esi
409a5b:	5d                   	pop    %ebp
409a5c:	c3                   	ret
409a5d:	6a 08                	push   $0x8
409a5f:	68 80 ff 41 00       	push   $0x41ff80
409a64:	e8 37 a4 ff ff       	call   0x403ea0
409a69:	8b 45 08             	mov    0x8(%ebp),%eax
409a6c:	ff 30                	push   (%eax)
409a6e:	e8 19 45 00 00       	call   0x40df8c
409a73:	59                   	pop    %ecx
409a74:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409a78:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409a7b:	e8 2a 00 00 00       	call   0x409aaa
409a80:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409a87:	e8 12 00 00 00       	call   0x409a9e
409a8c:	8b 4d f0             	mov    -0x10(%ebp),%ecx