406abd:	3b c3                	cmp    %ebx,%eax
406abf:	74 04                	je     0x406ac5
406ac1:	88 1f                	mov    %bl,(%edi)
406ac3:	eb 15                	jmp    0x406ada
406ac5:	ff 75 18             	push   0x18(%ebp)
406ac8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406acb:	53                   	push   %ebx
406acc:	56                   	push   %esi
406acd:	ff 75 10             	push   0x10(%ebp)
406ad0:	8b cf                	mov    %edi,%ecx
406ad2:	e8 60 fe ff ff       	call   0x406937
406ad7:	83 c4 10             	add    $0x10,%esp
406ada:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406add:	5f                   	pop    %edi
406ade:	5e                   	pop    %esi
406adf:	33 cd                	xor    %ebp,%ecx
406ae1:	5b                   	pop    %ebx
406ae2:	e8 19 a5 ff ff       	call   0x401000
406ae7:	c9                   	leave
406ae8:	c3                   	ret
406ae9:	8b ff                	mov    %edi,%edi
406aeb:	55                   	push   %ebp
406aec:	8b ec                	mov    %esp,%ebp
406aee:	83 ec 30             	sub    $0x30,%esp
406af1:	a1 04 f0 41 00       	mov    0x41f004,%eax
406af6:	33 c5                	xor    %ebp,%eax
406af8:	89 45 fc             	mov    %eax,-0x4(%ebp)
406afb:	8b 45 08             	mov    0x8(%ebp),%eax
406afe:	53                   	push   %ebx
406aff:	56                   	push   %esi
406b00:	8b 75 0c             	mov    0xc(%ebp),%esi
406b03:	57                   	push   %edi
406b04:	6a 16                	push   $0x16
406b06:	5f                   	pop    %edi
406b07:	57                   	push   %edi
406b08:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406b0b:	51                   	push   %ecx
406b0c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
406b0f:	51                   	push   %ecx
406b10:	ff 70 04             	push   0x4(%eax)
406b13:	ff 30                	push   (%eax)
406b15:	e8 f0 1c 00 00       	call   0x40880a
406b1a:	33 db                	xor    %ebx,%ebx
406b1c:	83 c4 14             	add    $0x14,%esp
406b1f:	3b f3                	cmp    %ebx,%esi
406b21:	75 1b                	jne    0x406b3e
406b23:	e8 24 c3 ff ff       	call   0x402e4c
406b28:	53                   	push   %ebx
406b29:	53                   	push   %ebx
406b2a:	53                   	push   %ebx
406b2b:	53                   	push   %ebx
406b2c:	53                   	push   %ebx
406b2d:	89 38                	mov    %edi,(%eax)
406b2f:	e8 0d d1 ff ff       	call   0x403c41
406b34:	83 c4 14             	add    $0x14,%esp
406b37:	8b c7                	mov    %edi,%eax
406b39:	e9 96 00 00 00       	jmp    0x406bd4
406b3e:	8b 4d 10             	mov    0x10(%ebp),%ecx
406b41:	3b cb                	cmp    %ebx,%ecx
406b43:	76 de                	jbe    0x406b23
406b45:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406b48:	48                   	dec    %eax
406b49:	89 45 e0             	mov    %eax,-0x20(%ebp)
406b4c:	33 c0                	xor    %eax,%eax
406b4e:	83 7d d0 2d          	cmpl   $0x2d,-0x30(%ebp)
406b52:	0f 94 c0             	sete   %al
406b55:	8d 3c 30             	lea    (%eax,%esi,1),%edi
406b58:	83 f9 ff             	cmp    $0xffffffff,%ecx
406b5b:	75 04                	jne    0x406b61
406b5d:	0b c9                	or     %ecx,%ecx
406b5f:	eb 02                	jmp    0x406b63
406b61:	2b c8                	sub    %eax,%ecx
406b63:	8d 45 d0             	lea    -0x30(%ebp),%eax
406b66:	50                   	push   %eax
406b67:	ff 75 14             	push   0x14(%ebp)
406b6a:	51                   	push   %ecx
406b6b:	57                   	push   %edi
406b6c:	e8 1d 1b 00 00       	call   0x40868e
406b71:	83 c4 10             	add    $0x10,%esp
406b74:	3b c3                	cmp    %ebx,%eax
406b76:	74 04                	je     0x406b7c
406b78:	88 1e                	mov    %bl,(%esi)
406b7a:	eb 58                	jmp    0x406bd4
406b7c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406b7f:	48                   	dec    %eax
406b80:	39 45 e0             	cmp    %eax,-0x20(%ebp)
406b83:	0f 9c c1             	setl   %cl
406b86:	83 f8 fc             	cmp    $0xfffffffc,%eax
406b89:	7c 2d                	jl     0x406bb8
406b8b:	3b 45 14             	cmp    0x14(%ebp),%eax
406b8e:	7d 28                	jge    0x406bb8
406b90:	3a cb                	cmp    %bl,%cl
406b92:	74 0a                	je     0x406b9e
406b94:	8a 07                	mov    (%edi),%al
406b96:	47                   	inc    %edi
406b97:	84 c0                	test   %al,%al
406b99:	75 f9                	jne    0x406b94
406b9b:	88 5f fe             	mov    %bl,-0x2(%edi)
406b9e:	ff 75 1c             	push   0x1c(%ebp)
406ba1:	8d 45 d0             	lea    -0x30(%ebp),%eax
406ba4:	6a 01                	push   $0x1
406ba6:	ff 75 14             	push   0x14(%ebp)
406ba9:	8b ce                	mov    %esi,%ecx
406bab:	ff 75 10             	push   0x10(%ebp)
406bae:	e8 84 fd ff ff       	call   0x406937
406bb3:	83 c4 10             	add    $0x10,%esp
406bb6:	eb 1c                	jmp    0x406bd4
406bb8:	ff 75 1c             	push   0x1c(%ebp)
406bbb:	8d 45 d0             	lea    -0x30(%ebp),%eax
406bbe:	6a 01                	push   $0x1
406bc0:	50                   	push   %eax
406bc1:	ff 75 18             	push   0x18(%ebp)
406bc4:	8b c6                	mov    %esi,%eax
406bc6:	ff 75 14             	push   0x14(%ebp)
406bc9:	ff 75 10             	push   0x10(%ebp)
406bcc:	e8 94 f7 ff ff       	call   0x406365
406bd1:	83 c4 18             	add    $0x18,%esp
406bd4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bd7:	5f                   	pop    %edi
406bd8:	5e                   	pop    %esi
406bd9:	33 cd                	xor    %ebp,%ecx
406bdb:	5b                   	pop    %ebx
406bdc:	e8 1f a4 ff ff       	call   0x401000
406be1:	c9                   	leave
406be2:	c3                   	ret
406be3:	8b ff                	mov    %edi,%edi
406be5:	55                   	push   %ebp
406be6:	8b ec                	mov    %esp,%ebp
406be8:	8b 45 14             	mov    0x14(%ebp),%eax
406beb:	83 f8 65             	cmp    $0x65,%eax
406bee:	74 5f                	je     0x406c4f
406bf0:	83 f8 45             	cmp    $0x45,%eax
406bf3:	74 5a                	je     0x406c4f
406bf5:	83 f8 66             	cmp    $0x66,%eax
406bf8:	75 19                	jne    0x406c13
406bfa:	ff 75 20             	push   0x20(%ebp)
406bfd:	ff 75 18             	push   0x18(%ebp)
406c00:	ff 75 10             	push   0x10(%ebp)
406c03:	ff 75 0c             	push   0xc(%ebp)
406c06:	ff 75 08             	push   0x8(%ebp)
406c09:	e8 20 fe ff ff       	call   0x406a2e
406c0e:	83 c4 14             	add    $0x14,%esp
406c11:	5d                   	pop    %ebp
406c12:	c3                   	ret
406c13:	83 f8 61             	cmp    $0x61,%eax
406c16:	74 1e                	je     0x406c36
406c18:	83 f8 41             	cmp    $0x41,%eax
406c1b:	74 19                	je     0x406c36
406c1d:	ff 75 20             	push   0x20(%ebp)
406c20:	ff 75 1c             	push   0x1c(%ebp)
406c23:	ff 75 18             	push   0x18(%ebp)
406c26:	ff 75 10             	push   0x10(%ebp)
406c29:	ff 75 0c             	push   0xc(%ebp)
406c2c:	ff 75 08             	push   0x8(%ebp)
406c2f:	e8 b5 fe ff ff       	call   0x406ae9
406c34:	eb 30                	jmp    0x406c66
406c36:	ff 75 20             	push   0x20(%ebp)
406c39:	ff 75 1c             	push   0x1c(%ebp)
406c3c:	ff 75 18             	push   0x18(%ebp)
406c3f:	ff 75 10             	push   0x10(%ebp)
406c42:	ff 75 0c             	push   0xc(%ebp)
406c45:	ff 75 08             	push   0x8(%ebp)
406c48:	e8 77 f9 ff ff       	call   0x4065c4
406c4d:	eb 17                	jmp    0x406c66
406c4f:	ff 75 20             	push   0x20(%ebp)
406c52:	ff 75 1c             	push   0x1c(%ebp)
406c55:	ff 75 18             	push   0x18(%ebp)
406c58:	ff 75 10             	push   0x10(%ebp)
406c5b:	ff 75 0c             	push   0xc(%ebp)
406c5e:	ff 75 08             	push   0x8(%ebp)
406c61:	e8 6e f8 ff ff       	call   0x4064d4
406c66:	83 c4 18             	add    $0x18,%esp
406c69:	5d                   	pop    %ebp
406c6a:	c3                   	ret
406c6b:	8b ff                	mov    %edi,%edi
406c6d:	55                   	push   %ebp
406c6e:	8b ec                	mov    %esp,%ebp
406c70:	6a 00                	push   $0x0
406c72:	ff 75 1c             	push   0x1c(%ebp)
406c75:	ff 75 18             	push   0x18(%ebp)
406c78:	ff 75 14             	push   0x14(%ebp)
406c7b:	ff 75 10             	push   0x10(%ebp)
406c7e:	ff 75 0c             	push   0xc(%ebp)
406c81:	ff 75 08             	push   0x8(%ebp)
406c84:	e8 5a ff ff ff       	call   0x406be3
406c89:	83 c4 1c             	add    $0x1c,%esp
406c8c:	5d                   	pop    %ebp
406c8d:	c3                   	ret
406c8e:	8b ff                	mov    %edi,%edi
406c90:	56                   	push   %esi
406c91:	68 00 00 03 00       	push   $0x30000
406c96:	68 00 00 01 00       	push   $0x10000
406c9b:	33 f6                	xor    %esi,%esi
406c9d:	56                   	push   %esi
406c9e:	e8 fc 1c 00 00       	call   0x40899f
406ca3:	83 c4 0c             	add    $0xc,%esp
406ca6:	85 c0                	test   %eax,%eax
406ca8:	74 0d                	je     0x406cb7
406caa:	56                   	push   %esi
406cab:	56                   	push   %esi
406cac:	56                   	push   %esi
406cad:	56                   	push   %esi
406cae:	56                   	push   %esi
406caf:	e8 65 ce ff ff       	call   0x403b19
406cb4:	83 c4 14             	add    $0x14,%esp
406cb7:	5e                   	pop    %esi
406cb8:	c3                   	ret
406cb9:	8b ff                	mov    %edi,%edi
406cbb:	55                   	push   %ebp
406cbc:	8b ec                	mov    %esp,%ebp
406cbe:	83 ec 18             	sub    $0x18,%esp
406cc1:	dd 05 08 db 41 00    	fldl   0x41db08
406cc7:	dd 5d f0             	fstpl  -0x10(%ebp)
406cca:	dd 05 00 db 41 00    	fldl   0x41db00
406cd0:	dd 5d e8             	fstpl  -0x18(%ebp)
406cd3:	dd 45 e8             	fldl   -0x18(%ebp)
406cd6:	dc 75 f0             	fdivl  -0x10(%ebp)
406cd9:	dc 4d f0             	fmull  -0x10(%ebp)
406cdc:	dc 6d e8             	fsubrl -0x18(%ebp)
406cdf:	dd 5d f8             	fstpl  -0x8(%ebp)
406ce2:	d9 e8                	fld1
406ce4:	dc 5d f8             	fcompl -0x8(%ebp)
406ce7:	df e0                	fnstsw %ax
406ce9:	f6 c4 05             	test   $0x5,%ah
406cec:	7a 05                	jp     0x406cf3
406cee:	33 c0                	xor    %eax,%eax
406cf0:	40                   	inc    %eax
406cf1:	c9                   	leave
406cf2:	c3                   	ret
406cf3:	33 c0                	xor    %eax,%eax
406cf5:	c9                   	leave
406cf6:	c3                   	ret
406cf7:	68 2c db 41 00       	push   $0x41db2c
406cfc:	ff 15 10 d1 41 00    	call   *0x41d110
406d02:	85 c0                	test   %eax,%eax
406d04:	74 15                	je     0x406d1b
406d06:	68 10 db 41 00       	push   $0x41db10
406d0b:	50                   	push   %eax
406d0c:	ff 15 20 d0 41 00    	call   *0x41d020
406d12:	85 c0                	test   %eax,%eax
406d14:	74 05                	je     0x406d1b
406d16:	6a 00                	push   $0x0
406d18:	ff d0                	call   *%eax
406d1a:	c3                   	ret
406d1b:	e9 99 ff ff ff       	jmp    0x406cb9
406d20:	8b ff                	mov    %edi,%edi
406d22:	55                   	push   %ebp
406d23:	8b ec                	mov    %esp,%ebp
406d25:	81 ec 28 03 00 00    	sub    $0x328,%esp
406d2b:	a1 04 f0 41 00       	mov    0x41f004,%eax
406d30:	33 c5                	xor    %ebp,%eax
406d32:	89 45 fc             	mov    %eax,-0x4(%ebp)
406d35:	f6 05 48 fb 41 00 01 	testb  $0x1,0x41fb48
406d3c:	56                   	push   %esi
406d3d:	74 08                	je     0x406d47
406d3f:	6a 0a                	push   $0xa
406d41:	e8 bf ad ff ff       	call   0x401b05
406d46:	59                   	pop    %ecx
406d47:	e8 26 d2 ff ff       	call   0x403f72
406d4c:	85 c0                	test   %eax,%eax
406d4e:	74 08                	je     0x406d58
406d50:	6a 16                	push   $0x16
406d52:	e8 28 d2 ff ff       	call   0x403f7f
406d57:	59                   	pop    %ecx
406d58:	f6 05 48 fb 41 00 02 	testb  $0x2,0x41fb48
406d5f:	0f 84 ca 00 00 00    	je     0x406e2f
406d65:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
406d6b:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
406d71:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
406d77:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
406d7d:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
406d83:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
406d89:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
406d90:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
406d97:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
406d9e:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
406da5:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
406dac:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
406db3:	9c                   	pushf
406db4:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
406dba:	8b 75 04             	mov    0x4(%ebp),%esi
406dbd:	8d 45 04             	lea    0x4(%ebp),%eax
406dc0:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
406dc6:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
406dcd:	00 01 00
406dd0:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
406dd6:	8b 40 fc             	mov    -0x4(%eax),%eax
406dd9:	6a 50                	push   $0x50
406ddb:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
406de1:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
406de7:	6a 00                	push   $0x0
406de9:	50                   	push   %eax
406dea:	e8 51 00 00 00       	call   0x406e40
406def:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
406df5:	83 c4 0c             	add    $0xc,%esp
406df8:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
406dfe:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
406e04:	6a 00                	push   $0x0
406e06:	c7 85 d8 fc ff ff 15 	movl   $0x40000015,-0x328(%ebp)
406e0d:	00 00 40
406e10:	89 b5 e4 fc ff ff    	mov    %esi,-0x31c(%ebp)
406e16:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
406e1c:	ff 15 74 d0 41 00    	call   *0x41d074
406e22:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406e28:	50                   	push   %eax
406e29:	ff 15 70 d0 41 00    	call   *0x41d070
406e2f:	6a 03                	push   $0x3
406e31:	e8 4d ac ff ff       	call   0x401a83
406e36:	cc                   	int3
406e37:	cc                   	int3
406e38:	cc                   	int3
406e39:	cc                   	int3
406e3a:	cc                   	int3
406e3b:	cc                   	int3
406e3c:	cc                   	int3
406e3d:	cc                   	int3
406e3e:	cc                   	int3
406e3f:	cc                   	int3
406e40:	8b 54 24 0c          	mov    0xc(%esp),%edx
406e44:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406e48:	85 d2                	test   %edx,%edx
406e4a:	74 69                	je     0x406eb5
406e4c:	33 c0                	xor    %eax,%eax
406e4e:	8a 44 24 08          	mov    0x8(%esp),%al
406e52:	84 c0                	test   %al,%al
406e54:	75 16                	jne    0x406e6c
406e56:	81 fa 00 01 00 00    	cmp    $0x100,%edx
406e5c:	72 0e                	jb     0x406e6c
406e5e:	83 3d b8 2e de 02 00 	cmpl   $0x0,0x2de2eb8
406e65:	74 05                	je     0x406e6c
406e67:	e9 f6 1b 00 00       	jmp    0x408a62
406e6c:	57                   	push   %edi
406e6d:	8b f9                	mov    %ecx,%edi
406e6f:	83 fa 04             	cmp    $0x4,%edx
406e72:	72 31                	jb     0x406ea5
406e74:	f7 d9                	neg    %ecx
406e76:	83 e1 03             	and    $0x3,%ecx
406e79:	74 0c                	je     0x406e87
406e7b:	2b d1                	sub    %ecx,%edx
406e7d:	88 07                	mov    %al,(%edi)
406e7f:	83 c7 01             	add    $0x1,%edi
406e82:	83 e9 01             	sub    $0x1,%ecx
406e85:	75 f6                	jne    0x406e7d
406e87:	8b c8                	mov    %eax,%ecx
406e89:	c1 e0 08             	shl    $0x8,%eax
406e8c:	03 c1                	add    %ecx,%eax
406e8e:	8b c8                	mov    %eax,%ecx
406e90:	c1 e0 10             	shl    $0x10,%eax
406e93:	03 c1                	add    %ecx,%eax
406e95:	8b ca                	mov    %edx,%ecx