406717:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40671a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40671d:	c3                   	ret
40671e:	8b 65 e8             	mov    -0x18(%ebp),%esp
406721:	e8 3c 08 00 00       	call   0x406f62
406726:	cc                   	int3
406727:	8b ff                	mov    %edi,%edi
406729:	55                   	push   %ebp
40672a:	8b ec                	mov    %esp,%ebp
40672c:	6a ff                	push   $0xffffffff
40672e:	68 16 ef 40 00       	push   $0x40ef16
406733:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406739:	50                   	push   %eax
40673a:	83 ec 18             	sub    $0x18,%esp
40673d:	a1 14 60 41 00       	mov    0x416014,%eax
406742:	33 c5                	xor    %ebp,%eax
406744:	50                   	push   %eax
406745:	8d 45 f4             	lea    -0xc(%ebp),%eax
406748:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40674e:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
406752:	75 12                	jne    0x406766
406754:	e8 ae cb ff ff       	call   0x403307
406759:	84 c0                	test   %al,%al
40675b:	74 09                	je     0x406766
40675d:	ff 75 08             	push   0x8(%ebp)
406760:	e8 a3 00 00 00       	call   0x406808
406765:	59                   	pop    %ecx
406766:	8d 45 0c             	lea    0xc(%ebp),%eax
406769:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
40676d:	89 45 dc             	mov    %eax,-0x24(%ebp)
406770:	8d 45 10             	lea    0x10(%ebp),%eax
406773:	89 45 e0             	mov    %eax,-0x20(%ebp)
406776:	8d 45 f3             	lea    -0xd(%ebp),%eax
406779:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40677c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406780:	8d 4d f2             	lea    -0xe(%ebp),%ecx
406783:	6a 02                	push   $0x2
406785:	58                   	pop    %eax
406786:	89 45 ec             	mov    %eax,-0x14(%ebp)
406789:	89 45 e8             	mov    %eax,-0x18(%ebp)
40678c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40678f:	50                   	push   %eax
406790:	8d 45 dc             	lea    -0x24(%ebp),%eax
406793:	50                   	push   %eax
406794:	8d 45 e8             	lea    -0x18(%ebp),%eax
406797:	50                   	push   %eax
406798:	e8 55 fe ff ff       	call   0x4065f2
40679d:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4067a1:	74 0d                	je     0x4067b0
4067a3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4067a6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4067ad:	59                   	pop    %ecx
4067ae:	c9                   	leave
4067af:	c3                   	ret
4067b0:	ff 75 08             	push   0x8(%ebp)
4067b3:	e8 06 00 00 00       	call   0x4067be
4067b8:	cc                   	int3
4067b9:	cc                   	int3
4067ba:	cc                   	int3
4067bb:	cc                   	int3
4067bc:	cc                   	int3
4067bd:	cc                   	int3
4067be:	8b ff                	mov    %edi,%edi
4067c0:	55                   	push   %ebp
4067c1:	8b ec                	mov    %esp,%ebp
4067c3:	e8 27 00 00 00       	call   0x4067ef
4067c8:	84 c0                	test   %al,%al
4067ca:	74 10                	je     0x4067dc
4067cc:	ff 75 08             	push   0x8(%ebp)
4067cf:	ff 15 48 f0 40 00    	call   *0x40f048
4067d5:	50                   	push   %eax
4067d6:	ff 15 4c f0 40 00    	call   *0x40f04c
4067dc:	ff 75 08             	push   0x8(%ebp)
4067df:	e8 24 00 00 00       	call   0x406808
4067e4:	59                   	pop    %ecx
4067e5:	ff 75 08             	push   0x8(%ebp)
4067e8:	ff 15 98 f0 40 00    	call   *0x40f098
4067ee:	cc                   	int3
4067ef:	e8 b2 27 00 00       	call   0x408fa6
4067f4:	83 f8 01             	cmp    $0x1,%eax
4067f7:	74 0c                	je     0x406805
4067f9:	e8 83 27 00 00       	call   0x408f81
4067fe:	f6 d8                	neg    %al
406800:	1a c0                	sbb    %al,%al
406802:	fe c0                	inc    %al
406804:	c3                   	ret
406805:	32 c0                	xor    %al,%al
406807:	c3                   	ret
406808:	8b ff                	mov    %edi,%edi
40680a:	55                   	push   %ebp
40680b:	8b ec                	mov    %esp,%ebp
40680d:	6a ff                	push   $0xffffffff
40680f:	68 33 ef 40 00       	push   $0x40ef33
406814:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40681a:	50                   	push   %eax
40681b:	51                   	push   %ecx
40681c:	56                   	push   %esi
40681d:	a1 14 60 41 00       	mov    0x416014,%eax
406822:	33 c5                	xor    %ebp,%eax
406824:	50                   	push   %eax
406825:	8d 45 f4             	lea    -0xc(%ebp),%eax
406828:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40682e:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
406832:	8d 45 f0             	lea    -0x10(%ebp),%eax
406835:	50                   	push   %eax
406836:	68 64 fd 40 00       	push   $0x40fd64
40683b:	6a 00                	push   $0x0
40683d:	ff 15 9c f0 40 00    	call   *0x40f09c
406843:	85 c0                	test   %eax,%eax
406845:	74 21                	je     0x406868
406847:	68 7c fd 40 00       	push   $0x40fd7c
40684c:	ff 75 f0             	push   -0x10(%ebp)
40684f:	ff 15 88 f0 40 00    	call   *0x40f088
406855:	8b f0                	mov    %eax,%esi
406857:	85 f6                	test   %esi,%esi
406859:	74 0d                	je     0x406868
40685b:	ff 75 08             	push   0x8(%ebp)
40685e:	8b ce                	mov    %esi,%ecx
406860:	ff 15 18 f1 40 00    	call   *0x40f118
406866:	ff d6                	call   *%esi
406868:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40686c:	74 09                	je     0x406877
40686e:	ff 75 f0             	push   -0x10(%ebp)
406871:	ff 15 84 f0 40 00    	call   *0x40f084
406877:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40687a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406881:	59                   	pop    %ecx
406882:	5e                   	pop    %esi
406883:	c9                   	leave
406884:	c3                   	ret
406885:	cc                   	int3
406886:	cc                   	int3
406887:	cc                   	int3
406888:	cc                   	int3
406889:	cc                   	int3
40688a:	8b ff                	mov    %edi,%edi
40688c:	55                   	push   %ebp
40688d:	8b ec                	mov    %esp,%ebp
40688f:	8b 45 08             	mov    0x8(%ebp),%eax
406892:	a3 c0 6e 41 00       	mov    %eax,0x416ec0
406897:	5d                   	pop    %ebp
406898:	c3                   	ret
406899:	6a 01                	push   $0x1
40689b:	6a 02                	push   $0x2
40689d:	6a 00                	push   $0x0
40689f:	e8 83 fe ff ff       	call   0x406727
4068a4:	83 c4 0c             	add    $0xc,%esp
4068a7:	c3                   	ret
4068a8:	6a 01                	push   $0x1
4068aa:	6a 00                	push   $0x0
4068ac:	6a 00                	push   $0x0
4068ae:	e8 74 fe ff ff       	call   0x406727
4068b3:	83 c4 0c             	add    $0xc,%esp
4068b6:	c3                   	ret
4068b7:	8b ff                	mov    %edi,%edi
4068b9:	55                   	push   %ebp
4068ba:	8b ec                	mov    %esp,%ebp
4068bc:	6a 00                	push   $0x0
4068be:	6a 02                	push   $0x2
4068c0:	ff 75 08             	push   0x8(%ebp)
4068c3:	e8 5f fe ff ff       	call   0x406727
4068c8:	83 c4 0c             	add    $0xc,%esp
4068cb:	5d                   	pop    %ebp
4068cc:	c3                   	ret
4068cd:	8b ff                	mov    %edi,%edi
4068cf:	55                   	push   %ebp
4068d0:	8b ec                	mov    %esp,%ebp
4068d2:	a1 c0 6e 41 00       	mov    0x416ec0,%eax
4068d7:	3b 05 14 60 41 00    	cmp    0x416014,%eax
4068dd:	0f 85 7f 06 00 00    	jne    0x406f62
4068e3:	ff 75 08             	push   0x8(%ebp)
4068e6:	e8 c0 f6 ff ff       	call   0x405fab
4068eb:	59                   	pop    %ecx
4068ec:	a3 c0 6e 41 00       	mov    %eax,0x416ec0
4068f1:	5d                   	pop    %ebp
4068f2:	c3                   	ret
4068f3:	8b ff                	mov    %edi,%edi
4068f5:	55                   	push   %ebp
4068f6:	8b ec                	mov    %esp,%ebp
4068f8:	6a 00                	push   $0x0
4068fa:	6a 00                	push   $0x0
4068fc:	ff 75 08             	push   0x8(%ebp)
4068ff:	e8 23 fe ff ff       	call   0x406727
406904:	83 c4 0c             	add    $0xc,%esp
406907:	5d                   	pop    %ebp
406908:	c3                   	ret
406909:	8b ff                	mov    %edi,%edi
40690b:	55                   	push   %ebp
40690c:	8b ec                	mov    %esp,%ebp
40690e:	8b 45 08             	mov    0x8(%ebp),%eax
406911:	3d 00 40 00 00       	cmp    $0x4000,%eax
406916:	74 23                	je     0x40693b
406918:	3d 00 80 00 00       	cmp    $0x8000,%eax
40691d:	74 1c                	je     0x40693b
40691f:	3d 00 00 01 00       	cmp    $0x10000,%eax
406924:	74 15                	je     0x40693b
406926:	e8 25 10 00 00       	call   0x407950
40692b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406931:	e8 e6 f3 ff ff       	call   0x405d1c
406936:	6a 16                	push   $0x16
406938:	58                   	pop    %eax
406939:	5d                   	pop    %ebp
40693a:	c3                   	ret
40693b:	b9 70 70 41 00       	mov    $0x417070,%ecx
406940:	87 01                	xchg   %eax,(%ecx)
406942:	33 c0                	xor    %eax,%eax
406944:	5d                   	pop    %ebp
406945:	c3                   	ret
406946:	6a 0c                	push   $0xc
406948:	68 70 4a 41 00       	push   $0x414a70
40694d:	e8 be ca ff ff       	call   0x403410
406952:	8b 45 08             	mov    0x8(%ebp),%eax
406955:	ff 30                	push   (%eax)
406957:	e8 70 0e 00 00       	call   0x4077cc
40695c:	59                   	pop    %ecx
40695d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406961:	be ec 6e 41 00       	mov    $0x416eec,%esi
406966:	bf 58 60 41 00       	mov    $0x416058,%edi
40696b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40696e:	81 fe f0 6e 41 00    	cmp    $0x416ef0,%esi
406974:	74 14                	je     0x40698a
406976:	39 3e                	cmp    %edi,(%esi)
406978:	74 0b                	je     0x406985
40697a:	57                   	push   %edi
40697b:	56                   	push   %esi
40697c:	e8 be 31 00 00       	call   0x409b3f
406981:	59                   	pop    %ecx
406982:	59                   	pop    %ecx
406983:	89 06                	mov    %eax,(%esi)
406985:	83 c6 04             	add    $0x4,%esi
406988:	eb e1                	jmp    0x40696b
40698a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406991:	e8 12 00 00 00       	call   0x4069a8
406996:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406999:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4069a0:	59                   	pop    %ecx
4069a1:	5f                   	pop    %edi
4069a2:	5e                   	pop    %esi
4069a3:	5b                   	pop    %ebx
4069a4:	c9                   	leave
4069a5:	c2 0c 00             	ret    $0xc
4069a8:	8b 45 10             	mov    0x10(%ebp),%eax
4069ab:	ff 30                	push   (%eax)
4069ad:	e8 62 0e 00 00       	call   0x407814
4069b2:	59                   	pop    %ecx
4069b3:	c3                   	ret
4069b4:	33 c0                	xor    %eax,%eax
4069b6:	b9 c8 6e 41 00       	mov    $0x416ec8,%ecx
4069bb:	40                   	inc    %eax
4069bc:	87 01                	xchg   %eax,(%ecx)
4069be:	c3                   	ret
4069bf:	8b ff                	mov    %edi,%edi
4069c1:	55                   	push   %ebp
4069c2:	8b ec                	mov    %esp,%ebp
4069c4:	83 ec 0c             	sub    $0xc,%esp
4069c7:	6a 04                	push   $0x4
4069c9:	58                   	pop    %eax
4069ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4069cd:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4069d0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4069d3:	8d 45 f8             	lea    -0x8(%ebp),%eax
4069d6:	50                   	push   %eax
4069d7:	8d 45 ff             	lea    -0x1(%ebp),%eax
4069da:	50                   	push   %eax
4069db:	8d 45 f4             	lea    -0xc(%ebp),%eax
4069de:	50                   	push   %eax
4069df:	e8 62 ff ff ff       	call   0x406946
4069e4:	c9                   	leave
4069e5:	c3                   	ret
4069e6:	8b ff                	mov    %edi,%edi
4069e8:	55                   	push   %ebp
4069e9:	8b ec                	mov    %esp,%ebp
4069eb:	56                   	push   %esi
4069ec:	e8 af 0a 00 00       	call   0x4074a0
4069f1:	8b 55 08             	mov    0x8(%ebp),%edx
4069f4:	8b f0                	mov    %eax,%esi
4069f6:	6a 00                	push   $0x0
4069f8:	58                   	pop    %eax
4069f9:	8b 8e 50 03 00 00    	mov    0x350(%esi),%ecx
4069ff:	f6 c1 02             	test   $0x2,%cl
406a02:	0f 94 c0             	sete   %al
406a05:	40                   	inc    %eax
406a06:	83 fa ff             	cmp    $0xffffffff,%edx
406a09:	74 33                	je     0x406a3e
406a0b:	85 d2                	test   %edx,%edx
406a0d:	74 36                	je     0x406a45
406a0f:	83 fa 01             	cmp    $0x1,%edx
406a12:	74 1f                	je     0x406a33
406a14:	83 fa 02             	cmp    $0x2,%edx
406a17:	74 15                	je     0x406a2e
406a19:	e8 32 0f 00 00       	call   0x407950
406a1e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406a24:	e8 f3 f2 ff ff       	call   0x405d1c
406a29:	83 c8 ff             	or     $0xffffffff,%eax
406a2c:	eb 17                	jmp    0x406a45
406a2e:	83 e1 fd             	and    $0xfffffffd,%ecx
406a31:	eb 03                	jmp    0x406a36
406a33:	83 c9 02             	or     $0x2,%ecx
406a36:	89 8e 50 03 00 00    	mov    %ecx,0x350(%esi)
406a3c:	eb 07                	jmp    0x406a45
406a3e:	83 0d a0 66 41 00 ff 	orl    $0xffffffff,0x4166a0
406a45:	5e                   	pop    %esi
406a46:	5d                   	pop    %ebp
406a47:	c3                   	ret
406a48:	a1 cc 6e 41 00       	mov    0x416ecc,%eax
406a4d:	90                   	nop
406a4e:	c3                   	ret
406a4f:	8b ff                	mov    %edi,%edi
406a51:	55                   	push   %ebp
406a52:	8b ec                	mov    %esp,%ebp
406a54:	8b 45 08             	mov    0x8(%ebp),%eax
406a57:	85 c0                	test   %eax,%eax
406a59:	74 1a                	je     0x406a75
406a5b:	83 f8 01             	cmp    $0x1,%eax
406a5e:	74 15                	je     0x406a75
406a60:	e8 eb 0e 00 00       	call   0x407950
406a65:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406a6b:	e8 ac f2 ff ff       	call   0x405d1c
406a70:	83 c8 ff             	or     $0xffffffff,%eax
406a73:	5d                   	pop    %ebp
406a74:	c3                   	ret
406a75:	b9 cc 6e 41 00       	mov    $0x416ecc,%ecx
406a7a:	87 01                	xchg   %eax,(%ecx)
406a7c:	5d                   	pop    %ebp
406a7d:	c3                   	ret
406a7e:	b8 d0 6e 41 00       	mov    $0x416ed0,%eax
406a83:	c3                   	ret
406a84:	6a 0c                	push   $0xc
406a86:	68 d8 4a 41 00       	push   $0x414ad8
406a8b:	e8 80 c9 ff ff       	call   0x403410
406a90:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406a94:	8b 45 08             	mov    0x8(%ebp),%eax
406a97:	ff 30                	push   (%eax)
406a99:	e8 2e 0d 00 00       	call   0x4077cc
406a9e:	59                   	pop    %ecx
406a9f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406aa3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406aa6:	e8 91 01 00 00       	call   0x406c3c
406aab:	8b f0                	mov    %eax,%esi
406aad:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406ab0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406ab7:	e8 17 00 00 00       	call   0x406ad3
406abc:	8b c6                	mov    %esi,%eax
406abe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406ac1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406ac8:	59                   	pop    %ecx
406ac9:	5f                   	pop    %edi
406aca:	5e                   	pop    %esi
406acb:	5b                   	pop    %ebx
406acc:	c9                   	leave