40775c:	e8 90 fe ff ff       	call   0x4075f1
407761:	85 c0                	test   %eax,%eax
407763:	75 09                	jne    0x40776e
407765:	50                   	push   %eax
407766:	e8 06 00 00 00       	call   0x407771
40776b:	59                   	pop    %ecx
40776c:	eb eb                	jmp    0x407759
40776e:	b0 01                	mov    $0x1,%al
407770:	c3                   	ret
407771:	a1 50 60 41 00       	mov    0x416050,%eax
407776:	83 f8 ff             	cmp    $0xffffffff,%eax
407779:	74 0d                	je     0x407788
40777b:	50                   	push   %eax
40777c:	e8 4a 26 00 00       	call   0x409dcb
407781:	83 0d 50 60 41 00 ff 	orl    $0xffffffff,0x416050
407788:	b0 01                	mov    $0x1,%al
40778a:	c3                   	ret
40778b:	8b ff                	mov    %edi,%edi
40778d:	56                   	push   %esi
40778e:	57                   	push   %edi
40778f:	bf f0 6e 41 00       	mov    $0x416ef0,%edi
407794:	33 f6                	xor    %esi,%esi
407796:	6a 00                	push   $0x0
407798:	68 a0 0f 00 00       	push   $0xfa0
40779d:	57                   	push   %edi
40779e:	e8 e8 26 00 00       	call   0x409e8b
4077a3:	85 c0                	test   %eax,%eax
4077a5:	74 18                	je     0x4077bf
4077a7:	ff 05 40 70 41 00    	incl   0x417040
4077ad:	83 c6 18             	add    $0x18,%esi
4077b0:	83 c7 18             	add    $0x18,%edi
4077b3:	81 fe 50 01 00 00    	cmp    $0x150,%esi
4077b9:	72 db                	jb     0x407796
4077bb:	b0 01                	mov    $0x1,%al
4077bd:	eb 0a                	jmp    0x4077c9
4077bf:	6a 00                	push   $0x0
4077c1:	e8 1d 00 00 00       	call   0x4077e3
4077c6:	59                   	pop    %ecx
4077c7:	32 c0                	xor    %al,%al
4077c9:	5f                   	pop    %edi
4077ca:	5e                   	pop    %esi
4077cb:	c3                   	ret
4077cc:	8b ff                	mov    %edi,%edi
4077ce:	55                   	push   %ebp
4077cf:	8b ec                	mov    %esp,%ebp
4077d1:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
4077d5:	05 f0 6e 41 00       	add    $0x416ef0,%eax
4077da:	50                   	push   %eax
4077db:	ff 15 64 f0 40 00    	call   *0x40f064
4077e1:	5d                   	pop    %ebp
4077e2:	c3                   	ret
4077e3:	8b ff                	mov    %edi,%edi
4077e5:	56                   	push   %esi
4077e6:	8b 35 40 70 41 00    	mov    0x417040,%esi
4077ec:	85 f6                	test   %esi,%esi
4077ee:	74 20                	je     0x407810
4077f0:	6b c6 18             	imul   $0x18,%esi,%eax
4077f3:	57                   	push   %edi
4077f4:	8d b8 d8 6e 41 00    	lea    0x416ed8(%eax),%edi
4077fa:	57                   	push   %edi
4077fb:	ff 15 6c f0 40 00    	call   *0x40f06c
407801:	ff 0d 40 70 41 00    	decl   0x417040
407807:	83 ef 18             	sub    $0x18,%edi
40780a:	83 ee 01             	sub    $0x1,%esi
40780d:	75 eb                	jne    0x4077fa
40780f:	5f                   	pop    %edi
407810:	b0 01                	mov    $0x1,%al
407812:	5e                   	pop    %esi
407813:	c3                   	ret
407814:	8b ff                	mov    %edi,%edi
407816:	55                   	push   %ebp
407817:	8b ec                	mov    %esp,%ebp
407819:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
40781d:	05 f0 6e 41 00       	add    $0x416ef0,%eax
407822:	50                   	push   %eax
407823:	ff 15 68 f0 40 00    	call   *0x40f068
407829:	5d                   	pop    %ebp
40782a:	c3                   	ret
40782b:	8b ff                	mov    %edi,%edi
40782d:	55                   	push   %ebp
40782e:	8b ec                	mov    %esp,%ebp
407830:	56                   	push   %esi
407831:	8b 75 08             	mov    0x8(%ebp),%esi
407834:	83 fe e0             	cmp    $0xffffffe0,%esi
407837:	77 30                	ja     0x407869
407839:	85 f6                	test   %esi,%esi
40783b:	75 17                	jne    0x407854
40783d:	46                   	inc    %esi
40783e:	eb 14                	jmp    0x407854
407840:	e8 03 f2 ff ff       	call   0x406a48
407845:	85 c0                	test   %eax,%eax
407847:	74 20                	je     0x407869
407849:	56                   	push   %esi
40784a:	e8 58 e5 ff ff       	call   0x405da7
40784f:	59                   	pop    %ecx
407850:	85 c0                	test   %eax,%eax
407852:	74 15                	je     0x407869
407854:	56                   	push   %esi
407855:	6a 00                	push   $0x0
407857:	ff 35 6c 73 41 00    	push   0x41736c
40785d:	ff 15 a0 f0 40 00    	call   *0x40f0a0
407863:	85 c0                	test   %eax,%eax
407865:	74 d9                	je     0x407840
407867:	eb 0d                	jmp    0x407876
407869:	e8 e2 00 00 00       	call   0x407950
40786e:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407874:	33 c0                	xor    %eax,%eax
407876:	5e                   	pop    %esi
407877:	5d                   	pop    %ebp
407878:	c3                   	ret
407879:	8b ff                	mov    %edi,%edi
40787b:	55                   	push   %ebp
40787c:	8b ec                	mov    %esp,%ebp
40787e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407882:	74 2d                	je     0x4078b1
407884:	ff 75 08             	push   0x8(%ebp)
407887:	6a 00                	push   $0x0
407889:	ff 35 6c 73 41 00    	push   0x41736c
40788f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
407895:	85 c0                	test   %eax,%eax
407897:	75 18                	jne    0x4078b1
407899:	56                   	push   %esi
40789a:	ff 15 58 f0 40 00    	call   *0x40f058
4078a0:	50                   	push   %eax
4078a1:	e8 0d 00 00 00       	call   0x4078b3
4078a6:	59                   	pop    %ecx
4078a7:	8b f0                	mov    %eax,%esi
4078a9:	e8 a2 00 00 00       	call   0x407950
4078ae:	89 30                	mov    %esi,(%eax)
4078b0:	5e                   	pop    %esi
4078b1:	5d                   	pop    %ebp
4078b2:	c3                   	ret
4078b3:	8b ff                	mov    %edi,%edi
4078b5:	55                   	push   %ebp
4078b6:	8b ec                	mov    %esp,%ebp
4078b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4078bb:	33 c0                	xor    %eax,%eax
4078bd:	3b 0c c5 d0 02 41 00 	cmp    0x4102d0(,%eax,8),%ecx
4078c4:	74 27                	je     0x4078ed
4078c6:	40                   	inc    %eax
4078c7:	83 f8 2d             	cmp    $0x2d,%eax
4078ca:	72 f1                	jb     0x4078bd
4078cc:	8d 41 ed             	lea    -0x13(%ecx),%eax
4078cf:	83 f8 11             	cmp    $0x11,%eax
4078d2:	77 05                	ja     0x4078d9
4078d4:	6a 0d                	push   $0xd
4078d6:	58                   	pop    %eax
4078d7:	5d                   	pop    %ebp
4078d8:	c3                   	ret
4078d9:	8d 81 44 ff ff ff    	lea    -0xbc(%ecx),%eax
4078df:	6a 0e                	push   $0xe
4078e1:	59                   	pop    %ecx
4078e2:	3b c8                	cmp    %eax,%ecx
4078e4:	1b c0                	sbb    %eax,%eax
4078e6:	23 c1                	and    %ecx,%eax
4078e8:	83 c0 08             	add    $0x8,%eax
4078eb:	5d                   	pop    %ebp
4078ec:	c3                   	ret
4078ed:	8b 04 c5 d4 02 41 00 	mov    0x4102d4(,%eax,8),%eax
4078f4:	5d                   	pop    %ebp
4078f5:	c3                   	ret
4078f6:	8b ff                	mov    %edi,%edi
4078f8:	55                   	push   %ebp
4078f9:	8b ec                	mov    %esp,%ebp
4078fb:	56                   	push   %esi
4078fc:	e8 3c 00 00 00       	call   0x40793d
407901:	8b 4d 08             	mov    0x8(%ebp),%ecx
407904:	51                   	push   %ecx
407905:	89 08                	mov    %ecx,(%eax)
407907:	e8 a7 ff ff ff       	call   0x4078b3
40790c:	59                   	pop    %ecx
40790d:	8b f0                	mov    %eax,%esi
40790f:	e8 3c 00 00 00       	call   0x407950
407914:	89 30                	mov    %esi,(%eax)
407916:	5e                   	pop    %esi
407917:	5d                   	pop    %ebp
407918:	c3                   	ret
407919:	8b ff                	mov    %edi,%edi
40791b:	55                   	push   %ebp
40791c:	8b ec                	mov    %esp,%ebp
40791e:	8b 45 08             	mov    0x8(%ebp),%eax
407921:	56                   	push   %esi
407922:	8b 75 0c             	mov    0xc(%ebp),%esi
407925:	50                   	push   %eax
407926:	c6 46 24 01          	movb   $0x1,0x24(%esi)
40792a:	89 46 20             	mov    %eax,0x20(%esi)
40792d:	e8 81 ff ff ff       	call   0x4078b3
407932:	59                   	pop    %ecx
407933:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
407937:	89 46 18             	mov    %eax,0x18(%esi)
40793a:	5e                   	pop    %esi
40793b:	5d                   	pop    %ebp
40793c:	c3                   	ret
40793d:	e8 af fc ff ff       	call   0x4075f1
407942:	85 c0                	test   %eax,%eax
407944:	75 06                	jne    0x40794c
407946:	b8 20 61 41 00       	mov    $0x416120,%eax
40794b:	c3                   	ret
40794c:	83 c0 14             	add    $0x14,%eax
40794f:	c3                   	ret
407950:	e8 9c fc ff ff       	call   0x4075f1
407955:	85 c0                	test   %eax,%eax
407957:	75 06                	jne    0x40795f
407959:	b8 1c 61 41 00       	mov    $0x41611c,%eax
40795e:	c3                   	ret
40795f:	83 c0 10             	add    $0x10,%eax
407962:	c3                   	ret
407963:	8b ff                	mov    %edi,%edi
407965:	55                   	push   %ebp
407966:	8b ec                	mov    %esp,%ebp
407968:	56                   	push   %esi
407969:	8b 75 08             	mov    0x8(%ebp),%esi
40796c:	85 f6                	test   %esi,%esi
40796e:	74 0c                	je     0x40797c
407970:	6a e0                	push   $0xffffffe0
407972:	33 d2                	xor    %edx,%edx
407974:	58                   	pop    %eax
407975:	f7 f6                	div    %esi
407977:	3b 45 0c             	cmp    0xc(%ebp),%eax
40797a:	72 34                	jb     0x4079b0
40797c:	0f af 75 0c          	imul   0xc(%ebp),%esi
407980:	85 f6                	test   %esi,%esi
407982:	75 17                	jne    0x40799b
407984:	46                   	inc    %esi
407985:	eb 14                	jmp    0x40799b
407987:	e8 bc f0 ff ff       	call   0x406a48
40798c:	85 c0                	test   %eax,%eax
40798e:	74 20                	je     0x4079b0
407990:	56                   	push   %esi
407991:	e8 11 e4 ff ff       	call   0x405da7
407996:	59                   	pop    %ecx
407997:	85 c0                	test   %eax,%eax
407999:	74 15                	je     0x4079b0
40799b:	56                   	push   %esi
40799c:	6a 08                	push   $0x8
40799e:	ff 35 6c 73 41 00    	push   0x41736c
4079a4:	ff 15 a0 f0 40 00    	call   *0x40f0a0
4079aa:	85 c0                	test   %eax,%eax
4079ac:	74 d9                	je     0x407987
4079ae:	eb 0d                	jmp    0x4079bd
4079b0:	e8 9b ff ff ff       	call   0x407950
4079b5:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4079bb:	33 c0                	xor    %eax,%eax
4079bd:	5e                   	pop    %esi
4079be:	5d                   	pop    %ebp
4079bf:	c3                   	ret
4079c0:	8b ff                	mov    %edi,%edi
4079c2:	55                   	push   %ebp
4079c3:	8b ec                	mov    %esp,%ebp
4079c5:	8b 45 0c             	mov    0xc(%ebp),%eax
4079c8:	3b 45 08             	cmp    0x8(%ebp),%eax
4079cb:	76 05                	jbe    0x4079d2
4079cd:	83 c8 ff             	or     $0xffffffff,%eax
4079d0:	5d                   	pop    %ebp
4079d1:	c3                   	ret
4079d2:	1b c0                	sbb    %eax,%eax
4079d4:	f7 d8                	neg    %eax
4079d6:	5d                   	pop    %ebp
4079d7:	c3                   	ret
4079d8:	8b ff                	mov    %edi,%edi
4079da:	55                   	push   %ebp
4079db:	8b ec                	mov    %esp,%ebp
4079dd:	56                   	push   %esi
4079de:	8b 75 08             	mov    0x8(%ebp),%esi
4079e1:	57                   	push   %edi
4079e2:	85 f6                	test   %esi,%esi
4079e4:	75 1a                	jne    0x407a00
4079e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4079e9:	8b ce                	mov    %esi,%ecx
4079eb:	e8 3a 07 00 00       	call   0x40812a
4079f0:	33 ff                	xor    %edi,%edi
4079f2:	89 7e 08             	mov    %edi,0x8(%esi)
4079f5:	89 7e 0c             	mov    %edi,0xc(%esi)
4079f8:	89 7e 10             	mov    %edi,0x10(%esi)
4079fb:	e9 84 00 00 00       	jmp    0x407a84
407a00:	33 ff                	xor    %edi,%edi
407a02:	80 3e 00             	cmpb   $0x0,(%esi)
407a05:	75 1f                	jne    0x407a26
407a07:	8b 75 0c             	mov    0xc(%ebp),%esi
407a0a:	39 7e 0c             	cmp    %edi,0xc(%esi)
407a0d:	75 0d                	jne    0x407a1c
407a0f:	6a 01                	push   $0x1
407a11:	8b ce                	mov    %esi,%ecx
407a13:	e8 68 07 00 00       	call   0x408180
407a18:	85 c0                	test   %eax,%eax
407a1a:	75 6a                	jne    0x407a86
407a1c:	8b 46 08             	mov    0x8(%esi),%eax
407a1f:	33 c9                	xor    %ecx,%ecx
407a21:	66 89 08             	mov    %cx,(%eax)
407a24:	eb d2                	jmp    0x4079f8
407a26:	57                   	push   %edi
407a27:	57                   	push   %edi
407a28:	6a ff                	push   $0xffffffff
407a2a:	56                   	push   %esi
407a2b:	6a 09                	push   $0x9
407a2d:	ff 75 14             	push   0x14(%ebp)
407a30:	e8 4f 13 00 00       	call   0x408d84
407a35:	83 c4 18             	add    $0x18,%esp
407a38:	85 c0                	test   %eax,%eax
407a3a:	75 16                	jne    0x407a52
407a3c:	ff 15 58 f0 40 00    	call   *0x40f058
407a42:	50                   	push   %eax
407a43:	e8 ae fe ff ff       	call   0x4078f6
407a48:	59                   	pop    %ecx
407a49:	e8 02 ff ff ff       	call   0x407950
407a4e:	8b 00                	mov    (%eax),%eax
407a50:	eb 34                	jmp    0x407a86
407a52:	8b 7d 0c             	mov    0xc(%ebp),%edi
407a55:	3b 47 0c             	cmp    0xc(%edi),%eax
407a58:	76 0c                	jbe    0x407a66
407a5a:	50                   	push   %eax
407a5b:	8b cf                	mov    %edi,%ecx
407a5d:	e8 1e 07 00 00       	call   0x408180
407a62:	85 c0                	test   %eax,%eax
407a64:	75 20                	jne    0x407a86
407a66:	ff 77 0c             	push   0xc(%edi)
407a69:	ff 77 08             	push   0x8(%edi)
407a6c:	6a ff                	push   $0xffffffff
407a6e:	56                   	push   %esi
407a6f:	6a 09                	push   $0x9
407a71:	ff 75 14             	push   0x14(%ebp)
407a74:	e8 0b 13 00 00       	call   0x408d84
407a79:	83 c4 18             	add    $0x18,%esp
407a7c:	85 c0                	test   %eax,%eax
407a7e:	74 bc                	je     0x407a3c
407a80:	48                   	dec    %eax
407a81:	89 47 10             	mov    %eax,0x10(%edi)
407a84:	33 c0                	xor    %eax,%eax
407a86:	5f                   	pop    %edi
407a87:	5e                   	pop    %esi
407a88:	5d                   	pop    %ebp
407a89:	c3                   	ret
407a8a:	8b ff                	mov    %edi,%edi
407a8c:	55                   	push   %ebp
407a8d:	8b ec                	mov    %esp,%ebp
407a8f:	53                   	push   %ebx
407a90:	56                   	push   %esi
407a91:	8b 75 08             	mov    0x8(%ebp),%esi
407a94:	85 f6                	test   %esi,%esi
407a96:	75 1c                	jne    0x407ab4
407a98:	8b 75 0c             	mov    0xc(%ebp),%esi
407a9b:	8b ce                	mov    %esi,%ecx
407a9d:	e8 88 06 00 00       	call   0x40812a
407aa2:	33 db                	xor    %ebx,%ebx
407aa4:	89 5e 08             	mov    %ebx,0x8(%esi)
407aa7:	89 5e 0c             	mov    %ebx,0xc(%esi)
407aaa:	89 5e 10             	mov    %ebx,0x10(%esi)
407aad:	33 c0                	xor    %eax,%eax
407aaf:	e9 98 00 00 00       	jmp    0x407b4c
407ab4:	33 db                	xor    %ebx,%ebx