405ad1:	89 45 fc             	mov    %eax,-0x4(%ebp)
405ad4:	75 0b                	jne    0x405ae1
405ad6:	33 c0                	xor    %eax,%eax
405ad8:	c6 47 08 01          	movb   $0x1,0x8(%edi)
405adc:	89 47 04             	mov    %eax,0x4(%edi)
405adf:	eb 03                	jmp    0x405ae4
405ae1:	8b 47 04             	mov    0x4(%edi),%eax
405ae4:	50                   	push   %eax
405ae5:	8d 45 fc             	lea    -0x4(%ebp),%eax
405ae8:	50                   	push   %eax
405ae9:	e8 b4 1b 00 00       	call   0x4076a2
405aee:	59                   	pop    %ecx
405aef:	59                   	pop    %ecx
405af0:	ff 75 fc             	push   -0x4(%ebp)
405af3:	8b f0                	mov    %eax,%esi
405af5:	89 37                	mov    %esi,(%edi)
405af7:	ff 15 5c f0 40 00    	call   *0x40f05c
405afd:	5f                   	pop    %edi
405afe:	8b c6                	mov    %esi,%eax
405b00:	5e                   	pop    %esi
405b01:	c9                   	leave
405b02:	c3                   	ret
405b03:	8b ff                	mov    %edi,%edi
405b05:	56                   	push   %esi
405b06:	8b f1                	mov    %ecx,%esi
405b08:	83 3e 00             	cmpl   $0x0,(%esi)
405b0b:	75 09                	jne    0x405b16
405b0d:	e8 ab ff ff ff       	call   0x405abd
405b12:	85 c0                	test   %eax,%eax
405b14:	74 04                	je     0x405b1a
405b16:	8b 06                	mov    (%esi),%eax
405b18:	5e                   	pop    %esi
405b19:	c3                   	ret
405b1a:	e8 7f 14 00 00       	call   0x406f9e
405b1f:	cc                   	int3
405b20:	8b ff                	mov    %edi,%edi
405b22:	55                   	push   %ebp
405b23:	8b ec                	mov    %esp,%ebp
405b25:	81 ec 28 03 00 00    	sub    $0x328,%esp
405b2b:	a1 14 60 41 00       	mov    0x416014,%eax
405b30:	33 c5                	xor    %ebp,%eax
405b32:	89 45 fc             	mov    %eax,-0x4(%ebp)
405b35:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
405b39:	57                   	push   %edi
405b3a:	74 09                	je     0x405b45
405b3c:	ff 75 08             	push   0x8(%ebp)
405b3f:	e8 67 d8 ff ff       	call   0x4033ab
405b44:	59                   	pop    %ecx
405b45:	6a 50                	push   $0x50
405b47:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
405b4d:	6a 00                	push   $0x0
405b4f:	50                   	push   %eax
405b50:	e8 8b e4 ff ff       	call   0x403fe0
405b55:	68 cc 02 00 00       	push   $0x2cc
405b5a:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
405b60:	6a 00                	push   $0x0
405b62:	50                   	push   %eax
405b63:	e8 78 e4 ff ff       	call   0x403fe0
405b68:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
405b6e:	83 c4 18             	add    $0x18,%esp
405b71:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
405b77:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
405b7d:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
405b83:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
405b89:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
405b8f:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
405b95:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
405b9b:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
405ba1:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
405ba7:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
405bae:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
405bb5:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
405bbc:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
405bc3:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
405bca:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
405bd1:	9c                   	pushf
405bd2:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
405bd8:	8b 45 04             	mov    0x4(%ebp),%eax
405bdb:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
405be1:	8d 45 04             	lea    0x4(%ebp),%eax
405be4:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
405bea:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
405bf1:	00 01 00
405bf4:	8b 40 fc             	mov    -0x4(%eax),%eax
405bf7:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
405bfd:	8b 45 0c             	mov    0xc(%ebp),%eax
405c00:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
405c06:	8b 45 10             	mov    0x10(%ebp),%eax
405c09:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
405c0f:	8b 45 04             	mov    0x4(%ebp),%eax
405c12:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
405c18:	ff 15 30 f0 40 00    	call   *0x40f030
405c1e:	6a 00                	push   $0x0
405c20:	8b f8                	mov    %eax,%edi
405c22:	ff 15 38 f0 40 00    	call   *0x40f038
405c28:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
405c2e:	50                   	push   %eax
405c2f:	ff 15 34 f0 40 00    	call   *0x40f034
405c35:	85 c0                	test   %eax,%eax
405c37:	75 13                	jne    0x405c4c
405c39:	85 ff                	test   %edi,%edi
405c3b:	75 0f                	jne    0x405c4c
405c3d:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
405c41:	74 09                	je     0x405c4c
405c43:	ff 75 08             	push   0x8(%ebp)
405c46:	e8 60 d7 ff ff       	call   0x4033ab
405c4b:	59                   	pop    %ecx
405c4c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405c4f:	33 cd                	xor    %ebp,%ecx
405c51:	5f                   	pop    %edi
405c52:	e8 de d9 ff ff       	call   0x403635
405c57:	c9                   	leave
405c58:	c3                   	ret
405c59:	8b ff                	mov    %edi,%edi
405c5b:	55                   	push   %ebp
405c5c:	8b ec                	mov    %esp,%ebp
405c5e:	8b 45 08             	mov    0x8(%ebp),%eax
405c61:	a3 8c 6d 41 00       	mov    %eax,0x416d8c
405c66:	5d                   	pop    %ebp
405c67:	c3                   	ret
405c68:	8b ff                	mov    %edi,%edi
405c6a:	55                   	push   %ebp
405c6b:	8b ec                	mov    %esp,%ebp
405c6d:	83 ec 28             	sub    $0x28,%esp
405c70:	8d 4d d8             	lea    -0x28(%ebp),%ecx
405c73:	6a 00                	push   $0x0
405c75:	e8 96 fd ff ff       	call   0x405a10
405c7a:	8d 45 d8             	lea    -0x28(%ebp),%eax
405c7d:	50                   	push   %eax
405c7e:	ff 75 18             	push   0x18(%ebp)
405c81:	ff 75 14             	push   0x14(%ebp)
405c84:	ff 75 10             	push   0x10(%ebp)
405c87:	ff 75 0c             	push   0xc(%ebp)
405c8a:	ff 75 08             	push   0x8(%ebp)
405c8d:	e8 0d 00 00 00       	call   0x405c9f
405c92:	83 c4 18             	add    $0x18,%esp
405c95:	8d 4d d8             	lea    -0x28(%ebp),%ecx
405c98:	e8 bb fd ff ff       	call   0x405a58
405c9d:	c9                   	leave
405c9e:	c3                   	ret
405c9f:	8b ff                	mov    %edi,%edi
405ca1:	55                   	push   %ebp
405ca2:	8b ec                	mov    %esp,%ebp
405ca4:	56                   	push   %esi
405ca5:	57                   	push   %edi
405ca6:	8b 7d 1c             	mov    0x1c(%ebp),%edi
405ca9:	8b 07                	mov    (%edi),%eax
405cab:	85 c0                	test   %eax,%eax
405cad:	75 0b                	jne    0x405cba
405caf:	8b cf                	mov    %edi,%ecx
405cb1:	e8 07 fe ff ff       	call   0x405abd
405cb6:	85 c0                	test   %eax,%eax
405cb8:	74 2a                	je     0x405ce4
405cba:	8b b0 5c 03 00 00    	mov    0x35c(%eax),%esi
405cc0:	85 f6                	test   %esi,%esi
405cc2:	74 20                	je     0x405ce4
405cc4:	ff 75 18             	push   0x18(%ebp)
405cc7:	ff 75 14             	push   0x14(%ebp)
405cca:	ff 75 10             	push   0x10(%ebp)
405ccd:	ff 75 0c             	push   0xc(%ebp)
405cd0:	ff 75 08             	push   0x8(%ebp)
405cd3:	8b ce                	mov    %esi,%ecx
405cd5:	ff 15 18 f1 40 00    	call   *0x40f118
405cdb:	ff d6                	call   *%esi
405cdd:	83 c4 14             	add    $0x14,%esp
405ce0:	5f                   	pop    %edi
405ce1:	5e                   	pop    %esi
405ce2:	5d                   	pop    %ebp
405ce3:	c3                   	ret
405ce4:	8b cf                	mov    %edi,%ecx
405ce6:	e8 a9 fd ff ff       	call   0x405a94
405ceb:	ff 75 18             	push   0x18(%ebp)
405cee:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
405cf4:	ff 75 14             	push   0x14(%ebp)
405cf7:	8b 34 85 8c 6d 41 00 	mov    0x416d8c(,%eax,4),%esi
405cfe:	83 e1 1f             	and    $0x1f,%ecx
405d01:	ff 75 10             	push   0x10(%ebp)
405d04:	33 35 14 60 41 00    	xor    0x416014,%esi
405d0a:	ff 75 0c             	push   0xc(%ebp)
405d0d:	d3 ce                	ror    %cl,%esi
405d0f:	ff 75 08             	push   0x8(%ebp)
405d12:	85 f6                	test   %esi,%esi
405d14:	75 bd                	jne    0x405cd3
405d16:	e8 2e 00 00 00       	call   0x405d49
405d1b:	cc                   	int3
405d1c:	33 c0                	xor    %eax,%eax
405d1e:	50                   	push   %eax
405d1f:	50                   	push   %eax
405d20:	50                   	push   %eax
405d21:	50                   	push   %eax
405d22:	50                   	push   %eax
405d23:	e8 40 ff ff ff       	call   0x405c68
405d28:	83 c4 14             	add    $0x14,%esp
405d2b:	c3                   	ret
405d2c:	8b ff                	mov    %edi,%edi
405d2e:	56                   	push   %esi
405d2f:	33 f6                	xor    %esi,%esi
405d31:	56                   	push   %esi
405d32:	56                   	push   %esi
405d33:	56                   	push   %esi
405d34:	56                   	push   %esi
405d35:	56                   	push   %esi
405d36:	e8 2d ff ff ff       	call   0x405c68
405d3b:	83 c4 14             	add    $0x14,%esp
405d3e:	56                   	push   %esi
405d3f:	56                   	push   %esi
405d40:	56                   	push   %esi
405d41:	56                   	push   %esi
405d42:	56                   	push   %esi
405d43:	e8 01 00 00 00       	call   0x405d49
405d48:	cc                   	int3
405d49:	6a 17                	push   $0x17
405d4b:	ff 15 40 f0 40 00    	call   *0x40f040
405d51:	85 c0                	test   %eax,%eax
405d53:	74 05                	je     0x405d5a
405d55:	6a 05                	push   $0x5
405d57:	59                   	pop    %ecx
405d58:	cd 29                	int    $0x29
405d5a:	56                   	push   %esi
405d5b:	6a 01                	push   $0x1
405d5d:	be 17 04 00 c0       	mov    $0xc0000417,%esi
405d62:	56                   	push   %esi
405d63:	6a 02                	push   $0x2
405d65:	e8 b6 fd ff ff       	call   0x405b20
405d6a:	83 c4 0c             	add    $0xc,%esp
405d6d:	56                   	push   %esi
405d6e:	ff 15 48 f0 40 00    	call   *0x40f048
405d74:	50                   	push   %eax
405d75:	ff 15 4c f0 40 00    	call   *0x40f04c
405d7b:	5e                   	pop    %esi
405d7c:	c3                   	ret
405d7d:	8b ff                	mov    %edi,%edi
405d7f:	55                   	push   %ebp
405d80:	8b ec                	mov    %esp,%ebp
405d82:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
405d88:	8b 45 08             	mov    0x8(%ebp),%eax
405d8b:	83 e1 1f             	and    $0x1f,%ecx
405d8e:	33 05 14 60 41 00    	xor    0x416014,%eax
405d94:	d3 c8                	ror    %cl,%eax
405d96:	5d                   	pop    %ebp
405d97:	c3                   	ret
405d98:	8b ff                	mov    %edi,%edi
405d9a:	55                   	push   %ebp
405d9b:	8b ec                	mov    %esp,%ebp
405d9d:	8b 45 08             	mov    0x8(%ebp),%eax
405da0:	a3 90 6d 41 00       	mov    %eax,0x416d90
405da5:	5d                   	pop    %ebp
405da6:	c3                   	ret
405da7:	8b ff                	mov    %edi,%edi
405da9:	55                   	push   %ebp
405daa:	8b ec                	mov    %esp,%ebp
405dac:	56                   	push   %esi
405dad:	e8 21 00 00 00       	call   0x405dd3
405db2:	8b f0                	mov    %eax,%esi
405db4:	85 f6                	test   %esi,%esi
405db6:	74 16                	je     0x405dce
405db8:	ff 75 08             	push   0x8(%ebp)
405dbb:	8b ce                	mov    %esi,%ecx
405dbd:	ff 15 18 f1 40 00    	call   *0x40f118
405dc3:	ff d6                	call   *%esi
405dc5:	f7 d8                	neg    %eax
405dc7:	59                   	pop    %ecx
405dc8:	1b c0                	sbb    %eax,%eax
405dca:	f7 d8                	neg    %eax
405dcc:	eb 02                	jmp    0x405dd0
405dce:	33 c0                	xor    %eax,%eax
405dd0:	5e                   	pop    %esi
405dd1:	5d                   	pop    %ebp
405dd2:	c3                   	ret
405dd3:	6a 0c                	push   $0xc
405dd5:	68 90 49 41 00       	push   $0x414990
405dda:	e8 31 d6 ff ff       	call   0x403410
405ddf:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
405de3:	6a 00                	push   $0x0
405de5:	e8 e2 19 00 00       	call   0x4077cc
405dea:	59                   	pop    %ecx
405deb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405def:	ff 35 90 6d 41 00    	push   0x416d90
405df5:	e8 83 ff ff ff       	call   0x405d7d
405dfa:	59                   	pop    %ecx
405dfb:	8b f0                	mov    %eax,%esi
405dfd:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405e00:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405e07:	e8 15 00 00 00       	call   0x405e21
405e0c:	8b c6                	mov    %esi,%eax
405e0e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405e11:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405e18:	59                   	pop    %ecx
405e19:	5f                   	pop    %edi
405e1a:	5e                   	pop    %esi
405e1b:	5b                   	pop    %ebx
405e1c:	c9                   	leave
405e1d:	c3                   	ret
405e1e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
405e21:	6a 00                	push   $0x0
405e23:	e8 ec 19 00 00       	call   0x407814
405e28:	59                   	pop    %ecx
405e29:	c3                   	ret
405e2a:	8b ff                	mov    %edi,%edi
405e2c:	55                   	push   %ebp
405e2d:	8b ec                	mov    %esp,%ebp
405e2f:	5d                   	pop    %ebp
405e30:	e9 f6 19 00 00       	jmp    0x40782b
405e35:	8b ff                	mov    %edi,%edi
405e37:	55                   	push   %ebp
405e38:	8b ec                	mov    %esp,%ebp
405e3a:	51                   	push   %ecx
405e3b:	ff 75 08             	push   0x8(%ebp)
405e3e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
405e45:	8b 45 fc             	mov    -0x4(%ebp),%eax
405e48:	e8 2c 1a 00 00       	call   0x407879
405e4d:	59                   	pop    %ecx
405e4e:	c9                   	leave
405e4f:	c3                   	ret
405e50:	8b ff                	mov    %edi,%edi
405e52:	55                   	push   %ebp
405e53:	8b ec                	mov    %esp,%ebp
405e55:	51                   	push   %ecx
405e56:	56                   	push   %esi
405e57:	57                   	push   %edi
405e58:	e8 94 17 00 00       	call   0x4075f1
405e5d:	8b f0                	mov    %eax,%esi
405e5f:	85 f6                	test   %esi,%esi
405e61:	74 1c                	je     0x405e7f
405e63:	8b 16                	mov    (%esi),%edx
405e65:	8b ca                	mov    %edx,%ecx
405e67:	8d 82 90 00 00 00    	lea    0x90(%edx),%eax
405e6d:	3b d0                	cmp    %eax,%edx
405e6f:	74 0e                	je     0x405e7f
405e71:	8b 7d 08             	mov    0x8(%ebp),%edi
405e74:	39 39                	cmp    %edi,(%ecx)
405e76:	74 0d                	je     0x405e85
405e78:	83 c1 0c             	add    $0xc,%ecx
405e7b:	3b c8                	cmp    %eax,%ecx
405e7d:	75 f5                	jne    0x405e74
405e7f:	33 c0                	xor    %eax,%eax
405e81:	5f                   	pop    %edi
405e82:	5e                   	pop    %esi
405e83:	c9                   	leave
405e84:	c3                   	ret
405e85:	85 c9                	test   %ecx,%ecx
405e87:	74 f6                	je     0x405e7f
405e89:	8b 79 08             	mov    0x8(%ecx),%edi
405e8c:	85 ff                	test   %edi,%edi
405e8e:	74 ef                	je     0x405e7f
405e90:	83 ff 05             	cmp    $0x5,%edi
405e93:	75 09                	jne    0x405e9e
405e95:	83 61 08 00          	andl   $0x0,0x8(%ecx)
405e99:	33 c0                	xor    %eax,%eax
405e9b:	40                   	inc    %eax