4098f4:	75 ea                	jne    0x4098e0
4098f6:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
4098fc:	8b 9d bc fd ff ff    	mov    -0x244(%ebp),%ebx
409902:	e9 c1 00 00 00       	jmp    0x4099c8
409907:	83 f8 03             	cmp    $0x3,%eax
40990a:	0f 85 c9 00 00 00    	jne    0x4099d9
409910:	8b b5 f4 fd ff ff    	mov    -0x20c(%ebp),%esi
409916:	33 ff                	xor    %edi,%edi
409918:	8b d6                	mov    %esi,%edx
40991a:	89 bd 98 fd ff ff    	mov    %edi,-0x268(%ebp)
409920:	89 bd 9c fd ff ff    	mov    %edi,-0x264(%ebp)
409926:	8d 4a 02             	lea    0x2(%edx),%ecx
409929:	66 8b 02             	mov    (%edx),%ax
40992c:	83 c2 02             	add    $0x2,%edx
40992f:	66 3b c7             	cmp    %di,%ax
409932:	75 f5                	jne    0x409929
409934:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
40993a:	2b d1                	sub    %ecx,%edx
40993c:	50                   	push   %eax
40993d:	51                   	push   %ecx
40993e:	d1 fa                	sar    $1,%edx
409940:	8b ce                	mov    %esi,%ecx
409942:	e8 aa 1f 00 00       	call   0x40b8f1
409947:	8b f0                	mov    %eax,%esi
409949:	89 b5 d4 fd ff ff    	mov    %esi,-0x22c(%ebp)
40994f:	85 f6                	test   %esi,%esi
409951:	0f 85 cb 01 00 00    	jne    0x409b22
409957:	39 bd 9c fd ff ff    	cmp    %edi,-0x264(%ebp)
40995d:	0f 87 bc 01 00 00    	ja     0x409b1f
409963:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
409969:	72 0b                	jb     0x409976
40996b:	3d ff 00 00 00       	cmp    $0xff,%eax
409970:	0f 87 a9 01 00 00    	ja     0x409b1f
409976:	88 85 df fd ff ff    	mov    %al,-0x221(%ebp)
40997c:	33 c0                	xor    %eax,%eax
40997e:	40                   	inc    %eax
40997f:	50                   	push   %eax
409980:	6a 40                	push   $0x40
409982:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
409988:	ff 15 64 f0 40 00    	call   *0x40f064
40998e:	8b f8                	mov    %eax,%edi
409990:	85 ff                	test   %edi,%edi
409992:	0f 84 a3 f8 ff ff    	je     0x40923b
409998:	8d 85 df fd ff ff    	lea    -0x221(%ebp),%eax
40999e:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
4099a4:	50                   	push   %eax
4099a5:	57                   	push   %edi
4099a6:	e8 58 ce ff ff       	call   0x406803
4099ab:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4099b1:	83 c4 0c             	add    $0xc,%esp
4099b4:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
4099ba:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
4099c0:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)
4099c4:	89 7c 11 08          	mov    %edi,0x8(%ecx,%edx,1)
4099c8:	8b bd f8 fd ff ff    	mov    -0x208(%ebp),%edi
4099ce:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
4099d4:	e9 f2 fd ff ff       	jmp    0x4097cb
4099d9:	83 f8 04             	cmp    $0x4,%eax
4099dc:	74 09                	je     0x4099e7
4099de:	83 f8 05             	cmp    $0x5,%eax
4099e1:	0f 85 d8 fd ff ff    	jne    0x4097bf
4099e7:	8b b5 f4 fd ff ff    	mov    -0x20c(%ebp),%esi
4099ed:	33 ff                	xor    %edi,%edi
4099ef:	8b d6                	mov    %esi,%edx
4099f1:	89 bd 90 fd ff ff    	mov    %edi,-0x270(%ebp)
4099f7:	89 bd 94 fd ff ff    	mov    %edi,-0x26c(%ebp)
4099fd:	8d 4a 02             	lea    0x2(%edx),%ecx
409a00:	66 8b 02             	mov    (%edx),%ax
409a03:	83 c2 02             	add    $0x2,%edx
409a06:	66 3b c7             	cmp    %di,%ax
409a09:	75 f5                	jne    0x409a00
409a0b:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
409a11:	2b d1                	sub    %ecx,%edx
409a13:	50                   	push   %eax
409a14:	51                   	push   %ecx
409a15:	d1 fa                	sar    $1,%edx
409a17:	8b ce                	mov    %esi,%ecx
409a19:	e8 d3 1e 00 00       	call   0x40b8f1
409a1e:	8b f0                	mov    %eax,%esi
409a20:	89 b5 d4 fd ff ff    	mov    %esi,-0x22c(%ebp)
409a26:	85 f6                	test   %esi,%esi
409a28:	0f 85 f4 00 00 00    	jne    0x409b22
409a2e:	6a 08                	push   $0x8
409a30:	58                   	pop    %eax
409a31:	50                   	push   %eax
409a32:	6a 40                	push   $0x40
409a34:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
409a3a:	ff 15 64 f0 40 00    	call   *0x40f064
409a40:	8b f8                	mov    %eax,%edi
409a42:	85 ff                	test   %edi,%edi
409a44:	0f 84 f1 f7 ff ff    	je     0x40923b
409a4a:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
409a50:	e9 49 ff ff ff       	jmp    0x40999e
409a55:	8b 95 ec fd ff ff    	mov    -0x214(%ebp),%edx
409a5b:	8b bd a0 fd ff ff    	mov    -0x260(%ebp),%edi
409a61:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
409a67:	6b cb 14             	imul   $0x14,%ebx,%ecx
409a6a:	0f b7 c0             	movzwl %ax,%eax
409a6d:	89 44 39 18          	mov    %eax,0x18(%ecx,%edi,1)
409a71:	89 54 39 1c          	mov    %edx,0x1c(%ecx,%edi,1)
409a75:	8b bd ac fd ff ff    	mov    -0x254(%ebp),%edi
409a7b:	6b c3 14             	imul   $0x14,%ebx,%eax
409a7e:	6b d3 14             	imul   $0x14,%ebx,%edx
409a81:	6b cb 14             	imul   $0x14,%ebx,%ecx
409a84:	8b 9d f8 fd ff ff    	mov    -0x208(%ebp),%ebx
409a8a:	89 1c 38             	mov    %ebx,(%eax,%edi,1)
409a8d:	8b df                	mov    %edi,%ebx
409a8f:	8b 85 a8 fd ff ff    	mov    -0x258(%ebp),%eax
409a95:	8b bd cc fd ff ff    	mov    -0x234(%ebp),%edi
409a9b:	89 44 1a 04          	mov    %eax,0x4(%edx,%ebx,1)
409a9f:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
409aa5:	89 44 19 08          	mov    %eax,0x8(%ecx,%ebx,1)
409aa9:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
409aaf:	40                   	inc    %eax
409ab0:	0f b7 d8             	movzwl %ax,%ebx
409ab3:	89 85 a4 fd ff ff    	mov    %eax,-0x25c(%ebp)
409ab9:	89 9d bc fd ff ff    	mov    %ebx,-0x244(%ebp)
409abf:	3b 9d b8 fd ff ff    	cmp    -0x248(%ebp),%ebx
409ac5:	73 65                	jae    0x409b2c
409ac7:	33 c9                	xor    %ecx,%ecx
409ac9:	e9 b2 f7 ff ff       	jmp    0x409280
409ace:	be 67 06 00 00       	mov    $0x667,%esi
409ad3:	b9 88 00 00 00       	mov    $0x88,%ecx
409ad8:	e9 d0 00 00 00       	jmp    0x409bad
409add:	ff 15 40 f0 40 00    	call   *0x40f040
409ae3:	b9 a0 50 40 00       	mov    $0x4050a0,%ecx
409ae8:	e9 59 f7 ff ff       	jmp    0x409246
409aed:	ff 15 40 f0 40 00    	call   *0x40f040
409af3:	b9 40 51 40 00       	mov    $0x405140,%ecx
409af8:	e9 49 f7 ff ff       	jmp    0x409246
409afd:	ba 16 02 00 00       	mov    $0x216,%edx
409b02:	b9 28 51 40 00       	mov    $0x405128,%ecx
409b07:	8b f2                	mov    %edx,%esi
409b09:	e9 3c f7 ff ff       	jmp    0x40924a
409b0e:	ba 16 02 00 00       	mov    $0x216,%edx
409b13:	b9 14 51 40 00       	mov    $0x405114,%ecx
409b18:	8b f2                	mov    %edx,%esi
409b1a:	e9 2b f7 ff ff       	jmp    0x40924a
409b1f:	6a 0d                	push   $0xd
409b21:	5e                   	pop    %esi
409b22:	b9 ab 00 00 00       	mov    $0xab,%ecx
409b27:	e9 81 00 00 00       	jmp    0x409bad
409b2c:	8b 9d a0 fd ff ff    	mov    -0x260(%ebp),%ebx
409b32:	53                   	push   %ebx
409b33:	8b 9d b4 fd ff ff    	mov    -0x24c(%ebp),%ebx
409b39:	6a 08                	push   $0x8
409b3b:	ff 33                	push   (%ebx)
409b3d:	ff 15 68 00 41 00    	call   *0x410068
409b43:	85 c0                	test   %eax,%eax
409b45:	75 21                	jne    0x409b68
409b47:	ff 15 40 f0 40 00    	call   *0x40f040
409b4d:	8b f0                	mov    %eax,%esi
409b4f:	b9 3c 45 40 00       	mov    $0x40453c,%ecx
409b54:	8b d6                	mov    %esi,%edx
409b56:	e8 25 ee ff ff       	call   0x408980
409b5b:	81 fe b7 00 00 00    	cmp    $0xb7,%esi
409b61:	75 51                	jne    0x409bb4
409b63:	8d 4e f0             	lea    -0x10(%esi),%ecx
409b66:	eb 45                	jmp    0x409bad
409b68:	6a 64                	push   $0x64
409b6a:	8d 95 d8 fd ff ff    	lea    -0x228(%ebp),%edx
409b70:	c7 85 d8 fd ff ff 3c 	movl   $0x40453c,-0x228(%ebp)
409b77:	45 40 00
409b7a:	59                   	pop    %ecx
409b7b:	e8 2f 0a 00 00       	call   0x40a5af
409b80:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
409b86:	50                   	push   %eax
409b87:	68 00 02 00 00       	push   $0x200
409b8c:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
409b92:	50                   	push   %eax
409b93:	ff 33                	push   (%ebx)
409b95:	ff 15 60 00 41 00    	call   *0x410060
409b9b:	85 c0                	test   %eax,%eax
409b9d:	74 15                	je     0x409bb4
409b9f:	83 bd 00 fe ff ff 04 	cmpl   $0x4,-0x200(%ebp)
409ba6:	75 0c                	jne    0x409bb4
409ba8:	b9 99 00 00 00       	mov    $0x99,%ecx
409bad:	33 d2                	xor    %edx,%edx
409baf:	e8 fb 09 00 00       	call   0x40a5af
409bb4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409bb7:	8b c6                	mov    %esi,%eax
409bb9:	5f                   	pop    %edi
409bba:	5e                   	pop    %esi
409bbb:	33 cd                	xor    %ebp,%ecx
409bbd:	5b                   	pop    %ebx
409bbe:	e8 5d c4 ff ff       	call   0x406020
409bc3:	c9                   	leave
409bc4:	c2 0c 00             	ret    $0xc
409bc7:	80 3d c4 eb 40 00 00 	cmpb   $0x0,0x40ebc4
409bce:	75 09                	jne    0x409bd9
409bd0:	c6 05 c4 eb 40 00 01 	movb   $0x1,0x40ebc4
409bd7:	eb 0a                	jmp    0x409be3
409bd9:	6a 03                	push   $0x3
409bdb:	33 d2                	xor    %edx,%edx
409bdd:	59                   	pop    %ecx
409bde:	e8 cc 09 00 00       	call   0x40a5af
409be3:	b8 67 06 00 00       	mov    $0x667,%eax
409be8:	c3                   	ret
409be9:	80 3d c4 eb 40 00 00 	cmpb   $0x0,0x40ebc4
409bf0:	75 09                	jne    0x409bfb
409bf2:	c6 05 c4 eb 40 00 01 	movb   $0x1,0x40ebc4
409bf9:	eb 0a                	jmp    0x409c05
409bfb:	6a 04                	push   $0x4
409bfd:	33 d2                	xor    %edx,%edx
409bff:	59                   	pop    %ecx
409c00:	e8 aa 09 00 00       	call   0x40a5af
409c05:	b8 67 06 00 00       	mov    $0x667,%eax
409c0a:	c3                   	ret
409c0b:	8b ff                	mov    %edi,%edi
409c0d:	55                   	push   %ebp
409c0e:	8b ec                	mov    %esp,%ebp
409c10:	83 ec 3c             	sub    $0x3c,%esp
409c13:	53                   	push   %ebx
409c14:	33 c0                	xor    %eax,%eax
409c16:	89 55 d0             	mov    %edx,-0x30(%ebp)
409c19:	56                   	push   %esi
409c1a:	57                   	push   %edi
409c1b:	8b 7d 0c             	mov    0xc(%ebp),%edi
409c1e:	33 d2                	xor    %edx,%edx
409c20:	6a 03                	push   $0x3
409c22:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
409c25:	42                   	inc    %edx
409c26:	83 cb ff             	or     $0xffffffff,%ebx
409c29:	89 55 f4             	mov    %edx,-0xc(%ebp)
409c2c:	89 45 dc             	mov    %eax,-0x24(%ebp)
409c2f:	8b f0                	mov    %eax,%esi
409c31:	89 45 e0             	mov    %eax,-0x20(%ebp)
409c34:	89 45 cc             	mov    %eax,-0x34(%ebp)
409c37:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409c3a:	89 75 f0             	mov    %esi,-0x10(%ebp)
409c3d:	89 45 e8             	mov    %eax,-0x18(%ebp)
409c40:	89 45 d8             	mov    %eax,-0x28(%ebp)
409c43:	89 45 ec             	mov    %eax,-0x14(%ebp)
409c46:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409c49:	59                   	pop    %ecx
409c4a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
409c4d:	85 ff                	test   %edi,%edi
409c4f:	0f 84 3a 01 00 00    	je     0x409d8f
409c55:	8b 75 08             	mov    0x8(%ebp),%esi
409c58:	89 55 fc             	mov    %edx,-0x4(%ebp)
409c5b:	83 c6 04             	add    $0x4,%esi
409c5e:	68 b4 11 40 00       	push   $0x4011b4
409c63:	ff 76 fc             	push   -0x4(%esi)
409c66:	ff 15 28 f1 40 00    	call   *0x40f128
409c6c:	59                   	pop    %ecx
409c6d:	59                   	pop    %ecx
409c6e:	85 c0                	test   %eax,%eax
409c70:	0f 85 5d 01 00 00    	jne    0x409dd3
409c76:	39 7d fc             	cmp    %edi,-0x4(%ebp)
409c79:	0f 83 54 01 00 00    	jae    0x409dd3
409c7f:	8d 7b 01             	lea    0x1(%ebx),%edi
409c82:	f7 df                	neg    %edi
409c84:	68 dc 3b 40 00       	push   $0x403bdc
409c89:	ff 36                	push   (%esi)
409c8b:	1b ff                	sbb    %edi,%edi
409c8d:	23 fb                	and    %ebx,%edi
409c8f:	ff 15 28 f1 40 00    	call   *0x40f128
409c95:	59                   	pop    %ecx
409c96:	59                   	pop    %ecx
409c97:	85 c0                	test   %eax,%eax
409c99:	75 07                	jne    0x409ca2
409c9b:	6a 10                	push   $0x10
409c9d:	e9 a6 00 00 00       	jmp    0x409d48
409ca2:	68 e4 3b 40 00       	push   $0x403be4
409ca7:	ff 36                	push   (%esi)
409ca9:	ff 15 28 f1 40 00    	call   *0x40f128
409caf:	59                   	pop    %ecx
409cb0:	59                   	pop    %ecx
409cb1:	85 c0                	test   %eax,%eax
409cb3:	75 07                	jne    0x409cbc
409cb5:	6a 20                	push   $0x20
409cb7:	e9 8c 00 00 00       	jmp    0x409d48
409cbc:	68 a4 42 40 00       	push   $0x4042a4
409cc1:	ff 36                	push   (%esi)
409cc3:	ff 15 28 f1 40 00    	call   *0x40f128
409cc9:	59                   	pop    %ecx
409cca:	59                   	pop    %ecx
409ccb:	85 c0                	test   %eax,%eax
409ccd:	75 04                	jne    0x409cd3
409ccf:	6a 50                	push   $0x50
409cd1:	eb 75                	jmp    0x409d48
409cd3:	68 b4 42 40 00       	push   $0x4042b4
409cd8:	ff 36                	push   (%esi)
409cda:	ff 15 28 f1 40 00    	call   *0x40f128
409ce0:	59                   	pop    %ecx
409ce1:	59                   	pop    %ecx
409ce2:	85 c0                	test   %eax,%eax
409ce4:	75 04                	jne    0x409cea
409ce6:	6a 60                	push   $0x60
409ce8:	eb 5e                	jmp    0x409d48
409cea:	68 80 3b 40 00       	push   $0x403b80
409cef:	ff 36                	push   (%esi)
409cf1:	ff 15 28 f1 40 00    	call   *0x40f128
409cf7:	59                   	pop    %ecx
409cf8:	59                   	pop    %ecx
409cf9:	85 c0                	test   %eax,%eax
409cfb:	75 07                	jne    0x409d04
409cfd:	bb 00 01 00 00       	mov    $0x100,%ebx
409d02:	eb 63                	jmp    0x409d67
409d04:	68 ac 3b 40 00       	push   $0x403bac
409d09:	ff 36                	push   (%esi)
409d0b:	ff 15 28 f1 40 00    	call   *0x40f128
409d11:	59                   	pop    %ecx
409d12:	59                   	pop    %ecx
409d13:	85 c0                	test   %eax,%eax
409d15:	75 05                	jne    0x409d1c
409d17:	33 db                	xor    %ebx,%ebx
409d19:	43                   	inc    %ebx
409d1a:	eb 4b                	jmp    0x409d67
409d1c:	68 bc 3b 40 00       	push   $0x403bbc
409d21:	ff 36                	push   (%esi)
409d23:	ff 15 28 f1 40 00    	call   *0x40f128
409d29:	59                   	pop    %ecx
409d2a:	59                   	pop    %ecx
409d2b:	85 c0                	test   %eax,%eax
409d2d:	75 04                	jne    0x409d33
409d2f:	6a 02                	push   $0x2
409d31:	eb 15                	jmp    0x409d48
409d33:	68 c8 42 40 00       	push   $0x4042c8
409d38:	ff 36                	push   (%esi)
409d3a:	ff 15 28 f1 40 00    	call   *0x40f128
409d40:	59                   	pop    %ecx
409d41:	59                   	pop    %ecx
409d42:	85 c0                	test   %eax,%eax
409d44:	75 05                	jne    0x409d4b
409d46:	6a 08                	push   $0x8
409d48:	5b                   	pop    %ebx
409d49:	eb 1c                	jmp    0x409d67
409d4b:	68 94 3b 40 00       	push   $0x403b94
409d50:	ff 36                	push   (%esi)
409d52:	ff 15 28 f1 40 00    	call   *0x40f128
409d58:	59                   	pop    %ecx
409d59:	59                   	pop    %ecx
409d5a:	85 c0                	test   %eax,%eax
409d5c:	0f 85 76 03 00 00    	jne    0x40a0d8
409d62:	bb 20 9a 30 2f       	mov    $0x2f309a20,%ebx
409d67:	0b df                	or     %edi,%ebx
409d69:	8b 7d 0c             	mov    0xc(%ebp),%edi
409d6c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409d6f:	8b 55 f4             	mov    -0xc(%ebp),%edx
409d72:	8b 45 fc             	mov    -0x4(%ebp),%eax
409d75:	83 c0 02             	add    $0x2,%eax
409d78:	83 c6 08             	add    $0x8,%esi
409d7b:	89 45 fc             	mov    %eax,-0x4(%ebp)
409d7e:	48                   	dec    %eax
409d7f:	3b c7                	cmp    %edi,%eax
409d81:	0f 82 d7 fe ff ff    	jb     0x409c5e
409d87:	8b 75 f0             	mov    -0x10(%ebp),%esi
409d8a:	83 fb ff             	cmp    $0xffffffff,%ebx
409d8d:	75 03                	jne    0x409d92