404f0a:	8b f1                	mov    %ecx,%esi
404f0c:	b8 23 00 00 80       	mov    $0x80000023,%eax
404f11:	50                   	push   %eax
404f12:	e8 05 27 00 00       	call   0x40761c
404f17:	83 c4 04             	add    $0x4,%esp
404f1a:	85 c0                	test   %eax,%eax
404f1c:	0f 84 fa 00 00 00    	je     0x40501c
404f22:	8b 55 fc             	mov    -0x4(%ebp),%edx
404f25:	8d 78 23             	lea    0x23(%eax),%edi
404f28:	83 e7 e0             	and    $0xffffffe0,%edi
404f2b:	89 47 fc             	mov    %eax,-0x4(%edi)
404f2e:	eb 46                	jmp    0x404f76
404f30:	8b c7                	mov    %edi,%eax
404f32:	d1 e8                	shr    $1,%eax
404f34:	2b c8                	sub    %eax,%ecx
404f36:	3b f9                	cmp    %ecx,%edi
404f38:	76 07                	jbe    0x404f41
404f3a:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
404f3f:	eb cb                	jmp    0x404f0c
404f41:	03 c7                	add    %edi,%eax
404f43:	3b f0                	cmp    %eax,%esi
404f45:	0f 42 f0             	cmovb  %eax,%esi
404f48:	8d 4e 01             	lea    0x1(%esi),%ecx
404f4b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f51:	72 0d                	jb     0x404f60
404f53:	8d 41 23             	lea    0x23(%ecx),%eax
404f56:	3b c1                	cmp    %ecx,%eax
404f58:	0f 86 b9 00 00 00    	jbe    0x405017
404f5e:	eb b1                	jmp    0x404f11
404f60:	85 c9                	test   %ecx,%ecx
404f62:	74 10                	je     0x404f74
404f64:	51                   	push   %ecx
404f65:	e8 b2 26 00 00       	call   0x40761c
404f6a:	8b 55 fc             	mov    -0x4(%ebp),%edx
404f6d:	83 c4 04             	add    $0x4,%esp
404f70:	8b f8                	mov    %eax,%edi
404f72:	eb 02                	jmp    0x404f76
404f74:	33 ff                	xor    %edi,%edi
404f76:	8b 45 f8             	mov    -0x8(%ebp),%eax
404f79:	89 43 10             	mov    %eax,0x10(%ebx)
404f7c:	8b 45 14             	mov    0x14(%ebp),%eax
404f7f:	89 73 14             	mov    %esi,0x14(%ebx)
404f82:	8d 34 17             	lea    (%edi,%edx,1),%esi
404f85:	03 c6                	add    %esi,%eax
404f87:	89 75 f8             	mov    %esi,-0x8(%ebp)
404f8a:	83 7d 08 10          	cmpl   $0x10,0x8(%ebp)
404f8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f91:	52                   	push   %edx
404f92:	72 55                	jb     0x404fe9
404f94:	8b 33                	mov    (%ebx),%esi
404f96:	56                   	push   %esi
404f97:	57                   	push   %edi
404f98:	e8 d3 39 00 00       	call   0x408970
404f9d:	ff 75 14             	push   0x14(%ebp)
404fa0:	ff 75 10             	push   0x10(%ebp)
404fa3:	ff 75 f8             	push   -0x8(%ebp)
404fa6:	e8 c5 39 00 00       	call   0x408970
404fab:	8b 45 fc             	mov    -0x4(%ebp),%eax
404fae:	83 c4 18             	add    $0x18,%esp
404fb1:	8b 4d 08             	mov    0x8(%ebp),%ecx
404fb4:	41                   	inc    %ecx
404fb5:	c6 00 00             	movb   $0x0,(%eax)
404fb8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404fbe:	72 12                	jb     0x404fd2
404fc0:	8b 56 fc             	mov    -0x4(%esi),%edx
404fc3:	83 c1 23             	add    $0x23,%ecx
404fc6:	2b f2                	sub    %edx,%esi
404fc8:	8d 46 fc             	lea    -0x4(%esi),%eax
404fcb:	83 f8 1f             	cmp    $0x1f,%eax
404fce:	77 4c                	ja     0x40501c
404fd0:	8b f2                	mov    %edx,%esi
404fd2:	51                   	push   %ecx
404fd3:	56                   	push   %esi
404fd4:	e8 73 26 00 00       	call   0x40764c
404fd9:	83 c4 08             	add    $0x8,%esp
404fdc:	89 3b                	mov    %edi,(%ebx)
404fde:	8b c3                	mov    %ebx,%eax
404fe0:	5f                   	pop    %edi
404fe1:	5e                   	pop    %esi
404fe2:	5b                   	pop    %ebx
404fe3:	8b e5                	mov    %ebp,%esp
404fe5:	5d                   	pop    %ebp
404fe6:	c2 10 00             	ret    $0x10
404fe9:	53                   	push   %ebx
404fea:	57                   	push   %edi
404feb:	e8 80 39 00 00       	call   0x408970
404ff0:	ff 75 14             	push   0x14(%ebp)
404ff3:	ff 75 10             	push   0x10(%ebp)
404ff6:	56                   	push   %esi
404ff7:	e8 74 39 00 00       	call   0x408970
404ffc:	8b 45 fc             	mov    -0x4(%ebp),%eax
404fff:	83 c4 18             	add    $0x18,%esp
405002:	c6 00 00             	movb   $0x0,(%eax)
405005:	8b c3                	mov    %ebx,%eax
405007:	89 3b                	mov    %edi,(%ebx)
405009:	5f                   	pop    %edi
40500a:	5e                   	pop    %esi
40500b:	5b                   	pop    %ebx
40500c:	8b e5                	mov    %ebp,%esp
40500e:	5d                   	pop    %ebp
40500f:	c2 10 00             	ret    $0x10
405012:	e8 99 c3 ff ff       	call   0x4013b0
405017:	e8 c4 c2 ff ff       	call   0x4012e0
40501c:	e8 70 80 00 00       	call   0x40d091
405021:	cc                   	int3
405022:	cc                   	int3
405023:	cc                   	int3
405024:	cc                   	int3
405025:	cc                   	int3
405026:	cc                   	int3
405027:	cc                   	int3
405028:	cc                   	int3
405029:	cc                   	int3
40502a:	cc                   	int3
40502b:	cc                   	int3
40502c:	cc                   	int3
40502d:	cc                   	int3
40502e:	cc                   	int3
40502f:	cc                   	int3
405030:	55                   	push   %ebp
405031:	8b ec                	mov    %esp,%ebp
405033:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405036:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40503c:	72 18                	jb     0x405056
40503e:	8b 45 08             	mov    0x8(%ebp),%eax
405041:	83 c1 23             	add    $0x23,%ecx
405044:	8b 50 fc             	mov    -0x4(%eax),%edx
405047:	2b c2                	sub    %edx,%eax
405049:	83 c0 fc             	add    $0xfffffffc,%eax
40504c:	83 f8 1f             	cmp    $0x1f,%eax
40504f:	76 08                	jbe    0x405059
405051:	e9 3b 80 00 00       	jmp    0x40d091
405056:	8b 55 08             	mov    0x8(%ebp),%edx
405059:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40505c:	89 55 08             	mov    %edx,0x8(%ebp)
40505f:	5d                   	pop    %ebp
405060:	e9 e7 25 00 00       	jmp    0x40764c
405065:	cc                   	int3
405066:	cc                   	int3
405067:	cc                   	int3
405068:	cc                   	int3
405069:	cc                   	int3
40506a:	cc                   	int3
40506b:	cc                   	int3
40506c:	cc                   	int3
40506d:	cc                   	int3
40506e:	cc                   	int3
40506f:	cc                   	int3
405070:	55                   	push   %ebp
405071:	8b ec                	mov    %esp,%ebp
405073:	8b 45 08             	mov    0x8(%ebp),%eax
405076:	3d 00 10 00 00       	cmp    $0x1000,%eax
40507b:	72 2a                	jb     0x4050a7
40507d:	8d 48 23             	lea    0x23(%eax),%ecx
405080:	3b c8                	cmp    %eax,%ecx
405082:	0f 86 58 c2 ff ff    	jbe    0x4012e0
405088:	51                   	push   %ecx
405089:	e8 8e 25 00 00       	call   0x40761c
40508e:	8b c8                	mov    %eax,%ecx
405090:	83 c4 04             	add    $0x4,%esp
405093:	85 c9                	test   %ecx,%ecx
405095:	74 0b                	je     0x4050a2
405097:	8d 41 23             	lea    0x23(%ecx),%eax
40509a:	83 e0 e0             	and    $0xffffffe0,%eax
40509d:	89 48 fc             	mov    %ecx,-0x4(%eax)
4050a0:	5d                   	pop    %ebp
4050a1:	c3                   	ret
4050a2:	e9 ea 7f 00 00       	jmp    0x40d091
4050a7:	85 c0                	test   %eax,%eax
4050a9:	74 09                	je     0x4050b4
4050ab:	89 45 08             	mov    %eax,0x8(%ebp)
4050ae:	5d                   	pop    %ebp
4050af:	e9 68 25 00 00       	jmp    0x40761c
4050b4:	33 c0                	xor    %eax,%eax
4050b6:	5d                   	pop    %ebp
4050b7:	c3                   	ret
4050b8:	cc                   	int3
4050b9:	cc                   	int3
4050ba:	cc                   	int3
4050bb:	cc                   	int3
4050bc:	cc                   	int3
4050bd:	cc                   	int3
4050be:	cc                   	int3
4050bf:	cc                   	int3
4050c0:	55                   	push   %ebp
4050c1:	8b ec                	mov    %esp,%ebp
4050c3:	83 ec 0c             	sub    $0xc,%esp
4050c6:	8b 55 08             	mov    0x8(%ebp),%edx
4050c9:	53                   	push   %ebx
4050ca:	8b d9                	mov    %ecx,%ebx
4050cc:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4050d1:	56                   	push   %esi
4050d2:	8b c1                	mov    %ecx,%eax
4050d4:	57                   	push   %edi
4050d5:	8b 73 10             	mov    0x10(%ebx),%esi
4050d8:	2b c6                	sub    %esi,%eax
4050da:	89 75 fc             	mov    %esi,-0x4(%ebp)
4050dd:	3b c2                	cmp    %edx,%eax
4050df:	0f 82 40 01 00 00    	jb     0x405225
4050e5:	8b 7b 14             	mov    0x14(%ebx),%edi
4050e8:	8d 04 16             	lea    (%esi,%edx,1),%eax
4050eb:	8b f0                	mov    %eax,%esi
4050ed:	89 45 f8             	mov    %eax,-0x8(%ebp)
4050f0:	83 ce 0f             	or     $0xf,%esi
4050f3:	89 7d 08             	mov    %edi,0x8(%ebp)
4050f6:	3b f1                	cmp    %ecx,%esi
4050f8:	76 23                	jbe    0x40511d
4050fa:	8b f1                	mov    %ecx,%esi
4050fc:	b8 23 00 00 80       	mov    $0x80000023,%eax
405101:	50                   	push   %eax
405102:	e8 15 25 00 00       	call   0x40761c
405107:	83 c4 04             	add    $0x4,%esp
40510a:	85 c0                	test   %eax,%eax
40510c:	0f 84 1d 01 00 00    	je     0x40522f
405112:	8d 78 23             	lea    0x23(%eax),%edi
405115:	83 e7 e0             	and    $0xffffffe0,%edi
405118:	89 47 fc             	mov    %eax,-0x4(%edi)
40511b:	eb 43                	jmp    0x405160
40511d:	8b c7                	mov    %edi,%eax
40511f:	d1 e8                	shr    $1,%eax
405121:	2b c8                	sub    %eax,%ecx
405123:	3b f9                	cmp    %ecx,%edi
405125:	76 07                	jbe    0x40512e
405127:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40512c:	eb ce                	jmp    0x4050fc
40512e:	03 c7                	add    %edi,%eax
405130:	3b f0                	cmp    %eax,%esi
405132:	0f 42 f0             	cmovb  %eax,%esi
405135:	8d 4e 01             	lea    0x1(%esi),%ecx
405138:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40513e:	72 0d                	jb     0x40514d
405140:	8d 41 23             	lea    0x23(%ecx),%eax
405143:	3b c1                	cmp    %ecx,%eax
405145:	0f 86 df 00 00 00    	jbe    0x40522a
40514b:	eb b4                	jmp    0x405101
40514d:	85 c9                	test   %ecx,%ecx
40514f:	74 0d                	je     0x40515e
405151:	51                   	push   %ecx
405152:	e8 c5 24 00 00       	call   0x40761c
405157:	83 c4 04             	add    $0x4,%esp
40515a:	8b f8                	mov    %eax,%edi
40515c:	eb 02                	jmp    0x405160
40515e:	33 ff                	xor    %edi,%edi
405160:	8b 45 f8             	mov    -0x8(%ebp),%eax
405163:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405166:	89 43 10             	mov    %eax,0x10(%ebx)
405169:	0f be 45 18          	movsbl 0x18(%ebp),%eax
40516d:	89 45 18             	mov    %eax,0x18(%ebp)
405170:	8b 45 10             	mov    0x10(%ebp),%eax
405173:	2b c8                	sub    %eax,%ecx
405175:	41                   	inc    %ecx
405176:	89 73 14             	mov    %esi,0x14(%ebx)
405179:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40517c:	8b 4d 14             	mov    0x14(%ebp),%ecx
40517f:	8d 34 07             	lea    (%edi,%eax,1),%esi
405182:	03 ce                	add    %esi,%ecx
405184:	89 75 f4             	mov    %esi,-0xc(%ebp)
405187:	83 7d 08 10          	cmpl   $0x10,0x8(%ebp)
40518b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40518e:	50                   	push   %eax
40518f:	72 60                	jb     0x4051f1
405191:	8b 33                	mov    (%ebx),%esi
405193:	56                   	push   %esi
405194:	57                   	push   %edi
405195:	e8 d6 37 00 00       	call   0x408970
40519a:	ff 75 14             	push   0x14(%ebp)
40519d:	ff 75 18             	push   0x18(%ebp)
4051a0:	ff 75 f4             	push   -0xc(%ebp)
4051a3:	e8 48 3d 00 00       	call   0x408ef0
4051a8:	ff 75 fc             	push   -0x4(%ebp)
4051ab:	8b 45 10             	mov    0x10(%ebp),%eax
4051ae:	03 c6                	add    %esi,%eax
4051b0:	50                   	push   %eax
4051b1:	ff 75 f8             	push   -0x8(%ebp)
4051b4:	e8 b7 37 00 00       	call   0x408970
4051b9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4051bc:	83 c4 24             	add    $0x24,%esp
4051bf:	41                   	inc    %ecx
4051c0:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4051c6:	72 12                	jb     0x4051da
4051c8:	8b 56 fc             	mov    -0x4(%esi),%edx
4051cb:	83 c1 23             	add    $0x23,%ecx
4051ce:	2b f2                	sub    %edx,%esi
4051d0:	8d 46 fc             	lea    -0x4(%esi),%eax
4051d3:	83 f8 1f             	cmp    $0x1f,%eax
4051d6:	77 57                	ja     0x40522f
4051d8:	8b f2                	mov    %edx,%esi
4051da:	51                   	push   %ecx
4051db:	56                   	push   %esi
4051dc:	e8 6b 24 00 00       	call   0x40764c
4051e1:	83 c4 08             	add    $0x8,%esp
4051e4:	89 3b                	mov    %edi,(%ebx)
4051e6:	8b c3                	mov    %ebx,%eax
4051e8:	5f                   	pop    %edi
4051e9:	5e                   	pop    %esi
4051ea:	5b                   	pop    %ebx
4051eb:	8b e5                	mov    %ebp,%esp
4051ed:	5d                   	pop    %ebp
4051ee:	c2 14 00             	ret    $0x14
4051f1:	53                   	push   %ebx
4051f2:	57                   	push   %edi
4051f3:	e8 78 37 00 00       	call   0x408970
4051f8:	ff 75 14             	push   0x14(%ebp)
4051fb:	ff 75 18             	push   0x18(%ebp)
4051fe:	56                   	push   %esi
4051ff:	e8 ec 3c 00 00       	call   0x408ef0
405204:	ff 75 fc             	push   -0x4(%ebp)
405207:	8b 45 10             	mov    0x10(%ebp),%eax
40520a:	03 c3                	add    %ebx,%eax
40520c:	50                   	push   %eax
40520d:	ff 75 f8             	push   -0x8(%ebp)
405210:	e8 5b 37 00 00       	call   0x408970
405215:	83 c4 24             	add    $0x24,%esp
405218:	89 3b                	mov    %edi,(%ebx)
40521a:	8b c3                	mov    %ebx,%eax
40521c:	5f                   	pop    %edi
40521d:	5e                   	pop    %esi
40521e:	5b                   	pop    %ebx
40521f:	8b e5                	mov    %ebp,%esp
405221:	5d                   	pop    %ebp
405222:	c2 14 00             	ret    $0x14
405225:	e8 86 c1 ff ff       	call   0x4013b0
40522a:	e8 b1 c0 ff ff       	call   0x4012e0
40522f:	e8 5d 7e 00 00       	call   0x40d091
405234:	cc                   	int3
405235:	cc                   	int3
405236:	cc                   	int3
405237:	cc                   	int3
405238:	cc                   	int3
405239:	cc                   	int3
40523a:	cc                   	int3
40523b:	cc                   	int3
40523c:	cc                   	int3
40523d:	cc                   	int3
40523e:	cc                   	int3
40523f:	cc                   	int3
405240:	55                   	push   %ebp
405241:	8b ec                	mov    %esp,%ebp
405243:	83 ec 08             	sub    $0x8,%esp
405246:	53                   	push   %ebx
405247:	8b d9                	mov    %ecx,%ebx
405249:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40524e:	8b c1                	mov    %ecx,%eax
405250:	56                   	push   %esi
405251:	8b 75 08             	mov    0x8(%ebp),%esi
405254:	8b 53 10             	mov    0x10(%ebx),%edx
405257:	2b c2                	sub    %edx,%eax
405259:	89 55 fc             	mov    %edx,-0x4(%ebp)
40525c:	57                   	push   %edi
40525d:	3b c6                	cmp    %esi,%eax