47894b:	8b c2                	mov    %edx,%eax
47894d:	c1 e8 1f             	shr    $0x1f,%eax
478950:	03 c2                	add    %edx,%eax
478952:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
478955:	c1 e1 03             	shl    $0x3,%ecx
478958:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
47895e:	72 16                	jb     0x478976
478960:	8b 56 fc             	mov    -0x4(%esi),%edx
478963:	83 c1 23             	add    $0x23,%ecx
478966:	2b f2                	sub    %edx,%esi
478968:	8d 46 fc             	lea    -0x4(%esi),%eax
47896b:	83 f8 1f             	cmp    $0x1f,%eax
47896e:	0f 87 da 00 00 00    	ja     0x478a4e
478974:	8b f2                	mov    %edx,%esi
478976:	51                   	push   %ecx
478977:	56                   	push   %esi
478978:	e8 d8 88 15 00       	call   0x5d1255
47897d:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
478983:	83 c4 08             	add    $0x8,%esp
478986:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
47898d:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
478994:	57                   	push   %edi
478995:	8b cb                	mov    %ebx,%ecx
478997:	e8 24 4c 02 00       	call   0x49d5c0
47899c:	8d 0c 7f             	lea    (%edi,%edi,2),%ecx
47899f:	89 03                	mov    %eax,(%ebx)
4789a1:	8b 7d 08             	mov    0x8(%ebp),%edi
4789a4:	89 43 04             	mov    %eax,0x4(%ebx)
4789a7:	8d 0c c8             	lea    (%eax,%ecx,8),%ecx
4789aa:	89 4b 08             	mov    %ecx,0x8(%ebx)
4789ad:	33 c9                	xor    %ecx,%ecx
4789af:	eb 05                	jmp    0x4789b6
4789b1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4789b4:	8b c6                	mov    %esi,%eax
4789b6:	50                   	push   %eax
4789b7:	8d 34 8f             	lea    (%edi,%ecx,4),%esi
4789ba:	56                   	push   %esi
4789bb:	57                   	push   %edi
4789bc:	e8 9f 00 00 00       	call   0x478a60
4789c1:	8b 5b 04             	mov    0x4(%ebx),%ebx
4789c4:	83 c4 0c             	add    $0xc,%esp
4789c7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4789ca:	8b 7d 0c             	mov    0xc(%ebp),%edi
4789cd:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4789d0:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4789d3:	89 45 dc             	mov    %eax,-0x24(%ebp)
4789d6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4789dd:	3b f7                	cmp    %edi,%esi
4789df:	74 19                	je     0x4789fa
4789e1:	ff 36                	push   (%esi)
4789e3:	8b cb                	mov    %ebx,%ecx
4789e5:	e8 36 dd fd ff       	call   0x456720
4789ea:	83 c3 18             	add    $0x18,%ebx
4789ed:	83 c6 04             	add    $0x4,%esi
4789f0:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4789f3:	3b f7                	cmp    %edi,%esi
4789f5:	75 ea                	jne    0x4789e1
4789f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4789fa:	89 58 04             	mov    %ebx,0x4(%eax)
4789fd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
478a00:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
478a07:	59                   	pop    %ecx
478a08:	5f                   	pop    %edi
478a09:	5e                   	pop    %esi
478a0a:	5b                   	pop    %ebx
478a0b:	8b e5                	mov    %ebp,%esp
478a0d:	5d                   	pop    %ebp
478a0e:	c2 0c 00             	ret    $0xc
478a11:	8b 4d f0             	mov    -0x10(%ebp),%ecx
478a14:	8d 04 40             	lea    (%eax,%eax,2),%eax
478a17:	51                   	push   %ecx
478a18:	56                   	push   %esi
478a19:	57                   	push   %edi
478a1a:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
478a1d:	e8 3e 00 00 00       	call   0x478a60
478a22:	8b 75 ec             	mov    -0x14(%ebp),%esi
478a25:	56                   	push   %esi
478a26:	ff 76 04             	push   0x4(%esi)
478a29:	53                   	push   %ebx
478a2a:	e8 61 09 ff ff       	call   0x469390
478a2f:	83 c4 18             	add    $0x18,%esp
478a32:	89 5e 04             	mov    %ebx,0x4(%esi)
478a35:	8b 4d f4             	mov    -0xc(%ebp),%ecx
478a38:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
478a3f:	59                   	pop    %ecx
478a40:	5f                   	pop    %edi
478a41:	5e                   	pop    %esi
478a42:	5b                   	pop    %ebx
478a43:	8b e5                	mov    %ebp,%esp
478a45:	5d                   	pop    %ebp
478a46:	c2 0c 00             	ret    $0xc
478a49:	e8 52 3d fe ff       	call   0x45c7a0
478a4e:	e8 9d d7 15 00       	call   0x5d61f0
478a53:	cc                   	int3
478a54:	cc                   	int3
478a55:	cc                   	int3
478a56:	cc                   	int3
478a57:	cc                   	int3
478a58:	cc                   	int3
478a59:	cc                   	int3
478a5a:	cc                   	int3
478a5b:	cc                   	int3
478a5c:	cc                   	int3
478a5d:	cc                   	int3
478a5e:	cc                   	int3
478a5f:	cc                   	int3
478a60:	55                   	push   %ebp
478a61:	8b ec                	mov    %esp,%ebp
478a63:	8b 45 08             	mov    0x8(%ebp),%eax
478a66:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478a69:	3b c1                	cmp    %ecx,%eax
478a6b:	74 37                	je     0x478aa4
478a6d:	56                   	push   %esi
478a6e:	8b 75 10             	mov    0x10(%ebp),%esi
478a71:	8b 10                	mov    (%eax),%edx
478a73:	3b f2                	cmp    %edx,%esi
478a75:	74 1b                	je     0x478a92
478a77:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
478a7b:	8b c2                	mov    %edx,%eax
478a7d:	72 02                	jb     0x478a81
478a7f:	8b 02                	mov    (%edx),%eax
478a81:	ff 72 10             	push   0x10(%edx)
478a84:	8b ce                	mov    %esi,%ecx
478a86:	50                   	push   %eax
478a87:	e8 94 eb fc ff       	call   0x447620
478a8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478a8f:	8b 45 08             	mov    0x8(%ebp),%eax
478a92:	83 c0 04             	add    $0x4,%eax
478a95:	83 c6 18             	add    $0x18,%esi
478a98:	89 45 08             	mov    %eax,0x8(%ebp)
478a9b:	3b c1                	cmp    %ecx,%eax
478a9d:	75 d2                	jne    0x478a71
478a9f:	8b c6                	mov    %esi,%eax
478aa1:	5e                   	pop    %esi
478aa2:	5d                   	pop    %ebp
478aa3:	c3                   	ret
478aa4:	8b 45 10             	mov    0x10(%ebp),%eax
478aa7:	5d                   	pop    %ebp
478aa8:	c3                   	ret
478aa9:	cc                   	int3
478aaa:	cc                   	int3
478aab:	cc                   	int3
478aac:	cc                   	int3
478aad:	cc                   	int3
478aae:	cc                   	int3
478aaf:	cc                   	int3
478ab0:	55                   	push   %ebp
478ab1:	8b ec                	mov    %esp,%ebp
478ab3:	53                   	push   %ebx
478ab4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
478ab7:	57                   	push   %edi
478ab8:	8b 7d 08             	mov    0x8(%ebp),%edi
478abb:	3b fb                	cmp    %ebx,%edi
478abd:	74 5a                	je     0x478b19
478abf:	56                   	push   %esi
478ac0:	8b 37                	mov    (%edi),%esi
478ac2:	85 f6                	test   %esi,%esi
478ac4:	74 4b                	je     0x478b11
478ac6:	8b 4e 14             	mov    0x14(%esi),%ecx
478ac9:	83 f9 10             	cmp    $0x10,%ecx
478acc:	72 27                	jb     0x478af5
478ace:	8b 06                	mov    (%esi),%eax
478ad0:	41                   	inc    %ecx
478ad1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
478ad7:	72 12                	jb     0x478aeb
478ad9:	8b 50 fc             	mov    -0x4(%eax),%edx
478adc:	83 c1 23             	add    $0x23,%ecx
478adf:	2b c2                	sub    %edx,%eax
478ae1:	83 c0 fc             	add    $0xfffffffc,%eax
478ae4:	83 f8 1f             	cmp    $0x1f,%eax
478ae7:	77 34                	ja     0x478b1d
478ae9:	8b c2                	mov    %edx,%eax
478aeb:	51                   	push   %ecx
478aec:	50                   	push   %eax
478aed:	e8 63 87 15 00       	call   0x5d1255
478af2:	83 c4 08             	add    $0x8,%esp
478af5:	6a 18                	push   $0x18
478af7:	56                   	push   %esi
478af8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
478aff:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
478b06:	c6 06 00             	movb   $0x0,(%esi)
478b09:	e8 47 87 15 00       	call   0x5d1255
478b0e:	83 c4 08             	add    $0x8,%esp
478b11:	83 c7 04             	add    $0x4,%edi
478b14:	3b fb                	cmp    %ebx,%edi
478b16:	75 a8                	jne    0x478ac0
478b18:	5e                   	pop    %esi
478b19:	5f                   	pop    %edi
478b1a:	5b                   	pop    %ebx
478b1b:	5d                   	pop    %ebp
478b1c:	c3                   	ret
478b1d:	e8 ce d6 15 00       	call   0x5d61f0
478b22:	cc                   	int3
478b23:	cc                   	int3
478b24:	cc                   	int3
478b25:	cc                   	int3
478b26:	cc                   	int3
478b27:	cc                   	int3
478b28:	cc                   	int3
478b29:	cc                   	int3
478b2a:	cc                   	int3
478b2b:	cc                   	int3
478b2c:	cc                   	int3
478b2d:	cc                   	int3
478b2e:	cc                   	int3
478b2f:	cc                   	int3
478b30:	55                   	push   %ebp
478b31:	8b ec                	mov    %esp,%ebp
478b33:	56                   	push   %esi
478b34:	8b 75 08             	mov    0x8(%ebp),%esi
478b37:	57                   	push   %edi
478b38:	8b 7d 0c             	mov    0xc(%ebp),%edi
478b3b:	3b f7                	cmp    %edi,%esi
478b3d:	74 4b                	je     0x478b8a
478b3f:	90                   	nop
478b40:	8b 06                	mov    (%esi),%eax
478b42:	85 c0                	test   %eax,%eax
478b44:	74 3d                	je     0x478b83
478b46:	8b 4e 08             	mov    0x8(%esi),%ecx
478b49:	2b c8                	sub    %eax,%ecx
478b4b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
478b51:	72 12                	jb     0x478b65
478b53:	8b 50 fc             	mov    -0x4(%eax),%edx
478b56:	83 c1 23             	add    $0x23,%ecx
478b59:	2b c2                	sub    %edx,%eax
478b5b:	83 c0 fc             	add    $0xfffffffc,%eax
478b5e:	83 f8 1f             	cmp    $0x1f,%eax
478b61:	77 2b                	ja     0x478b8e
478b63:	8b c2                	mov    %edx,%eax
478b65:	51                   	push   %ecx
478b66:	50                   	push   %eax
478b67:	e8 e9 86 15 00       	call   0x5d1255
478b6c:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
478b72:	83 c4 08             	add    $0x8,%esp
478b75:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
478b7c:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
478b83:	83 c6 0c             	add    $0xc,%esi
478b86:	3b f7                	cmp    %edi,%esi
478b88:	75 b6                	jne    0x478b40
478b8a:	5f                   	pop    %edi
478b8b:	5e                   	pop    %esi
478b8c:	5d                   	pop    %ebp
478b8d:	c3                   	ret
478b8e:	e8 5d d6 15 00       	call   0x5d61f0
478b93:	cc                   	int3
478b94:	cc                   	int3
478b95:	cc                   	int3
478b96:	cc                   	int3
478b97:	cc                   	int3
478b98:	cc                   	int3
478b99:	cc                   	int3
478b9a:	cc                   	int3
478b9b:	cc                   	int3
478b9c:	cc                   	int3
478b9d:	cc                   	int3
478b9e:	cc                   	int3
478b9f:	cc                   	int3
478ba0:	55                   	push   %ebp
478ba1:	8b ec                	mov    %esp,%ebp
478ba3:	6a ff                	push   $0xffffffff
478ba5:	68 e0 a3 5f 00       	push   $0x5fa3e0
478baa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
478bb0:	50                   	push   %eax
478bb1:	83 ec 1c             	sub    $0x1c,%esp
478bb4:	53                   	push   %ebx
478bb5:	56                   	push   %esi
478bb6:	57                   	push   %edi
478bb7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
478bbc:	33 c5                	xor    %ebp,%eax
478bbe:	50                   	push   %eax
478bbf:	8d 45 f4             	lea    -0xc(%ebp),%eax
478bc2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
478bc8:	89 65 f0             	mov    %esp,-0x10(%ebp)
478bcb:	8b f1                	mov    %ecx,%esi
478bcd:	89 75 dc             	mov    %esi,-0x24(%ebp)
478bd0:	8b 3e                	mov    (%esi),%edi
478bd2:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
478bd7:	8b 55 08             	mov    0x8(%ebp),%edx
478bda:	8b 4e 04             	mov    0x4(%esi),%ecx
478bdd:	2b d7                	sub    %edi,%edx
478bdf:	f7 ea                	imul   %edx
478be1:	2b cf                	sub    %edi,%ecx
478be3:	d1 fa                	sar    $1,%edx
478be5:	8b c2                	mov    %edx,%eax
478be7:	c1 e8 1f             	shr    $0x1f,%eax
478bea:	03 c2                	add    %edx,%eax
478bec:	89 45 ec             	mov    %eax,-0x14(%ebp)
478bef:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
478bf4:	f7 e9                	imul   %ecx
478bf6:	d1 fa                	sar    $1,%edx
478bf8:	8b c2                	mov    %edx,%eax
478bfa:	c1 e8 1f             	shr    $0x1f,%eax
478bfd:	03 c2                	add    %edx,%eax
478bff:	89 45 e4             	mov    %eax,-0x1c(%ebp)
478c02:	3d 55 55 55 15       	cmp    $0x15555555,%eax
478c07:	0f 84 e6 00 00 00    	je     0x478cf3
478c0d:	8b 4e 08             	mov    0x8(%esi),%ecx
478c10:	8d 58 01             	lea    0x1(%eax),%ebx
478c13:	2b cf                	sub    %edi,%ecx
478c15:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
478c1a:	f7 e9                	imul   %ecx
478c1c:	b8 55 55 55 15       	mov    $0x15555555,%eax
478c21:	d1 fa                	sar    $1,%edx
478c23:	8b ca                	mov    %edx,%ecx
478c25:	c1 e9 1f             	shr    $0x1f,%ecx
478c28:	03 ca                	add    %edx,%ecx
478c2a:	8b d1                	mov    %ecx,%edx
478c2c:	d1 ea                	shr    $1,%edx
478c2e:	2b c2                	sub    %edx,%eax
478c30:	3b c8                	cmp    %eax,%ecx
478c32:	76 07                	jbe    0x478c3b
478c34:	bf 55 55 55 15       	mov    $0x15555555,%edi
478c39:	eb 08                	jmp    0x478c43
478c3b:	8d 3c 0a             	lea    (%edx,%ecx,1),%edi
478c3e:	3b fb                	cmp    %ebx,%edi
478c40:	0f 42 fb             	cmovb  %ebx,%edi
478c43:	57                   	push   %edi
478c44:	8b ce                	mov    %esi,%ecx
478c46:	89 7d e8             	mov    %edi,-0x18(%ebp)
478c49:	e8 d2 49 02 00       	call   0x49d620
478c4e:	ff 75 0c             	push   0xc(%ebp)
478c51:	8b d8                	mov    %eax,%ebx
478c53:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
478c5a:	8b 45 ec             	mov    -0x14(%ebp),%eax
478c5d:	89 5d d8             	mov    %ebx,-0x28(%ebp)
478c60:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
478c63:	8d 04 8b             	lea    (%ebx,%ecx,4),%eax
478c66:	50                   	push   %eax
478c67:	8d 48 0c             	lea    0xc(%eax),%ecx
478c6a:	89 45 e0             	mov    %eax,-0x20(%ebp)
478c6d:	56                   	push   %esi
478c6e:	89 4d ec             	mov    %ecx,-0x14(%ebp)
478c71:	e8 1a 1d 00 00       	call   0x47a990
478c76:	8b 46 04             	mov    0x4(%esi),%eax
478c79:	83 c4 0c             	add    $0xc,%esp
478c7c:	8b 55 08             	mov    0x8(%ebp),%edx
478c7f:	8b 0e                	mov    (%esi),%ecx
478c81:	3b d0                	cmp    %eax,%edx
478c83:	75 04                	jne    0x478c89
478c85:	8b d3                	mov    %ebx,%edx
478c87:	eb 15                	jmp    0x478c9e
478c89:	56                   	push   %esi
478c8a:	53                   	push   %ebx
478c8b:	52                   	push   %edx
478c8c:	51                   	push   %ecx
478c8d:	e8 4e 1b 00 00       	call   0x47a7e0
478c92:	8b 4d 08             	mov    0x8(%ebp),%ecx
478c95:	83 c4 10             	add    $0x10,%esp
478c98:	8b 46 04             	mov    0x4(%esi),%eax
478c9b:	8b 55 ec             	mov    -0x14(%ebp),%edx