51497a:	56                   	push   %esi
51497b:	53                   	push   %ebx
51497c:	89 54 24 28          	mov    %edx,0x28(%esp)
514980:	e8 3b 47 f0 ff       	call   0x4190c0
514985:	8b 44 24 28          	mov    0x28(%esp),%eax
514989:	83 c4 14             	add    $0x14,%esp
51498c:	2b f8                	sub    %eax,%edi
51498e:	03 f0                	add    %eax,%esi
514990:	03 d8                	add    %eax,%ebx
514992:	8b 44 24 18          	mov    0x18(%esp),%eax
514996:	89 45 20             	mov    %eax,0x20(%ebp)
514999:	85 c0                	test   %eax,%eax
51499b:	75 03                	jne    0x5149a0
51499d:	ff 45 24             	incl   0x24(%ebp)
5149a0:	8b d0                	mov    %eax,%edx
5149a2:	83 ff 40             	cmp    $0x40,%edi
5149a5:	73 ac                	jae    0x514953
5149a7:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5149ab:	85 ff                	test   %edi,%edi
5149ad:	74 45                	je     0x5149f4
5149af:	6a 40                	push   $0x40
5149b1:	8d 45 30             	lea    0x30(%ebp),%eax
5149b4:	6a 00                	push   $0x0
5149b6:	50                   	push   %eax
5149b7:	e8 b4 e2 0b 00       	call   0x5d2c70
5149bc:	8d 45 20             	lea    0x20(%ebp),%eax
5149bf:	50                   	push   %eax
5149c0:	55                   	push   %ebp
5149c1:	8d 45 30             	lea    0x30(%ebp),%eax
5149c4:	6a 40                	push   $0x40
5149c6:	50                   	push   %eax
5149c7:	50                   	push   %eax
5149c8:	e8 f3 46 f0 ff       	call   0x4190c0
5149cd:	83 c4 20             	add    $0x20,%esp
5149d0:	33 d2                	xor    %edx,%edx
5149d2:	85 ff                	test   %edi,%edi
5149d4:	74 1b                	je     0x5149f1
5149d6:	2b f3                	sub    %ebx,%esi
5149d8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
5149df:	00
5149e0:	8a 44 2a 30          	mov    0x30(%edx,%ebp,1),%al
5149e4:	8d 0c 1a             	lea    (%edx,%ebx,1),%ecx
5149e7:	32 04 0e             	xor    (%esi,%ecx,1),%al
5149ea:	42                   	inc    %edx
5149eb:	88 01                	mov    %al,(%ecx)
5149ed:	3b d7                	cmp    %edi,%edx
5149ef:	72 ef                	jb     0x5149e0
5149f1:	89 7d 70             	mov    %edi,0x70(%ebp)
5149f4:	5f                   	pop    %edi
5149f5:	5e                   	pop    %esi
5149f6:	5d                   	pop    %ebp
5149f7:	b8 01 00 00 00       	mov    $0x1,%eax
5149fc:	5b                   	pop    %ebx
5149fd:	83 c4 10             	add    $0x10,%esp
514a00:	c3                   	ret
514a01:	cc                   	int3
514a02:	cc                   	int3
514a03:	cc                   	int3
514a04:	cc                   	int3
514a05:	cc                   	int3
514a06:	cc                   	int3
514a07:	cc                   	int3
514a08:	cc                   	int3
514a09:	cc                   	int3
514a0a:	cc                   	int3
514a0b:	cc                   	int3
514a0c:	cc                   	int3
514a0d:	cc                   	int3
514a0e:	cc                   	int3
514a0f:	cc                   	int3
514a10:	b8 14 00 00 00       	mov    $0x14,%eax
514a15:	e8 96 cd 0b 00       	call   0x5d17b0
514a1a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
514a1f:	33 c4                	xor    %esp,%eax
514a21:	89 44 24 10          	mov    %eax,0x10(%esp)
514a25:	8b 44 24 20          	mov    0x20(%esp),%eax
514a29:	53                   	push   %ebx
514a2a:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
514a2e:	56                   	push   %esi
514a2f:	57                   	push   %edi
514a30:	8b 7c 24 28          	mov    0x28(%esp),%edi
514a34:	8b 73 60             	mov    0x60(%ebx),%esi
514a37:	85 ff                	test   %edi,%edi
514a39:	75 08                	jne    0x514a43
514a3b:	85 c0                	test   %eax,%eax
514a3d:	0f 84 e6 00 00 00    	je     0x514b29
514a43:	c7 86 a8 00 00 00 00 	movl   $0x0,0xa8(%esi)
514a4a:	00 00 00
514a4d:	c7 86 ac 00 00 00 00 	movl   $0x0,0xac(%esi)
514a54:	00 00 00
514a57:	c7 86 b0 00 00 00 00 	movl   $0x0,0xb0(%esi)
514a5e:	00 00 00
514a61:	c7 86 b4 00 00 00 00 	movl   $0x0,0xb4(%esi)
514a68:	00 00 00
514a6b:	c7 86 b8 00 00 00 00 	movl   $0x0,0xb8(%esi)
514a72:	00 00 00
514a75:	c7 86 bc 00 00 00 00 	movl   $0x0,0xbc(%esi)
514a7c:	00 00 00
514a7f:	c7 86 c8 00 00 00 ff 	movl   $0xffffffff,0xc8(%esi)
514a86:	ff ff ff
514a89:	85 c0                	test   %eax,%eax
514a8b:	74 4e                	je     0x514adb
514a8d:	8b 8e c4 00 00 00    	mov    0xc4(%esi),%ecx
514a93:	0f 57 c0             	xorps  %xmm0,%xmm0
514a96:	0f 11 44 24 0c       	movups %xmm0,0xc(%esp)
514a9b:	83 f9 10             	cmp    $0x10,%ecx
514a9e:	7f 11                	jg     0x514ab1
514aa0:	51                   	push   %ecx
514aa1:	50                   	push   %eax
514aa2:	8d 44 24 24          	lea    0x24(%esp),%eax
514aa6:	2b c1                	sub    %ecx,%eax
514aa8:	50                   	push   %eax
514aa9:	e8 22 e3 0b 00       	call   0x5d2dd0
514aae:	83 c4 0c             	add    $0xc,%esp
514ab1:	ff 74 24 30          	push   0x30(%esp)
514ab5:	8d 44 24 10          	lea    0x10(%esp),%eax
514ab9:	50                   	push   %eax
514aba:	57                   	push   %edi
514abb:	53                   	push   %ebx
514abc:	e8 5f fd ff ff       	call   0x514820
514ac1:	8b 46 24             	mov    0x24(%esi),%eax
514ac4:	83 c4 10             	add    $0x10,%esp
514ac7:	89 46 78             	mov    %eax,0x78(%esi)
514aca:	8b 46 28             	mov    0x28(%esi),%eax
514acd:	89 46 7c             	mov    %eax,0x7c(%esi)
514ad0:	8b 46 2c             	mov    0x2c(%esi),%eax
514ad3:	89 86 80 00 00 00    	mov    %eax,0x80(%esi)
514ad9:	eb 4e                	jmp    0x514b29
514adb:	8b 5b 60             	mov    0x60(%ebx),%ebx
514ade:	85 ff                	test   %edi,%edi
514ae0:	74 40                	je     0x514b22
514ae2:	be fe ff ff ff       	mov    $0xfffffffe,%esi
514ae7:	8d 57 02             	lea    0x2(%edi),%edx
514aea:	2b f7                	sub    %edi,%esi
514aec:	0f 1f 40 00          	nopl   0x0(%eax)
514af0:	0f b6 4a 01          	movzbl 0x1(%edx),%ecx
514af4:	0f b6 02             	movzbl (%edx),%eax
514af7:	c1 e1 08             	shl    $0x8,%ecx
514afa:	0b c8                	or     %eax,%ecx
514afc:	0f b6 42 ff          	movzbl -0x1(%edx),%eax
514b00:	c1 e1 08             	shl    $0x8,%ecx
514b03:	0b c8                	or     %eax,%ecx
514b05:	0f b6 42 fe          	movzbl -0x2(%edx),%eax
514b09:	c1 e1 08             	shl    $0x8,%ecx
514b0c:	0b c8                	or     %eax,%ecx
514b0e:	8d 04 16             	lea    (%esi,%edx,1),%eax
514b11:	c1 e8 02             	shr    $0x2,%eax
514b14:	8d 52 04             	lea    0x4(%edx),%edx
514b17:	89 0c 83             	mov    %ecx,(%ebx,%eax,4)
514b1a:	8d 04 16             	lea    (%esi,%edx,1),%eax
514b1d:	83 f8 20             	cmp    $0x20,%eax
514b20:	72 ce                	jb     0x514af0
514b22:	c7 43 70 00 00 00 00 	movl   $0x0,0x70(%ebx)
514b29:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
514b2d:	b8 01 00 00 00       	mov    $0x1,%eax
514b32:	5f                   	pop    %edi
514b33:	5e                   	pop    %esi
514b34:	5b                   	pop    %ebx
514b35:	33 cc                	xor    %esp,%ecx
514b37:	e8 ea ce 0b 00       	call   0x5d1a26
514b3c:	83 c4 14             	add    $0x14,%esp
514b3f:	c3                   	ret
514b40:	b8 20 00 00 00       	mov    $0x20,%eax
514b45:	e8 66 cc 0b 00       	call   0x5d17b0
514b4a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
514b4f:	33 c4                	xor    %esp,%eax
514b51:	89 44 24 1c          	mov    %eax,0x1c(%esp)
514b55:	8b 44 24 24          	mov    0x24(%esp),%eax
514b59:	53                   	push   %ebx
514b5a:	55                   	push   %ebp
514b5b:	56                   	push   %esi
514b5c:	8b 58 60             	mov    0x60(%eax),%ebx
514b5f:	8b 74 24 34          	mov    0x34(%esp),%esi
514b63:	57                   	push   %edi
514b64:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
514b68:	83 bb bc 00 00 00 00 	cmpl   $0x0,0xbc(%ebx)
514b6f:	8b ab c8 00 00 00    	mov    0xc8(%ebx),%ebp
514b75:	89 44 24 10          	mov    %eax,0x10(%esp)
514b79:	89 74 24 14          	mov    %esi,0x14(%esp)
514b7d:	89 7c 24 18          	mov    %edi,0x18(%esp)
514b81:	0f 85 d8 00 00 00    	jne    0x514c5f
514b87:	83 fd ff             	cmp    $0xffffffff,%ebp
514b8a:	74 26                	je     0x514bb2
514b8c:	85 f6                	test   %esi,%esi
514b8e:	74 22                	je     0x514bb2
514b90:	ff 74 24 40          	push   0x40(%esp)
514b94:	57                   	push   %edi
514b95:	56                   	push   %esi
514b96:	50                   	push   %eax
514b97:	e8 14 07 00 00       	call   0x5152b0
514b9c:	83 c4 10             	add    $0x10,%esp
514b9f:	5f                   	pop    %edi
514ba0:	5e                   	pop    %esi
514ba1:	5d                   	pop    %ebp
514ba2:	5b                   	pop    %ebx
514ba3:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
514ba7:	33 cc                	xor    %esp,%ecx
514ba9:	e8 78 ce 0b 00       	call   0x5d1a26
514bae:	83 c4 20             	add    $0x20,%esp
514bb1:	c3                   	ret
514bb2:	8d 7b 20             	lea    0x20(%ebx),%edi
514bb5:	8d 73 30             	lea    0x30(%ebx),%esi
514bb8:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
514bbe:	57                   	push   %edi
514bbf:	53                   	push   %ebx
514bc0:	6a 40                	push   $0x40
514bc2:	68 68 12 63 00       	push   $0x631268
514bc7:	56                   	push   %esi
514bc8:	e8 f3 44 f0 ff       	call   0x4190c0
514bcd:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
514bd3:	56                   	push   %esi
514bd4:	50                   	push   %eax
514bd5:	e8 16 e7 01 00       	call   0x5332f0
514bda:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
514be0:	83 c4 1c             	add    $0x1c,%esp
514be3:	c7 43 70 00 00 00 00 	movl   $0x0,0x70(%ebx)
514bea:	c7 83 b0 00 00 00 00 	movl   $0x0,0xb0(%ebx)
514bf1:	00 00 00
514bf4:	c7 83 b4 00 00 00 00 	movl   $0x0,0xb4(%ebx)
514bfb:	00 00 00
514bfe:	c7 83 a8 00 00 00 00 	movl   $0x0,0xa8(%ebx)
514c05:	00 00 00
514c08:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
514c0f:	00 00 00
514c12:	c7 83 bc 00 00 00 01 	movl   $0x1,0xbc(%ebx)
514c19:	00 00 00
514c1c:	83 fd ff             	cmp    $0xffffffff,%ebp
514c1f:	74 36                	je     0x514c57
514c21:	6a 0d                	push   $0xd
514c23:	8d 83 94 00 00 00    	lea    0x94(%ebx),%eax
514c29:	50                   	push   %eax
514c2a:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
514c30:	50                   	push   %eax
514c31:	e8 8a e7 01 00       	call   0x5333c0
514c36:	83 c4 0c             	add    $0xc,%esp
514c39:	c7 83 a8 00 00 00 0d 	movl   $0xd,0xa8(%ebx)
514c40:	00 00 00
514c43:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
514c4a:	00 00 00
514c4d:	c7 83 b8 00 00 00 01 	movl   $0x1,0xb8(%ebx)
514c54:	00 00 00
514c57:	8b 7c 24 18          	mov    0x18(%esp),%edi
514c5b:	8b 74 24 14          	mov    0x14(%esp),%esi
514c5f:	8b 4c 24 40          	mov    0x40(%esp),%ecx
514c63:	b8 10 00 00 00       	mov    $0x10,%eax
514c68:	85 ff                	test   %edi,%edi
514c6a:	0f 84 d4 01 00 00    	je     0x514e44
514c70:	85 f6                	test   %esi,%esi
514c72:	75 3f                	jne    0x514cb3
514c74:	8b f1                	mov    %ecx,%esi
514c76:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
514c7c:	56                   	push   %esi
514c7d:	57                   	push   %edi
514c7e:	50                   	push   %eax
514c7f:	e8 3c e7 01 00       	call   0x5333c0
514c84:	83 c4 0c             	add    $0xc,%esp
514c87:	c7 83 b8 00 00 00 01 	movl   $0x1,0xb8(%ebx)
514c8e:	00 00 00
514c91:	01 b3 a8 00 00 00    	add    %esi,0xa8(%ebx)
514c97:	8b c6                	mov    %esi,%eax
514c99:	83 93 ac 00 00 00 00 	adcl   $0x0,0xac(%ebx)
514ca0:	5f                   	pop    %edi
514ca1:	5e                   	pop    %esi
514ca2:	5d                   	pop    %ebp
514ca3:	5b                   	pop    %ebx
514ca4:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
514ca8:	33 cc                	xor    %esp,%ecx
514caa:	e8 77 cd 0b 00       	call   0x5d1a26
514caf:	83 c4 20             	add    $0x20,%esp
514cb2:	c3                   	ret
514cb3:	83 bb b8 00 00 00 00 	cmpl   $0x0,0xb8(%ebx)
514cba:	74 30                	je     0x514cec
514cbc:	8b 93 a8 00 00 00    	mov    0xa8(%ebx),%edx
514cc2:	83 e2 0f             	and    $0xf,%edx
514cc5:	74 1b                	je     0x514ce2
514cc7:	2b c2                	sub    %edx,%eax
514cc9:	8d 8b d0 00 00 00    	lea    0xd0(%ebx),%ecx
514ccf:	50                   	push   %eax
514cd0:	68 68 12 63 00       	push   $0x631268
514cd5:	51                   	push   %ecx
514cd6:	e8 e5 e6 01 00       	call   0x5333c0
514cdb:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
514cdf:	83 c4 0c             	add    $0xc,%esp
514ce2:	c7 83 b8 00 00 00 00 	movl   $0x0,0xb8(%ebx)
514ce9:	00 00 00
514cec:	c7 83 c8 00 00 00 ff 	movl   $0xffffffff,0xc8(%ebx)
514cf3:	ff ff ff
514cf6:	83 fd ff             	cmp    $0xffffffff,%ebp
514cf9:	75 04                	jne    0x514cff
514cfb:	8b e9                	mov    %ecx,%ebp
514cfd:	eb 0b                	jmp    0x514d0a
514cff:	8d 45 10             	lea    0x10(%ebp),%eax
514d02:	3b c8                	cmp    %eax,%ecx
514d04:	0f 85 65 01 00 00    	jne    0x514e6f
514d0a:	8d 04 2f             	lea    (%edi,%ebp,1),%eax
514d0d:	89 44 24 14          	mov    %eax,0x14(%esp)
514d11:	8d 8b d0 00 00 00    	lea    0xd0(%ebx),%ecx
514d17:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
514d1a:	89 44 24 18          	mov    %eax,0x18(%esp)
514d1e:	8b 44 24 10          	mov    0x10(%esp),%eax
514d22:	55                   	push   %ebp
514d23:	57                   	push   %edi
514d24:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
514d28:	74 17                	je     0x514d41
514d2a:	56                   	push   %esi
514d2b:	50                   	push   %eax
514d2c:	e8 9f fb ff ff       	call   0x5148d0
514d31:	55                   	push   %ebp
514d32:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
514d38:	56                   	push   %esi
514d39:	50                   	push   %eax
514d3a:	e8 81 e6 01 00       	call   0x5333c0
514d3f:	eb 12                	jmp    0x514d53
514d41:	51                   	push   %ecx
514d42:	e8 79 e6 01 00       	call   0x5333c0
514d47:	55                   	push   %ebp
514d48:	57                   	push   %edi
514d49:	56                   	push   %esi
514d4a:	ff 74 24 28          	push   0x28(%esp)
514d4e:	e8 7d fb ff ff       	call   0x5148d0
514d53:	8b 44 24 30          	mov    0x30(%esp),%eax
514d57:	83 c4 1c             	add    $0x1c,%esp
514d5a:	01 ab b0 00 00 00    	add    %ebp,0xb0(%ebx)
514d60:	8b f8                	mov    %eax,%edi
514d62:	8b 4c 24 18          	mov    0x18(%esp),%ecx
514d66:	8b f1                	mov    %ecx,%esi
514d68:	83 93 b4 00 00 00 00 	adcl   $0x0,0xb4(%ebx)
514d6f:	85 c0                	test   %eax,%eax
514d71:	74 0a                	je     0x514d7d
514d73:	3b 6c 24 40          	cmp    0x40(%esp),%ebp
514d77:	0f 84 30 01 00 00    	je     0x514ead
514d7d:	b8 10 00 00 00       	mov    $0x10,%eax
514d82:	83 bb b8 00 00 00 00 	cmpl   $0x0,0xb8(%ebx)
514d89:	8d 8b d0 00 00 00    	lea    0xd0(%ebx),%ecx
514d8f:	74 2c                	je     0x514dbd
514d91:	8b 93 a8 00 00 00    	mov    0xa8(%ebx),%edx
514d97:	83 e2 0f             	and    $0xf,%edx
514d9a:	74 17                	je     0x514db3
514d9c:	2b c2                	sub    %edx,%eax
514d9e:	50                   	push   %eax
514d9f:	68 68 12 63 00       	push   $0x631268
514da4:	51                   	push   %ecx
514da5:	e8 16 e6 01 00       	call   0x5333c0
514daa:	83 c4 0c             	add    $0xc,%esp
514dad:	8d 8b d0 00 00 00    	lea    0xd0(%ebx),%ecx
514db3:	c7 83 b8 00 00 00 00 	movl   $0x0,0xb8(%ebx)
514dba:	00 00 00
514dbd:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
514dc3:	83 e0 0f             	and    $0xf,%eax
514dc6:	74 16                	je     0x514dde