4569cb:	ff 70 04             	push   0x4(%eax)
4569ce:	e8 db 72 fb ff       	call   0x40dcae
4569d3:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4569d7:	e8 3e 24 fb ff       	call   0x408e1a
4569dc:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4569e0:	e8 52 61 fb ff       	call   0x40cb37
4569e5:	5f                   	pop    %edi
4569e6:	5e                   	pop    %esi
4569e7:	33 c0                	xor    %eax,%eax
4569e9:	5b                   	pop    %ebx
4569ea:	8b e5                	mov    %ebp,%esp
4569ec:	5d                   	pop    %ebp
4569ed:	c2 08 00             	ret    $0x8
4569f0:	55                   	push   %ebp
4569f1:	8b ec                	mov    %esp,%ebp
4569f3:	51                   	push   %ecx
4569f4:	51                   	push   %ecx
4569f5:	68 00 00 01 00       	push   $0x10000
4569fa:	e8 eb 8a fc ff       	call   0x41f4ea
4569ff:	59                   	pop    %ecx
456a00:	50                   	push   %eax
456a01:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456a04:	e8 ae dd fa ff       	call   0x4047b7
456a09:	68 ff 7f 00 00       	push   $0x7fff
456a0e:	ff 75 f8             	push   -0x8(%ebp)
456a11:	ff 35 e8 10 4c 00    	push   0x4c10e8
456a17:	ff 15 30 d7 48 00    	call   *0x48d730
456a1d:	ff 75 f8             	push   -0x8(%ebp)
456a20:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456a23:	e8 91 63 fb ff       	call   0x40cdb9
456a28:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456a2b:	e8 b2 dd fa ff       	call   0x4047e2
456a30:	33 c0                	xor    %eax,%eax
456a32:	c9                   	leave
456a33:	c2 08 00             	ret    $0x8
456a36:	55                   	push   %ebp
456a37:	8b ec                	mov    %esp,%ebp
456a39:	8b 45 08             	mov    0x8(%ebp),%eax
456a3c:	56                   	push   %esi
456a3d:	8b 40 04             	mov    0x4(%eax),%eax
456a40:	8b 30                	mov    (%eax),%esi
456a42:	8b ce                	mov    %esi,%ecx
456a44:	e8 23 29 fb ff       	call   0x40936c
456a49:	8b 46 08             	mov    0x8(%esi),%eax
456a4c:	ff 30                	push   (%eax)
456a4e:	ff 35 e8 10 4c 00    	push   0x4c10e8
456a54:	ff 15 04 d6 48 00    	call   *0x48d604
456a5a:	33 c0                	xor    %eax,%eax
456a5c:	5e                   	pop    %esi
456a5d:	5d                   	pop    %ebp
456a5e:	c2 08 00             	ret    $0x8
456a61:	55                   	push   %ebp
456a62:	8b ec                	mov    %esp,%ebp
456a64:	53                   	push   %ebx
456a65:	56                   	push   %esi
456a66:	8b 75 08             	mov    0x8(%ebp),%esi
456a69:	57                   	push   %edi
456a6a:	8b 7e 08             	mov    0x8(%esi),%edi
456a6d:	c7 45 08 f4 01 00 00 	movl   $0x1f4,0x8(%ebp)
456a74:	bb e8 03 00 00       	mov    $0x3e8,%ebx
456a79:	85 ff                	test   %edi,%edi
456a7b:	74 0d                	je     0x456a8a
456a7d:	8b 46 04             	mov    0x4(%esi),%eax
456a80:	8b 08                	mov    (%eax),%ecx
456a82:	e8 ff 67 fb ff       	call   0x40d286
456a87:	89 45 08             	mov    %eax,0x8(%ebp)
456a8a:	83 ff 01             	cmp    $0x1,%edi
456a8d:	76 0d                	jbe    0x456a9c
456a8f:	8b 4e 04             	mov    0x4(%esi),%ecx
456a92:	8b 49 04             	mov    0x4(%ecx),%ecx
456a95:	e8 ec 67 fb ff       	call   0x40d286
456a9a:	8b d8                	mov    %eax,%ebx
456a9c:	53                   	push   %ebx
456a9d:	ff 75 08             	push   0x8(%ebp)
456aa0:	ff 15 e4 d2 48 00    	call   *0x48d2e4
456aa6:	5f                   	pop    %edi
456aa7:	5e                   	pop    %esi
456aa8:	33 c0                	xor    %eax,%eax
456aaa:	5b                   	pop    %ebx
456aab:	5d                   	pop    %ebp
456aac:	c2 08 00             	ret    $0x8
456aaf:	55                   	push   %ebp
456ab0:	8b ec                	mov    %esp,%ebp
456ab2:	8b 45 08             	mov    0x8(%ebp),%eax
456ab5:	56                   	push   %esi
456ab6:	8b 40 04             	mov    0x4(%eax),%eax
456ab9:	57                   	push   %edi
456aba:	8b 08                	mov    (%eax),%ecx
456abc:	e8 c5 67 fb ff       	call   0x40d286
456ac1:	85 c0                	test   %eax,%eax
456ac3:	75 03                	jne    0x456ac8
456ac5:	50                   	push   %eax
456ac6:	eb 02                	jmp    0x456aca
456ac8:	6a 01                	push   $0x1
456aca:	ff 15 c4 d6 48 00    	call   *0x48d6c4
456ad0:	8b 75 0c             	mov    0xc(%ebp),%esi
456ad3:	8b ce                	mov    %esi,%ecx
456ad5:	8b f8                	mov    %eax,%edi
456ad7:	e8 44 c1 fb ff       	call   0x412c20
456adc:	89 3e                	mov    %edi,(%esi)
456ade:	5f                   	pop    %edi
456adf:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456ae6:	33 c0                	xor    %eax,%eax
456ae8:	5e                   	pop    %esi
456ae9:	5d                   	pop    %ebp
456aea:	c2 08 00             	ret    $0x8
456aed:	55                   	push   %ebp
456aee:	8b ec                	mov    %esp,%ebp
456af0:	8b 45 08             	mov    0x8(%ebp),%eax
456af3:	8b 40 04             	mov    0x4(%eax),%eax
456af6:	8b 08                	mov    (%eax),%ecx
456af8:	e8 89 67 fb ff       	call   0x40d286
456afd:	85 c0                	test   %eax,%eax
456aff:	0f 95 05 c4 10 4c 00 	setne  0x4c10c4
456b06:	33 c0                	xor    %eax,%eax
456b08:	5d                   	pop    %ebp
456b09:	c2 08 00             	ret    $0x8
456b0c:	55                   	push   %ebp
456b0d:	8b ec                	mov    %esp,%ebp
456b0f:	83 e4 f8             	and    $0xfffffff8,%esp
456b12:	81 ec 34 02 00 00    	sub    $0x234,%esp
456b18:	53                   	push   %ebx
456b19:	8b 5d 0c             	mov    0xc(%ebp),%ebx
456b1c:	56                   	push   %esi
456b1d:	57                   	push   %edi
456b1e:	8b f1                	mov    %ecx,%esi
456b20:	68 00 dc 49 00       	push   $0x49dc00
456b25:	8b cb                	mov    %ebx,%ecx
456b27:	89 74 24 24          	mov    %esi,0x24(%esp)
456b2b:	e8 89 62 fb ff       	call   0x40cdb9
456b30:	ff 35 e8 10 4c 00    	push   0x4c10e8
456b36:	ff 15 c0 d6 48 00    	call   *0x48d6c0
456b3c:	8b 3d bc d6 48 00    	mov    0x48d6bc,%edi
456b42:	6a 0d                	push   $0xd
456b44:	ff d7                	call   *%edi
456b46:	85 c0                	test   %eax,%eax
456b48:	74 54                	je     0x456b9e
456b4a:	6a 0d                	push   $0xd
456b4c:	ff 15 b8 d6 48 00    	call   *0x48d6b8
456b52:	8b f8                	mov    %eax,%edi
456b54:	85 ff                	test   %edi,%edi
456b56:	75 1b                	jne    0x456b73
456b58:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456b5e:	6a 00                	push   $0x0
456b60:	6a 03                	push   $0x3
456b62:	8b 06                	mov    (%esi),%eax
456b64:	8b 48 04             	mov    0x4(%eax),%ecx
456b67:	03 ce                	add    %esi,%ecx
456b69:	e8 de 63 ff ff       	call   0x44cf4c
456b6e:	e9 89 01 00 00       	jmp    0x456cfc
456b73:	57                   	push   %edi
456b74:	ff 15 cc d2 48 00    	call   *0x48d2cc
456b7a:	85 c0                	test   %eax,%eax
456b7c:	75 0c                	jne    0x456b8a
456b7e:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456b84:	6a 00                	push   $0x0
456b86:	6a 04                	push   $0x4
456b88:	eb d8                	jmp    0x456b62
456b8a:	50                   	push   %eax
456b8b:	8b cb                	mov    %ebx,%ecx
456b8d:	e8 27 62 fb ff       	call   0x40cdb9
456b92:	57                   	push   %edi
456b93:	ff 15 d0 d2 48 00    	call   *0x48d2d0
456b99:	e9 58 01 00 00       	jmp    0x456cf6
456b9e:	6a 01                	push   $0x1
456ba0:	ff d7                	call   *%edi
456ba2:	85 c0                	test   %eax,%eax
456ba4:	74 57                	je     0x456bfd
456ba6:	6a 01                	push   $0x1
456ba8:	ff 15 b8 d6 48 00    	call   *0x48d6b8
456bae:	8b f8                	mov    %eax,%edi
456bb0:	85 ff                	test   %edi,%edi
456bb2:	74 a4                	je     0x456b58
456bb4:	57                   	push   %edi
456bb5:	ff 15 cc d2 48 00    	call   *0x48d2cc
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