472fd1:	78 16                	js     0x472fe9
472fd3:	e8 c4 6c f9 ff       	call   0x409c9c
472fd8:	8b cf                	mov    %edi,%ecx
472fda:	8b f0                	mov    %eax,%esi
472fdc:	e8 bb 6c f9 ff       	call   0x409c9c
472fe1:	8b f8                	mov    %eax,%edi
472fe3:	8b ce                	mov    %esi,%ecx
472fe5:	d3 ff                	sar    %cl,%edi
472fe7:	eb 16                	jmp    0x472fff
472fe9:	e8 ae 6c f9 ff       	call   0x409c9c
472fee:	8b f0                	mov    %eax,%esi
472ff0:	8b cf                	mov    %edi,%ecx
472ff2:	f7 de                	neg    %esi
472ff4:	e8 a3 6c f9 ff       	call   0x409c9c
472ff9:	8b f8                	mov    %eax,%edi
472ffb:	8b ce                	mov    %esi,%ecx
472ffd:	d3 e7                	shl    %cl,%edi
472fff:	8b 75 0c             	mov    0xc(%ebp),%esi
473002:	8b ce                	mov    %esi,%ecx
473004:	e8 17 6a f9 ff       	call   0x409a20
473009:	89 3e                	mov    %edi,(%esi)
47300b:	33 c0                	xor    %eax,%eax
47300d:	5f                   	pop    %edi
47300e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473015:	5e                   	pop    %esi
473016:	5d                   	pop    %ebp
473017:	c2 08 00             	ret    $0x8
47301a:	55                   	push   %ebp
47301b:	8b ec                	mov    %esp,%ebp
47301d:	53                   	push   %ebx
47301e:	8b 5d 08             	mov    0x8(%ebp),%ebx
473021:	56                   	push   %esi
473022:	57                   	push   %edi
473023:	8b 43 08             	mov    0x8(%ebx),%eax
473026:	89 45 08             	mov    %eax,0x8(%ebp)
473029:	8b 43 04             	mov    0x4(%ebx),%eax
47302c:	8b 08                	mov    (%eax),%ecx
47302e:	e8 69 6c f9 ff       	call   0x409c9c
473033:	33 f6                	xor    %esi,%esi
473035:	8b f8                	mov    %eax,%edi
473037:	46                   	inc    %esi
473038:	39 75 08             	cmp    %esi,0x8(%ebp)
47303b:	76 13                	jbe    0x473050
47303d:	8b 4b 04             	mov    0x4(%ebx),%ecx
473040:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
473043:	e8 54 6c f9 ff       	call   0x409c9c
473048:	33 f8                	xor    %eax,%edi
47304a:	46                   	inc    %esi
47304b:	3b 75 08             	cmp    0x8(%ebp),%esi
47304e:	72 ed                	jb     0x47303d
473050:	8b 75 0c             	mov    0xc(%ebp),%esi
473053:	8b ce                	mov    %esi,%ecx
473055:	e8 c6 69 f9 ff       	call   0x409a20
47305a:	89 3e                	mov    %edi,(%esi)
47305c:	33 c0                	xor    %eax,%eax
47305e:	5f                   	pop    %edi
47305f:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473066:	5e                   	pop    %esi
473067:	5b                   	pop    %ebx
473068:	5d                   	pop    %ebp
473069:	c2 08 00             	ret    $0x8
47306c:	55                   	push   %ebp
47306d:	8b ec                	mov    %esp,%ebp
47306f:	83 ec 10             	sub    $0x10,%esp
473072:	8b 45 08             	mov    0x8(%ebp),%eax
473075:	56                   	push   %esi
473076:	8b 40 04             	mov    0x4(%eax),%eax
473079:	8b 08                	mov    (%eax),%ecx
47307b:	e8 78 6c f9 ff       	call   0x409cf8
473080:	51                   	push   %ecx
473081:	51                   	push   %ecx
473082:	dd 1c 24             	fstpl  (%esp)
473085:	e8 26 3b fb ff       	call   0x426bb0
47308a:	8b 75 0c             	mov    0xc(%ebp),%esi
47308d:	83 c4 08             	add    $0x8,%esp
473090:	8b ce                	mov    %esi,%ecx
473092:	dd 5d f8             	fstpl  -0x8(%ebp)
473095:	e8 86 69 f9 ff       	call   0x409a20
47309a:	dd 45 f8             	fldl   -0x8(%ebp)
47309d:	8b ce                	mov    %esi,%ecx
47309f:	6a 00                	push   $0x0
4730a1:	dd 1e                	fstpl  (%esi)
4730a3:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4730aa:	e8 97 6c f9 ff       	call   0x409d46
4730af:	52                   	push   %edx
4730b0:	50                   	push   %eax
4730b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
4730b4:	50                   	push   %eax
4730b5:	e8 e8 09 00 00       	call   0x473aa2
4730ba:	50                   	push   %eax
4730bb:	8b ce                	mov    %esi,%ecx
4730bd:	e8 da 6d f9 ff       	call   0x409e9c
4730c2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4730c5:	e8 56 69 f9 ff       	call   0x409a20
4730ca:	33 c0                	xor    %eax,%eax
4730cc:	5e                   	pop    %esi
4730cd:	8b e5                	mov    %ebp,%esp
4730cf:	5d                   	pop    %ebp
4730d0:	c2 08 00             	ret    $0x8
4730d3:	55                   	push   %ebp
4730d4:	8b ec                	mov    %esp,%ebp
4730d6:	8b 45 08             	mov    0x8(%ebp),%eax
4730d9:	83 ec 10             	sub    $0x10,%esp
4730dc:	8b 40 04             	mov    0x4(%eax),%eax
4730df:	56                   	push   %esi
4730e0:	8b f1                	mov    %ecx,%esi
4730e2:	8b 08                	mov    (%eax),%ecx
4730e4:	e8 b3 6b f9 ff       	call   0x409c9c
4730e9:	85 c0                	test   %eax,%eax
4730eb:	75 28                	jne    0x473115
4730ed:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4730f0:	e8 d2 46 f9 ff       	call   0x4077c7
4730f5:	6a 00                	push   $0x0
4730f7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4730fa:	e8 70 2c ff ff       	call   0x465d6f
4730ff:	8b 4d 0c             	mov    0xc(%ebp),%ecx
473102:	8d 45 f0             	lea    -0x10(%ebp),%eax
473105:	50                   	push   %eax
473106:	e8 91 6a f9 ff       	call   0x409b9c
47310b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47310e:	e8 51 29 f9 ff       	call   0x405a64
473113:	eb 69                	jmp    0x47317e
473115:	3d ff 00 00 00       	cmp    $0xff,%eax
47311a:	7e 1f                	jle    0x47313b
47311c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47311f:	68 10 f9 48 00       	push   $0x48f910
473124:	e8 cf 6a f9 ff       	call   0x409bf8
473129:	8b 06                	mov    (%esi),%eax
47312b:	6a 00                	push   $0x0
47312d:	6a 01                	push   $0x1
47312f:	8b 48 04             	mov    0x4(%eax),%ecx
473132:	03 ce                	add    %esi,%ecx
473134:	e8 6a 39 fe ff       	call   0x456aa3
473139:	eb 43                	jmp    0x47317e
47313b:	3d 80 00 00 00       	cmp    $0x80,%eax
473140:	7d 18                	jge    0x47315a
473142:	8b 4d 0c             	mov    0xc(%ebp),%ecx
473145:	66 89 45 08          	mov    %ax,0x8(%ebp)
473149:	33 c0                	xor    %eax,%eax
47314b:	66 89 45 0a          	mov    %ax,0xa(%ebp)
47314f:	8d 45 08             	lea    0x8(%ebp),%eax
473152:	50                   	push   %eax
473153:	e8 a0 6a f9 ff       	call   0x409bf8
473158:	eb 24                	jmp    0x47317e
47315a:	83 ca ff             	or     $0xffffffff,%edx
47315d:	88 45 08             	mov    %al,0x8(%ebp)
473160:	8d 4d 08             	lea    0x8(%ebp),%ecx
473163:	c6 45 09 00          	movb   $0x0,0x9(%ebp)
473167:	e8 d2 25 ff ff       	call   0x46573e
47316c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47316f:	8b f0                	mov    %eax,%esi
473171:	56                   	push   %esi
473172:	e8 81 6a f9 ff       	call   0x409bf8
473177:	56                   	push   %esi
473178:	e8 ef de fa ff       	call   0x42106c
47317d:	59                   	pop    %ecx
47317e:	33 c0                	xor    %eax,%eax
473180:	5e                   	pop    %esi
473181:	8b e5                	mov    %ebp,%esp
473183:	5d                   	pop    %ebp
473184:	c2 08 00             	ret    $0x8
473187:	55                   	push   %ebp
473188:	8b ec                	mov    %esp,%ebp
47318a:	8b 45 08             	mov    0x8(%ebp),%eax
47318d:	83 ec 10             	sub    $0x10,%esp
473190:	8b 40 04             	mov    0x4(%eax),%eax
473193:	56                   	push   %esi
473194:	8b f1                	mov    %ecx,%esi
473196:	8b 08                	mov    (%eax),%ecx
473198:	e8 ff 6a f9 ff       	call   0x409c9c
47319d:	85 c0                	test   %eax,%eax
47319f:	75 28                	jne    0x4731c9
4731a1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4731a4:	e8 1e 46 f9 ff       	call   0x4077c7
4731a9:	6a 00                	push   $0x0
4731ab:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4731ae:	e8 bc 2b ff ff       	call   0x465d6f
4731b3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4731b6:	8d 45 f0             	lea    -0x10(%ebp),%eax
4731b9:	50                   	push   %eax
4731ba:	e8 dd 69 f9 ff       	call   0x409b9c
4731bf:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4731c2:	e8 9d 28 f9 ff       	call   0x405a64
4731c7:	eb 39                	jmp    0x473202
4731c9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4731cc:	3d ff ff 00 00       	cmp    $0xffff,%eax
4731d1:	7e 1c                	jle    0x4731ef
4731d3:	68 10 f9 48 00       	push   $0x48f910
4731d8:	e8 1b 6a f9 ff       	call   0x409bf8
4731dd:	8b 06                	mov    (%esi),%eax
4731df:	6a 00                	push   $0x0
4731e1:	6a 01                	push   $0x1
4731e3:	8b 48 04             	mov    0x4(%eax),%ecx
4731e6:	03 ce                	add    %esi,%ecx
4731e8:	e8 b6 38 fe ff       	call   0x456aa3
4731ed:	eb 13                	jmp    0x473202
4731ef:	66 89 45 08          	mov    %ax,0x8(%ebp)
4731f3:	33 c0                	xor    %eax,%eax
4731f5:	66 89 45 0a          	mov    %ax,0xa(%ebp)
4731f9:	8d 45 08             	lea    0x8(%ebp),%eax
4731fc:	50                   	push   %eax
4731fd:	e8 f6 69 f9 ff       	call   0x409bf8
473202:	33 c0                	xor    %eax,%eax
473204:	5e                   	pop    %esi
473205:	8b e5                	mov    %ebp,%esp
473207:	5d                   	pop    %ebp
473208:	c2 08 00             	ret    $0x8
47320b:	55                   	push   %ebp
47320c:	8b ec                	mov    %esp,%ebp
47320e:	83 ec 1c             	sub    $0x1c,%esp
473211:	53                   	push   %ebx
473212:	8b 5d 08             	mov    0x8(%ebp),%ebx
473215:	56                   	push   %esi
473216:	89 4d fc             	mov    %ecx,-0x4(%ebp)
473219:	57                   	push   %edi
47321a:	8b 43 04             	mov    0x4(%ebx),%eax
47321d:	33 ff                	xor    %edi,%edi
47321f:	8b 30                	mov    (%eax),%esi
473221:	8b ce                	mov    %esi,%ecx
473223:	e8 6f 67 f9 ff       	call   0x409997
473228:	8b 76 08             	mov    0x8(%esi),%esi
47322b:	8d 55 f4             	lea    -0xc(%ebp),%edx
47322e:	6a 10                	push   $0x10
473230:	8b 0e                	mov    (%esi),%ecx
473232:	e8 c4 c9 fa ff       	call   0x41fbfb
473237:	59                   	pop    %ecx
473238:	84 c0                	test   %al,%al
47323a:	75 12                	jne    0x47324e
47323c:	8b 55 fc             	mov    -0x4(%ebp),%edx
47323f:	57                   	push   %edi
473240:	6a 01                	push   $0x1
473242:	8b 02                	mov    (%edx),%eax
473244:	8b 48 04             	mov    0x4(%eax),%ecx
473247:	03 ca                	add    %edx,%ecx
473249:	e8 55 38 fe ff       	call   0x456aa3
47324e:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)
473252:	76 7d                	jbe    0x4732d1
473254:	8b 43 04             	mov    0x4(%ebx),%eax
473257:	8b 48 04             	mov    0x4(%eax),%ecx
47325a:	e8 3d 6a f9 ff       	call   0x409c9c
47325f:	48                   	dec    %eax
473260:	74 49                	je     0x4732ab
473262:	48                   	dec    %eax
473263:	74 41                	je     0x4732a6
473265:	48                   	dec    %eax
473266:	75 46                	jne    0x4732ae
473268:	6a 02                	push   $0x2
47326a:	ff 75 f8             	push   -0x8(%ebp)
47326d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
473270:	ff 75 f4             	push   -0xc(%ebp)
473273:	50                   	push   %eax
473274:	e8 29 08 00 00       	call   0x473aa2
473279:	8b c8                	mov    %eax,%ecx
47327b:	e8 c6 6a f9 ff       	call   0x409d46
473280:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
473283:	89 45 f4             	mov    %eax,-0xc(%ebp)
473286:	89 55 f8             	mov    %edx,-0x8(%ebp)
473289:	e8 92 67 f9 ff       	call   0x409a20
47328e:	8b 75 0c             	mov    0xc(%ebp),%esi
473291:	8b ce                	mov    %esi,%ecx
473293:	e8 88 67 f9 ff       	call   0x409a20
473298:	dd 45 f4             	fldl   -0xc(%ebp)
47329b:	dd 1e                	fstpl  (%esi)
47329d:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4732a4:	eb 60                	jmp    0x473306
4732a6:	6a 02                	push   $0x2
4732a8:	5f                   	pop    %edi
4732a9:	eb 03                	jmp    0x4732ae
4732ab:	33 ff                	xor    %edi,%edi
4732ad:	47                   	inc    %edi
4732ae:	57                   	push   %edi
4732af:	ff 75 f8             	push   -0x8(%ebp)
4732b2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4732b5:	ff 75 f4             	push   -0xc(%ebp)
4732b8:	50                   	push   %eax
4732b9:	e8 e4 07 00 00       	call   0x473aa2
4732be:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4732c1:	50                   	push   %eax
4732c2:	e8 d5 6b f9 ff       	call   0x409e9c
4732c7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4732ca:	e8 51 67 f9 ff       	call   0x409a20
4732cf:	eb 35                	jmp    0x473306
4732d1:	83 7e 04 08          	cmpl   $0x8,0x4(%esi)
4732d5:	8b 75 0c             	mov    0xc(%ebp),%esi
4732d8:	8b ce                	mov    %esi,%ecx
4732da:	76 19                	jbe    0x4732f5
4732dc:	e8 3f 67 f9 ff       	call   0x409a20
4732e1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4732e4:	89 06                	mov    %eax,(%esi)
4732e6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4732e9:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
4732f0:	89 46 04             	mov    %eax,0x4(%esi)
4732f3:	eb 11                	jmp    0x473306
4732f5:	e8 26 67 f9 ff       	call   0x409a20
4732fa:	8b 45 f4             	mov    -0xc(%ebp),%eax
4732fd:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473304:	89 06                	mov    %eax,(%esi)
473306:	5f                   	pop    %edi
473307:	5e                   	pop    %esi
473308:	33 c0                	xor    %eax,%eax
47330a:	5b                   	pop    %ebx
47330b:	8b e5                	mov    %ebp,%esp
47330d:	5d                   	pop    %ebp
47330e:	c2 08 00             	ret    $0x8
473311:	55                   	push   %ebp
473312:	8b ec                	mov    %esp,%ebp
473314:	51                   	push   %ecx
473315:	51                   	push   %ecx
473316:	8b 45 08             	mov    0x8(%ebp),%eax
473319:	56                   	push   %esi
47331a:	8b 40 04             	mov    0x4(%eax),%eax
47331d:	8b 08                	mov    (%eax),%ecx
47331f:	e8 d4 69 f9 ff       	call   0x409cf8
473324:	51                   	push   %ecx
473325:	51                   	push   %ecx
473326:	dd 1c 24             	fstpl  (%esp)
473329:	e8 32 2d fb ff       	call   0x426060
47332e:	8b 75 0c             	mov    0xc(%ebp),%esi
473331:	83 c4 08             	add    $0x8,%esp
473334:	8b ce                	mov    %esi,%ecx
473336:	dd 5d f8             	fstpl  -0x8(%ebp)
473339:	e8 e2 66 f9 ff       	call   0x409a20
47333e:	dd 45 f8             	fldl   -0x8(%ebp)
473341:	33 c0                	xor    %eax,%eax
473343:	dd 1e                	fstpl  (%esi)
473345:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
47334c:	5e                   	pop    %esi
47334d:	8b e5                	mov    %ebp,%esp
47334f:	5d                   	pop    %ebp
473350:	c2 08 00             	ret    $0x8
473353:	55                   	push   %ebp
473354:	8b ec                	mov    %esp,%ebp
473356:	83 ec 10             	sub    $0x10,%esp
473359:	8b 45 08             	mov    0x8(%ebp),%eax
47335c:	56                   	push   %esi
47335d:	8b 40 04             	mov    0x4(%eax),%eax
473360:	8b 08                	mov    (%eax),%ecx
473362:	e8 91 69 f9 ff       	call   0x409cf8
473367:	51                   	push   %ecx
473368:	51                   	push   %ecx
473369:	dd 1c 24             	fstpl  (%esp)
47336c:	e8 0f 37 fb ff       	call   0x426a80
473371:	8b 75 0c             	mov    0xc(%ebp),%esi
473374:	83 c4 08             	add    $0x8,%esp
473377:	8b ce                	mov    %esi,%ecx
473379:	dd 5d f8             	fstpl  -0x8(%ebp)
47337c:	e8 9f 66 f9 ff       	call   0x409a20
473381:	dd 45 f8             	fldl   -0x8(%ebp)
473384:	8b ce                	mov    %esi,%ecx
473386:	6a 00                	push   $0x0