456bbb:	85 c0                	test   %eax,%eax
456bbd:	74 bf                	je     0x456b7e
456bbf:	50                   	push   %eax
456bc0:	8d 4c 24 14          	lea    0x14(%esp),%ecx
456bc4:	e8 36 67 fe ff       	call   0x43d2ff
456bc9:	8d 44 24 28          	lea    0x28(%esp),%eax
456bcd:	50                   	push   %eax
456bce:	8d 4c 24 14          	lea    0x14(%esp),%ecx
456bd2:	e8 dc 3d 00 00       	call   0x45a9b3
456bd7:	50                   	push   %eax
456bd8:	8b cb                	mov    %ebx,%ecx
456bda:	e8 89 ff fa ff       	call   0x406b68
456bdf:	8d 4c 24 28          	lea    0x28(%esp),%ecx
456be3:	e8 4f 5f fb ff       	call   0x40cb37
456be8:	57                   	push   %edi
456be9:	ff 15 d0 d2 48 00    	call   *0x48d2d0
456bef:	8d 4c 24 10          	lea    0x10(%esp),%ecx
456bf3:	e8 3f 5f fb ff       	call   0x40cb37
456bf8:	e9 f9 00 00 00       	jmp    0x456cf6
456bfd:	6a 0f                	push   $0xf
456bff:	ff d7                	call   *%edi
456c01:	85 c0                	test   %eax,%eax
456c03:	0f 84 cf 00 00 00    	je     0x456cd8
456c09:	6a 0f                	push   $0xf
456c0b:	ff 15 b8 d6 48 00    	call   *0x48d6b8
456c11:	8b f8                	mov    %eax,%edi
456c13:	85 ff                	test   %edi,%edi
456c15:	0f 84 3d ff ff ff    	je     0x456b58
456c1b:	57                   	push   %edi
456c1c:	ff 15 cc d2 48 00    	call   *0x48d2cc
456c22:	85 c0                	test   %eax,%eax
456c24:	0f 84 54 ff ff ff    	je     0x456b7e
456c2a:	8d 4c 24 10          	lea    0x10(%esp),%ecx
456c2e:	e8 c4 6b fb ff       	call   0x40d7f7
456c33:	6a 00                	push   $0x0
456c35:	6a 00                	push   $0x0
456c37:	6a ff                	push   $0xffffffff
456c39:	57                   	push   %edi
456c3a:	ff 15 7c d4 48 00    	call   *0x48d47c
456c40:	33 c9                	xor    %ecx,%ecx
456c42:	48                   	dec    %eax
456c43:	85 c0                	test   %eax,%eax
456c45:	7e 43                	jle    0x456c8a
456c47:	8b d9                	mov    %ecx,%ebx
456c49:	8b f0                	mov    %eax,%esi
456c4b:	68 04 01 00 00       	push   $0x104
456c50:	8d 44 24 3c          	lea    0x3c(%esp),%eax
456c54:	50                   	push   %eax
456c55:	53                   	push   %ebx
456c56:	57                   	push   %edi
456c57:	ff 15 7c d4 48 00    	call   *0x48d47c
456c5d:	8d 44 24 38          	lea    0x38(%esp),%eax
456c61:	50                   	push   %eax
456c62:	8d 4c 24 14          	lea    0x14(%esp),%ecx
456c66:	e8 21 e5 fa ff       	call   0x40518c
456c6b:	6a 0a                	push   $0xa
456c6d:	8d 4c 24 14          	lea    0x14(%esp),%ecx
456c71:	e8 23 5b fb ff       	call   0x40c799
456c76:	43                   	inc    %ebx
456c77:	3b de                	cmp    %esi,%ebx
456c79:	7c d0                	jl     0x456c4b
456c7b:	8b 74 24 20          	mov    0x20(%esp),%esi
456c7f:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
456c83:	8b 5d 0c             	mov    0xc(%ebp),%ebx
456c86:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
456c8a:	68 04 01 00 00       	push   $0x104
456c8f:	8d 44 24 3c          	lea    0x3c(%esp),%eax
456c93:	50                   	push   %eax
456c94:	51                   	push   %ecx
456c95:	57                   	push   %edi
456c96:	ff 15 7c d4 48 00    	call   *0x48d47c
456c9c:	8d 44 24 38          	lea    0x38(%esp),%eax
456ca0:	50                   	push   %eax
456ca1:	8d 4c 24 14          	lea    0x14(%esp),%ecx
456ca5:	e8 e2 e4 fa ff       	call   0x40518c
456caa:	8d 44 24 10          	lea    0x10(%esp),%eax
456cae:	50                   	push   %eax
456caf:	8b cb                	mov    %ebx,%ecx
456cb1:	e8 b2 fe fa ff       	call   0x406b68
456cb6:	57                   	push   %edi
456cb7:	ff 15 d0 d2 48 00    	call   *0x48d2d0
456cbd:	8b 06                	mov    (%esi),%eax
456cbf:	6a 00                	push   $0x0
456cc1:	8b 48 04             	mov    0x4(%eax),%ecx
456cc4:	6a 01                	push   $0x1
456cc6:	03 ce                	add    %esi,%ecx
456cc8:	e8 54 c6 fa ff       	call   0x403321
456ccd:	8d 4c 24 10          	lea    0x10(%esp),%ecx
456cd1:	e8 61 5e fb ff       	call   0x40cb37
456cd6:	eb 1e                	jmp    0x456cf6
456cd8:	ff 15 b0 d6 48 00    	call   *0x48d6b0
456cde:	85 c0                	test   %eax,%eax
456ce0:	8b 06                	mov    (%esi),%eax
456ce2:	6a 00                	push   $0x0
456ce4:	8b 48 04             	mov    0x4(%eax),%ecx
456ce7:	74 04                	je     0x456ced
456ce9:	6a 02                	push   $0x2
456ceb:	eb 02                	jmp    0x456cef
456ced:	6a 01                	push   $0x1
456cef:	03 ce                	add    %esi,%ecx
456cf1:	e8 56 62 ff ff       	call   0x44cf4c
456cf6:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456cfc:	5f                   	pop    %edi
456cfd:	5e                   	pop    %esi
456cfe:	33 c0                	xor    %eax,%eax
456d00:	5b                   	pop    %ebx
456d01:	8b e5                	mov    %ebp,%esp
456d03:	5d                   	pop    %ebp
456d04:	c2 08 00             	ret    $0x8
456d07:	55                   	push   %ebp
456d08:	8b ec                	mov    %esp,%ebp
456d0a:	8b 45 08             	mov    0x8(%ebp),%eax
456d0d:	53                   	push   %ebx
456d0e:	8b 40 04             	mov    0x4(%eax),%eax
456d11:	56                   	push   %esi
456d12:	8b 30                	mov    (%eax),%esi
456d14:	57                   	push   %edi
456d15:	8b f9                	mov    %ecx,%edi
456d17:	8b ce                	mov    %esi,%ecx
456d19:	e8 4e 26 fb ff       	call   0x40936c
456d1e:	8b 5e 08             	mov    0x8(%esi),%ebx
456d21:	8b 43 04             	mov    0x4(%ebx),%eax
456d24:	85 c0                	test   %eax,%eax
456d26:	75 17                	jne    0x456d3f
456d28:	ff 35 e8 10 4c 00    	push   0x4c10e8
456d2e:	ff 15 c0 d6 48 00    	call   *0x48d6c0
456d34:	ff 15 ac d6 48 00    	call   *0x48d6ac
456d3a:	e9 a9 00 00 00       	jmp    0x456de8
456d3f:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
456d46:	50                   	push   %eax
456d47:	6a 02                	push   $0x2
456d49:	ff 15 d4 d2 48 00    	call   *0x48d2d4
456d4f:	8b f0                	mov    %eax,%esi
456d51:	85 f6                	test   %esi,%esi
456d53:	75 26                	jne    0x456d7b
456d55:	8b 75 0c             	mov    0xc(%ebp),%esi
456d58:	8b ce                	mov    %esi,%ecx
456d5a:	e8 c1 be fb ff       	call   0x412c20
456d5f:	6a 00                	push   $0x0
456d61:	6a 03                	push   $0x3
456d63:	83 26 00             	andl   $0x0,(%esi)
456d66:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456d6d:	8b 07                	mov    (%edi),%eax
456d6f:	8b 48 04             	mov    0x4(%eax),%ecx
456d72:	03 cf                	add    %edi,%ecx
456d74:	e8 d3 61 ff ff       	call   0x44cf4c
456d79:	eb 73                	jmp    0x456dee
456d7b:	56                   	push   %esi
456d7c:	ff 15 cc d2 48 00    	call   *0x48d2cc
456d82:	85 c0                	test   %eax,%eax
456d84:	75 10                	jne    0x456d96
456d86:	8b 75 0c             	mov    0xc(%ebp),%esi
456d89:	8b ce                	mov    %esi,%ecx
456d8b:	e8 90 be fb ff       	call   0x412c20
456d90:	6a 00                	push   $0x0
456d92:	6a 04                	push   $0x4
456d94:	eb cd                	jmp    0x456d63
456d96:	ff 33                	push   (%ebx)
456d98:	50                   	push   %eax
456d99:	e8 85 9f fc ff       	call   0x420d23
456d9e:	59                   	pop    %ecx
456d9f:	59                   	pop    %ecx
456da0:	56                   	push   %esi
456da1:	ff 15 d0 d2 48 00    	call   *0x48d2d0
456da7:	ff 35 e8 10 4c 00    	push   0x4c10e8
456dad:	ff 15 c0 d6 48 00    	call   *0x48d6c0
456db3:	ff 15 ac d6 48 00    	call   *0x48d6ac
456db9:	56                   	push   %esi
456dba:	6a 0d                	push   $0xd
456dbc:	ff 15 a8 d6 48 00    	call   *0x48d6a8
456dc2:	85 c0                	test   %eax,%eax
456dc4:	75 22                	jne    0x456de8
456dc6:	8b 75 0c             	mov    0xc(%ebp),%esi
456dc9:	8b ce                	mov    %esi,%ecx
456dcb:	e8 50 be fb ff       	call   0x412c20
456dd0:	83 26 00             	andl   $0x0,(%esi)
456dd3:	33 c0                	xor    %eax,%eax
456dd5:	40                   	inc    %eax
456dd6:	6a 00                	push   $0x0
456dd8:	89 46 0c             	mov    %eax,0xc(%esi)
456ddb:	50                   	push   %eax
456ddc:	8b 07                	mov    (%edi),%eax
456dde:	8b 48 04             	mov    0x4(%eax),%ecx
456de1:	03 cf                	add    %edi,%ecx
456de3:	e8 64 61 ff ff       	call   0x44cf4c
456de8:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456dee:	5f                   	pop    %edi
456def:	5e                   	pop    %esi
456df0:	33 c0                	xor    %eax,%eax
456df2:	5b                   	pop    %ebx
456df3:	5d                   	pop    %ebp
456df4:	c2 08 00             	ret    $0x8
456df7:	55                   	push   %ebp
456df8:	8b ec                	mov    %esp,%ebp
456dfa:	8b 45 08             	mov    0x8(%ebp),%eax
456dfd:	56                   	push   %esi
456dfe:	8b 40 04             	mov    0x4(%eax),%eax
456e01:	57                   	push   %edi
456e02:	8b 30                	mov    (%eax),%esi
456e04:	51                   	push   %ecx
456e05:	e8 0c e0 fc ff       	call   0x424e16
456e0a:	8d 48 40             	lea    0x40(%eax),%ecx
456e0d:	8b d6                	mov    %esi,%edx
456e0f:	e8 7f 77 fc ff       	call   0x41e593
456e14:	8b 75 0c             	mov    0xc(%ebp),%esi
456e17:	59                   	pop    %ecx
456e18:	8b ce                	mov    %esi,%ecx
456e1a:	8b f8                	mov    %eax,%edi
456e1c:	e8 ff bd fb ff       	call   0x412c20
456e21:	89 3e                	mov    %edi,(%esi)
456e23:	5f                   	pop    %edi
456e24:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456e2b:	33 c0                	xor    %eax,%eax
456e2d:	5e                   	pop    %esi
456e2e:	5d                   	pop    %ebp
456e2f:	c2 08 00             	ret    $0x8
456e32:	55                   	push   %ebp
456e33:	8b ec                	mov    %esp,%ebp
456e35:	51                   	push   %ecx
456e36:	51                   	push   %ecx
456e37:	56                   	push   %esi
456e38:	57                   	push   %edi
456e39:	68 00 00 01 00       	push   $0x10000
456e3e:	e8 a7 86 fc ff       	call   0x41f4ea
456e43:	59                   	pop    %ecx
456e44:	50                   	push   %eax
456e45:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456e48:	e8 6a d9 fa ff       	call   0x4047b7
456e4d:	8b 7d f8             	mov    -0x8(%ebp),%edi
456e50:	33 c0                	xor    %eax,%eax
456e52:	66 89 07             	mov    %ax,(%edi)
456e55:	8b 45 08             	mov    0x8(%ebp),%eax
456e58:	8b 40 04             	mov    0x4(%eax),%eax
456e5b:	8b 30                	mov    (%eax),%esi
456e5d:	8b ce                	mov    %esi,%ecx
456e5f:	e8 08 25 fb ff       	call   0x40936c
456e64:	8b 46 08             	mov    0x8(%esi),%eax
456e67:	68 ff 7f 00 00       	push   $0x7fff
456e6c:	57                   	push   %edi
456e6d:	ff 30                	push   (%eax)
456e6f:	ff 15 c4 d2 48 00    	call   *0x48d2c4
456e75:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456e78:	8d 45 f8             	lea    -0x8(%ebp),%eax
456e7b:	50                   	push   %eax
456e7c:	e8 0c 2f ff ff       	call   0x449d8d
456e81:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456e84:	e8 59 d9 fa ff       	call   0x4047e2
456e89:	5f                   	pop    %edi
456e8a:	33 c0                	xor    %eax,%eax
456e8c:	5e                   	pop    %esi
456e8d:	c9                   	leave
456e8e:	c2 08 00             	ret    $0x8
456e91:	55                   	push   %ebp
456e92:	8b ec                	mov    %esp,%ebp
456e94:	53                   	push   %ebx
456e95:	8b 5d 08             	mov    0x8(%ebp),%ebx
456e98:	56                   	push   %esi
456e99:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
456e9d:	8b 43 04             	mov    0x4(%ebx),%eax
456ea0:	57                   	push   %edi
456ea1:	72 1e                	jb     0x456ec1
456ea3:	8b 70 04             	mov    0x4(%eax),%esi
456ea6:	8b ce                	mov    %esi,%ecx
456ea8:	e8 bf 24 fb ff       	call   0x40936c
456ead:	8b 46 08             	mov    0x8(%esi),%eax
456eb0:	8b 38                	mov    (%eax),%edi
456eb2:	8b 43 04             	mov    0x4(%ebx),%eax
456eb5:	8b 30                	mov    (%eax),%esi
456eb7:	8b ce                	mov    %esi,%ecx
456eb9:	e8 ae 24 fb ff       	call   0x40936c
456ebe:	57                   	push   %edi
456ebf:	eb 0b                	jmp    0x456ecc
456ec1:	8b 30                	mov    (%eax),%esi
456ec3:	8b ce                	mov    %esi,%ecx
456ec5:	e8 a2 24 fb ff       	call   0x40936c
456eca:	6a 00                	push   $0x0
456ecc:	8b 46 08             	mov    0x8(%esi),%eax
456ecf:	ff 30                	push   (%eax)
456ed1:	ff 15 c8 d2 48 00    	call   *0x48d2c8
456ed7:	8b 75 0c             	mov    0xc(%ebp),%esi
456eda:	8b ce                	mov    %esi,%ecx
456edc:	8b f8                	mov    %eax,%edi
456ede:	e8 3d bd fb ff       	call   0x412c20
456ee3:	89 3e                	mov    %edi,(%esi)
456ee5:	5f                   	pop    %edi
456ee6:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456eed:	5e                   	pop    %esi
456eee:	33 c0                	xor    %eax,%eax
456ef0:	5b                   	pop    %ebx
456ef1:	5d                   	pop    %ebp
456ef2:	c2 08 00             	ret    $0x8
456ef5:	55                   	push   %ebp
456ef6:	8b ec                	mov    %esp,%ebp
456ef8:	51                   	push   %ecx
456ef9:	53                   	push   %ebx
456efa:	57                   	push   %edi
456efb:	8d 45 fc             	lea    -0x4(%ebp),%eax
456efe:	50                   	push   %eax
456eff:	68 98 3a 00 00       	push   $0x3a98
456f04:	33 db                	xor    %ebx,%ebx
456f06:	43                   	inc    %ebx
456f07:	53                   	push   %ebx
456f08:	68 38 3d 4b 00       	push   $0x4b3d38
456f0d:	6a 00                	push   $0x0
456f0f:	6a 1a                	push   $0x1a
456f11:	68 ff ff 00 00       	push   $0xffff
456f16:	8b f9                	mov    %ecx,%edi
456f18:	ff 15 58 d6 48 00    	call   *0x48d658
456f1e:	85 c0                	test   %eax,%eax
456f20:	75 21                	jne    0x456f43
456f22:	56                   	push   %esi
456f23:	8b 75 0c             	mov    0xc(%ebp),%esi
456f26:	8b ce                	mov    %esi,%ecx
456f28:	e8 f3 bc fb ff       	call   0x412c20
456f2d:	83 26 00             	andl   $0x0,(%esi)
456f30:	89 5e 0c             	mov    %ebx,0xc(%esi)
456f33:	8b 07                	mov    (%edi),%eax
456f35:	6a 00                	push   $0x0
456f37:	8b 48 04             	mov    0x4(%eax),%ecx
456f3a:	53                   	push   %ebx
456f3b:	03 cf                	add    %edi,%ecx
456f3d:	e8 0a 60 ff ff       	call   0x44cf4c
456f42:	5e                   	pop    %esi
456f43:	5f                   	pop    %edi
456f44:	33 c0                	xor    %eax,%eax
456f46:	5b                   	pop    %ebx
456f47:	c9                   	leave
456f48:	c2 08 00             	ret    $0x8
456f4b:	55                   	push   %ebp
456f4c:	8b ec                	mov    %esp,%ebp
456f4e:	83 ec 14             	sub    $0x14,%esp
456f51:	8b 45 08             	mov    0x8(%ebp),%eax
456f54:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
456f58:	8b 40 04             	mov    0x4(%eax),%eax
456f5b:	56                   	push   %esi
456f5c:	8b 30                	mov    (%eax),%esi
456f5e:	57                   	push   %edi
456f5f:	8b f9                	mov    %ecx,%edi
456f61:	8b ce                	mov    %esi,%ecx
456f63:	e8 04 24 fb ff       	call   0x40936c
456f68:	8b 56 08             	mov    0x8(%esi),%edx
456f6b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
456f6e:	8b 02                	mov    (%edx),%eax
456f70:	89 45 ec             	mov    %eax,-0x14(%ebp)
456f73:	8b 42 04             	mov    0x4(%edx),%eax
456f76:	89 45 f0             	mov    %eax,-0x10(%ebp)
456f79:	8b 42 08             	mov    0x8(%edx),%eax
456f7c:	89 45 f4             	mov    %eax,-0xc(%ebp)
456f7f:	8b 42 0c             	mov    0xc(%edx),%eax
456f82:	89 45 f8             	mov    %eax,-0x8(%ebp)