414d43:	83 c4 f4             	add    $0xfffffff4,%esp
414d46:	89 4c 24 04          	mov    %ecx,0x4(%esp)
414d4a:	89 14 24             	mov    %edx,(%esp)
414d4d:	8b f0                	mov    %eax,%esi
414d4f:	8b 04 24             	mov    (%esp),%eax
414d52:	8b 50 0c             	mov    0xc(%eax),%edx
414d55:	89 54 24 08          	mov    %edx,0x8(%esp)
414d59:	8b 7e 30             	mov    0x30(%esi),%edi
414d5c:	3b 7e 34             	cmp    0x34(%esi),%edi
414d5f:	77 05                	ja     0x414d66
414d61:	8b 5e 34             	mov    0x34(%esi),%ebx
414d64:	eb 03                	jmp    0x414d69
414d66:	8b 5e 2c             	mov    0x2c(%esi),%ebx
414d69:	2b df                	sub    %edi,%ebx
414d6b:	8b 04 24             	mov    (%esp),%eax
414d6e:	8b 40 10             	mov    0x10(%eax),%eax
414d71:	3b d8                	cmp    %eax,%ebx
414d73:	76 02                	jbe    0x414d77
414d75:	8b d8                	mov    %eax,%ebx
414d77:	85 db                	test   %ebx,%ebx
414d79:	74 0d                	je     0x414d88
414d7b:	83 7c 24 04 fb       	cmpl   $0xfffffffb,0x4(%esp)
414d80:	75 06                	jne    0x414d88
414d82:	33 c0                	xor    %eax,%eax
414d84:	89 44 24 04          	mov    %eax,0x4(%esp)
414d88:	8b 14 24             	mov    (%esp),%edx
414d8b:	29 5a 10             	sub    %ebx,0x10(%edx)
414d8e:	8b 0c 24             	mov    (%esp),%ecx
414d91:	01 59 14             	add    %ebx,0x14(%ecx)
414d94:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
414d98:	74 13                	je     0x414dad
414d9a:	8b cb                	mov    %ebx,%ecx
414d9c:	8b d7                	mov    %edi,%edx
414d9e:	8b 46 3c             	mov    0x3c(%esi),%eax
414da1:	ff 56 38             	call   *0x38(%esi)
414da4:	89 46 3c             	mov    %eax,0x3c(%esi)
414da7:	8b 14 24             	mov    (%esp),%edx
414daa:	89 42 30             	mov    %eax,0x30(%edx)
414dad:	53                   	push   %ebx
414dae:	57                   	push   %edi
414daf:	8b 4c 24 10          	mov    0x10(%esp),%ecx
414db3:	51                   	push   %ecx
414db4:	e8 eb a5 ff ff       	call   0x40f3a4
414db9:	83 c4 0c             	add    $0xc,%esp
414dbc:	8b c3                	mov    %ebx,%eax
414dbe:	01 44 24 08          	add    %eax,0x8(%esp)
414dc2:	03 f8                	add    %eax,%edi
414dc4:	8b 46 2c             	mov    0x2c(%esi),%eax
414dc7:	3b f8                	cmp    %eax,%edi
414dc9:	75 6b                	jne    0x414e36
414dcb:	8b 56 28             	mov    0x28(%esi),%edx
414dce:	3b 46 34             	cmp    0x34(%esi),%eax
414dd1:	8b fa                	mov    %edx,%edi
414dd3:	75 03                	jne    0x414dd8
414dd5:	89 56 34             	mov    %edx,0x34(%esi)
414dd8:	8b 04 24             	mov    (%esp),%eax
414ddb:	8b 5e 34             	mov    0x34(%esi),%ebx
414dde:	2b df                	sub    %edi,%ebx
414de0:	8b 40 10             	mov    0x10(%eax),%eax
414de3:	3b d8                	cmp    %eax,%ebx
414de5:	76 02                	jbe    0x414de9
414de7:	8b d8                	mov    %eax,%ebx
414de9:	85 db                	test   %ebx,%ebx
414deb:	74 0d                	je     0x414dfa
414ded:	83 7c 24 04 fb       	cmpl   $0xfffffffb,0x4(%esp)
414df2:	75 06                	jne    0x414dfa
414df4:	33 c0                	xor    %eax,%eax
414df6:	89 44 24 04          	mov    %eax,0x4(%esp)
414dfa:	8b 14 24             	mov    (%esp),%edx
414dfd:	29 5a 10             	sub    %ebx,0x10(%edx)
414e00:	8b 0c 24             	mov    (%esp),%ecx
414e03:	01 59 14             	add    %ebx,0x14(%ecx)
414e06:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
414e0a:	74 13                	je     0x414e1f
414e0c:	8b cb                	mov    %ebx,%ecx
414e0e:	8b d7                	mov    %edi,%edx
414e10:	8b 46 3c             	mov    0x3c(%esi),%eax
414e13:	ff 56 38             	call   *0x38(%esi)
414e16:	89 46 3c             	mov    %eax,0x3c(%esi)
414e19:	8b 14 24             	mov    (%esp),%edx
414e1c:	89 42 30             	mov    %eax,0x30(%edx)
414e1f:	53                   	push   %ebx
414e20:	57                   	push   %edi
414e21:	8b 4c 24 10          	mov    0x10(%esp),%ecx
414e25:	51                   	push   %ecx
414e26:	e8 79 a5 ff ff       	call   0x40f3a4
414e2b:	83 c4 0c             	add    $0xc,%esp
414e2e:	8b c3                	mov    %ebx,%eax
414e30:	01 44 24 08          	add    %eax,0x8(%esp)
414e34:	03 f8                	add    %eax,%edi
414e36:	8b 14 24             	mov    (%esp),%edx
414e39:	8b 4c 24 08          	mov    0x8(%esp),%ecx
414e3d:	89 4a 0c             	mov    %ecx,0xc(%edx)
414e40:	89 7e 30             	mov    %edi,0x30(%esi)
414e43:	8b 44 24 04          	mov    0x4(%esp),%eax
414e47:	83 c4 0c             	add    $0xc,%esp
414e4a:	5f                   	pop    %edi
414e4b:	5e                   	pop    %esi
414e4c:	5b                   	pop    %ebx
414e4d:	c3                   	ret
414e4e:	8b c0                	mov    %eax,%eax
414e50:	55                   	push   %ebp
414e51:	8b ec                	mov    %esp,%ebp
414e53:	83 c4 d8             	add    $0xffffffd8,%esp
414e56:	53                   	push   %ebx
414e57:	56                   	push   %esi
414e58:	57                   	push   %edi
414e59:	89 4d f8             	mov    %ecx,-0x8(%ebp)
414e5c:	89 55 fc             	mov    %edx,-0x4(%ebp)
414e5f:	8b 55 08             	mov    0x8(%ebp),%edx
414e62:	8b 32                	mov    (%edx),%esi
414e64:	8b 55 08             	mov    0x8(%ebp),%edx
414e67:	8b 4a 04             	mov    0x4(%edx),%ecx
414e6a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
414e6d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e70:	8b 55 0c             	mov    0xc(%ebp),%edx
414e73:	8b 59 1c             	mov    0x1c(%ecx),%ebx
414e76:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e79:	8b 52 20             	mov    0x20(%edx),%edx
414e7c:	8b 49 34             	mov    0x34(%ecx),%ecx
414e7f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
414e82:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e85:	8b 49 30             	mov    0x30(%ecx),%ecx
414e88:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
414e8b:	76 0c                	jbe    0x414e99
414e8d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e90:	8b 49 30             	mov    0x30(%ecx),%ecx
414e93:	2b 4d e8             	sub    -0x18(%ebp),%ecx
414e96:	49                   	dec    %ecx
414e97:	eb 09                	jmp    0x414ea2
414e99:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e9c:	8b 49 2c             	mov    0x2c(%ecx),%ecx
414e9f:	2b 4d e8             	sub    -0x18(%ebp),%ecx
414ea2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
414ea5:	8b 04 85 50 85 42 00 	mov    0x428550(,%eax,4),%eax
414eac:	89 45 e0             	mov    %eax,-0x20(%ebp)
414eaf:	8b 45 fc             	mov    -0x4(%ebp),%eax
414eb2:	8b 0c 85 50 85 42 00 	mov    0x428550(,%eax,4),%ecx
414eb9:	89 4d dc             	mov    %ecx,-0x24(%ebp)
414ebc:	83 fb 14             	cmp    $0x14,%ebx
414ebf:	73 19                	jae    0x414eda
414ec1:	ff 4d ec             	decl   -0x14(%ebp)
414ec4:	8b cb                	mov    %ebx,%ecx
414ec6:	8a 06                	mov    (%esi),%al
414ec8:	46                   	inc    %esi
414ec9:	25 ff 00 00 00       	and    $0xff,%eax
414ece:	83 c3 08             	add    $0x8,%ebx
414ed1:	d3 e0                	shl    %cl,%eax
414ed3:	0b d0                	or     %eax,%edx
414ed5:	83 fb 14             	cmp    $0x14,%ebx
414ed8:	72 e7                	jb     0x414ec1
414eda:	8b 4d e0             	mov    -0x20(%ebp),%ecx
414edd:	23 ca                	and    %edx,%ecx
414edf:	c1 e1 03             	shl    $0x3,%ecx
414ee2:	03 4d f8             	add    -0x8(%ebp),%ecx
414ee5:	89 4d f4             	mov    %ecx,-0xc(%ebp)
414ee8:	33 c0                	xor    %eax,%eax
414eea:	8a 01                	mov    (%ecx),%al
414eec:	89 45 f0             	mov    %eax,-0x10(%ebp)
414eef:	85 c0                	test   %eax,%eax
414ef1:	75 27                	jne    0x414f1a
414ef3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414ef6:	8a 41 01             	mov    0x1(%ecx),%al
414ef9:	8b c8                	mov    %eax,%ecx
414efb:	25 ff 00 00 00       	and    $0xff,%eax
414f00:	d3 ea                	shr    %cl,%edx
414f02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414f05:	2b d8                	sub    %eax,%ebx
414f07:	8a 41 04             	mov    0x4(%ecx),%al
414f0a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
414f0d:	88 01                	mov    %al,(%ecx)
414f0f:	ff 45 e8             	incl   -0x18(%ebp)
414f12:	ff 4d e4             	decl   -0x1c(%ebp)
414f15:	e9 87 03 00 00       	jmp    0x4152a1
414f1a:	8b 45 f4             	mov    -0xc(%ebp),%eax
414f1d:	8a 40 01             	mov    0x1(%eax),%al
414f20:	8b c8                	mov    %eax,%ecx
414f22:	25 ff 00 00 00       	and    $0xff,%eax
414f27:	d3 ea                	shr    %cl,%edx
414f29:	2b d8                	sub    %eax,%ebx
414f2b:	f6 45 f0 10          	testb  $0x10,-0x10(%ebp)
414f2f:	0f 84 40 02 00 00    	je     0x415175
414f35:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)
414f39:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414f3c:	2b 5d f0             	sub    -0x10(%ebp),%ebx
414f3f:	8b 41 04             	mov    0x4(%ecx),%eax
414f42:	8b 4d f0             	mov    -0x10(%ebp),%ecx
414f45:	8b 0c 8d 50 85 42 00 	mov    0x428550(,%ecx,4),%ecx
414f4c:	23 ca                	and    %edx,%ecx
414f4e:	03 c1                	add    %ecx,%eax
414f50:	8b 4d f0             	mov    -0x10(%ebp),%ecx
414f53:	d3 ea                	shr    %cl,%edx
414f55:	83 fb 0f             	cmp    $0xf,%ebx
414f58:	73 1c                	jae    0x414f76
414f5a:	ff 4d ec             	decl   -0x14(%ebp)
414f5d:	8a 0e                	mov    (%esi),%cl
414f5f:	46                   	inc    %esi
414f60:	8b f9                	mov    %ecx,%edi
414f62:	8b cb                	mov    %ebx,%ecx
414f64:	81 e7 ff 00 00 00    	and    $0xff,%edi
414f6a:	83 c3 08             	add    $0x8,%ebx
414f6d:	d3 e7                	shl    %cl,%edi
414f6f:	0b d7                	or     %edi,%edx
414f71:	83 fb 0f             	cmp    $0xf,%ebx
414f74:	72 e4                	jb     0x414f5a
414f76:	8b 4d dc             	mov    -0x24(%ebp),%ecx
414f79:	23 ca                	and    %edx,%ecx
414f7b:	c1 e1 03             	shl    $0x3,%ecx
414f7e:	03 4d 10             	add    0x10(%ebp),%ecx
414f81:	89 4d f4             	mov    %ecx,-0xc(%ebp)
414f84:	0f b6 09             	movzbl (%ecx),%ecx
414f87:	89 4d f0             	mov    %ecx,-0x10(%ebp)
414f8a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414f8d:	8a 49 01             	mov    0x1(%ecx),%cl
414f90:	d3 ea                	shr    %cl,%edx
414f92:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414f95:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
414f99:	2b d9                	sub    %ecx,%ebx
414f9b:	f6 45 f0 10          	testb  $0x10,-0x10(%ebp)
414f9f:	0f 84 33 01 00 00    	je     0x4150d8
414fa5:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)
414fa9:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
414fac:	73 1c                	jae    0x414fca
414fae:	ff 4d ec             	decl   -0x14(%ebp)
414fb1:	8a 0e                	mov    (%esi),%cl
414fb3:	46                   	inc    %esi
414fb4:	8b f9                	mov    %ecx,%edi
414fb6:	8b cb                	mov    %ebx,%ecx
414fb8:	81 e7 ff 00 00 00    	and    $0xff,%edi
414fbe:	83 c3 08             	add    $0x8,%ebx
414fc1:	d3 e7                	shl    %cl,%edi
414fc3:	0b d7                	or     %edi,%edx
414fc5:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
414fc8:	72 e4                	jb     0x414fae
414fca:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414fcd:	8b 79 04             	mov    0x4(%ecx),%edi
414fd0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
414fd3:	8b 0c 8d 50 85 42 00 	mov    0x428550(,%ecx,4),%ecx
414fda:	23 ca                	and    %edx,%ecx
414fdc:	03 f9                	add    %ecx,%edi
414fde:	8b 4d f0             	mov    -0x10(%ebp),%ecx
414fe1:	d3 ea                	shr    %cl,%edx
414fe3:	2b 5d f0             	sub    -0x10(%ebp),%ebx
414fe6:	29 45 e4             	sub    %eax,-0x1c(%ebp)
414fe9:	8b 4d e8             	mov    -0x18(%ebp),%ecx
414fec:	2b cf                	sub    %edi,%ecx
414fee:	89 4d d8             	mov    %ecx,-0x28(%ebp)
414ff1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414ff4:	8b 49 28             	mov    0x28(%ecx),%ecx
414ff7:	3b 4d d8             	cmp    -0x28(%ebp),%ecx
414ffa:	0f 86 9e 00 00 00    	jbe    0x41509e
415000:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415003:	8b 7d 0c             	mov    0xc(%ebp),%edi
415006:	8b 49 2c             	mov    0x2c(%ecx),%ecx
415009:	2b 4f 28             	sub    0x28(%edi),%ecx
41500c:	01 4d d8             	add    %ecx,-0x28(%ebp)
41500f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415012:	8b 49 28             	mov    0x28(%ecx),%ecx
415015:	3b 4d d8             	cmp    -0x28(%ebp),%ecx
415018:	77 e6                	ja     0x415000
41501a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41501d:	8b 49 2c             	mov    0x2c(%ecx),%ecx
415020:	2b 4d d8             	sub    -0x28(%ebp),%ecx
415023:	89 4d f0             	mov    %ecx,-0x10(%ebp)
415026:	3b 45 f0             	cmp    -0x10(%ebp),%eax
415029:	76 39                	jbe    0x415064
41502b:	2b 45 f0             	sub    -0x10(%ebp),%eax
41502e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
415031:	8b 7d e8             	mov    -0x18(%ebp),%edi
415034:	8a 09                	mov    (%ecx),%cl
415036:	88 0f                	mov    %cl,(%edi)
415038:	ff 45 d8             	incl   -0x28(%ebp)
41503b:	ff 45 e8             	incl   -0x18(%ebp)
41503e:	ff 4d f0             	decl   -0x10(%ebp)
415041:	75 eb                	jne    0x41502e
415043:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415046:	8b 49 28             	mov    0x28(%ecx),%ecx
415049:	89 4d d8             	mov    %ecx,-0x28(%ebp)
41504c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
41504f:	8b 7d e8             	mov    -0x18(%ebp),%edi
415052:	8a 09                	mov    (%ecx),%cl
415054:	88 0f                	mov    %cl,(%edi)
415056:	ff 45 d8             	incl   -0x28(%ebp)
415059:	ff 45 e8             	incl   -0x18(%ebp)
41505c:	48                   	dec    %eax
41505d:	75 ed                	jne    0x41504c
41505f:	e9 3d 02 00 00       	jmp    0x4152a1
415064:	8b 4d d8             	mov    -0x28(%ebp),%ecx
415067:	8b 7d e8             	mov    -0x18(%ebp),%edi
41506a:	48                   	dec    %eax
41506b:	8a 09                	mov    (%ecx),%cl
41506d:	88 0f                	mov    %cl,(%edi)
41506f:	ff 45 d8             	incl   -0x28(%ebp)
415072:	ff 45 e8             	incl   -0x18(%ebp)
415075:	8b 4d d8             	mov    -0x28(%ebp),%ecx
415078:	8b 7d e8             	mov    -0x18(%ebp),%edi
41507b:	8a 09                	mov    (%ecx),%cl
41507d:	88 0f                	mov    %cl,(%edi)
41507f:	ff 45 d8             	incl   -0x28(%ebp)
415082:	ff 45 e8             	incl   -0x18(%ebp)
415085:	48                   	dec    %eax
415086:	8b 4d d8             	mov    -0x28(%ebp),%ecx
415089:	8b 7d e8             	mov    -0x18(%ebp),%edi
41508c:	8a 09                	mov    (%ecx),%cl
41508e:	88 0f                	mov    %cl,(%edi)
415090:	ff 45 d8             	incl   -0x28(%ebp)
415093:	ff 45 e8             	incl   -0x18(%ebp)
415096:	48                   	dec    %eax
415097:	75 ed                	jne    0x415086
415099:	e9 03 02 00 00       	jmp    0x4152a1
41509e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4150a1:	8b 7d e8             	mov    -0x18(%ebp),%edi
4150a4:	48                   	dec    %eax
4150a5:	8a 09                	mov    (%ecx),%cl
4150a7:	88 0f                	mov    %cl,(%edi)
4150a9:	ff 45 d8             	incl   -0x28(%ebp)
4150ac:	ff 45 e8             	incl   -0x18(%ebp)
4150af:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4150b2:	8b 7d e8             	mov    -0x18(%ebp),%edi
4150b5:	8a 09                	mov    (%ecx),%cl
4150b7:	88 0f                	mov    %cl,(%edi)
4150b9:	ff 45 d8             	incl   -0x28(%ebp)
4150bc:	ff 45 e8             	incl   -0x18(%ebp)
4150bf:	48                   	dec    %eax
4150c0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4150c3:	8b 7d e8             	mov    -0x18(%ebp),%edi
4150c6:	8a 09                	mov    (%ecx),%cl
4150c8:	88 0f                	mov    %cl,(%edi)
4150ca:	ff 45 d8             	incl   -0x28(%ebp)
4150cd:	ff 45 e8             	incl   -0x18(%ebp)
4150d0:	48                   	dec    %eax
4150d1:	75 ed                	jne    0x4150c0
4150d3:	e9 c9 01 00 00       	jmp    0x4152a1
4150d8:	f6 45 f0 40          	testb  $0x40,-0x10(%ebp)
4150dc:	75 2c                	jne    0x41510a
4150de:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150e1:	8b 49 04             	mov    0x4(%ecx),%ecx
4150e4:	c1 e1 03             	shl    $0x3,%ecx
4150e7:	01 4d f4             	add    %ecx,-0xc(%ebp)
4150ea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4150ed:	8b 0c 8d 50 85 42 00 	mov    0x428550(,%ecx,4),%ecx
4150f4:	23 ca                	and    %edx,%ecx
4150f6:	c1 e1 03             	shl    $0x3,%ecx
4150f9:	01 4d f4             	add    %ecx,-0xc(%ebp)
4150fc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150ff:	0f b6 09             	movzbl (%ecx),%ecx
415102:	89 4d f0             	mov    %ecx,-0x10(%ebp)
415105:	e9 80 fe ff ff       	jmp    0x414f8a
41510a:	8b 45 08             	mov    0x8(%ebp),%eax
41510d:	8b cb                	mov    %ebx,%ecx