470214:	8b 75 0c             	mov    0xc(%ebp),%esi
470217:	8b f8                	mov    %eax,%edi
470219:	8b ce                	mov    %esi,%ecx
47021b:	e8 00 98 f9 ff       	call   0x409a20
470220:	89 3e                	mov    %edi,(%esi)
470222:	33 c0                	xor    %eax,%eax
470224:	5f                   	pop    %edi
470225:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47022c:	5e                   	pop    %esi
47022d:	5d                   	pop    %ebp
47022e:	c2 08 00             	ret    $0x8
470231:	55                   	push   %ebp
470232:	8b ec                	mov    %esp,%ebp
470234:	56                   	push   %esi
470235:	8b 75 08             	mov    0x8(%ebp),%esi
470238:	57                   	push   %edi
470239:	33 ff                	xor    %edi,%edi
47023b:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
47023f:	76 0d                	jbe    0x47024e
470241:	8b 46 04             	mov    0x4(%esi),%eax
470244:	8b 48 04             	mov    0x4(%eax),%ecx
470247:	e8 6f 87 ff ff       	call   0x4689bb
47024c:	8b f8                	mov    %eax,%edi
47024e:	8b 4e 04             	mov    0x4(%esi),%ecx
470251:	6a ff                	push   $0xffffffff
470253:	8b 09                	mov    (%ecx),%ecx
470255:	e8 42 9a f9 ff       	call   0x409c9c
47025a:	50                   	push   %eax
47025b:	57                   	push   %edi
47025c:	6a ff                	push   $0xffffffff
47025e:	6a 00                	push   $0x0
470260:	6a ff                	push   $0xffffffff
470262:	6a 00                	push   $0x0
470264:	e8 09 29 f9 ff       	call   0x402b72
470269:	8b 75 0c             	mov    0xc(%ebp),%esi
47026c:	8b f8                	mov    %eax,%edi
47026e:	8b ce                	mov    %esi,%ecx
470270:	e8 ab 97 f9 ff       	call   0x409a20
470275:	89 3e                	mov    %edi,(%esi)
470277:	33 c0                	xor    %eax,%eax
470279:	5f                   	pop    %edi
47027a:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470281:	5e                   	pop    %esi
470282:	5d                   	pop    %ebp
470283:	c2 08 00             	ret    $0x8
470286:	55                   	push   %ebp
470287:	8b ec                	mov    %esp,%ebp
470289:	83 ec 14             	sub    $0x14,%esp
47028c:	53                   	push   %ebx
47028d:	56                   	push   %esi
47028e:	8b 75 08             	mov    0x8(%ebp),%esi
470291:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470294:	57                   	push   %edi
470295:	8b 7e 08             	mov    0x8(%esi),%edi
470298:	e8 2a 75 f9 ff       	call   0x4077c7
47029d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4702a0:	8b cb                	mov    %ebx,%ecx
4702a2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4702a6:	c7 45 08 02 00 00 00 	movl   $0x2,0x8(%ebp)
4702ad:	e8 6e 97 f9 ff       	call   0x409a20
4702b2:	83 23 00             	andl   $0x0,(%ebx)
4702b5:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
4702bc:	83 ff 05             	cmp    $0x5,%edi
4702bf:	76 0e                	jbe    0x4702cf
4702c1:	8b 46 04             	mov    0x4(%esi),%eax
4702c4:	8b 48 14             	mov    0x14(%eax),%ecx
4702c7:	e8 d0 99 f9 ff       	call   0x409c9c
4702cc:	89 45 08             	mov    %eax,0x8(%ebp)
4702cf:	83 ff 04             	cmp    $0x4,%edi
4702d2:	76 24                	jbe    0x4702f8
4702d4:	8b 46 04             	mov    0x4(%esi),%eax
4702d7:	8b 40 10             	mov    0x10(%eax),%eax
4702da:	89 45 0c             	mov    %eax,0xc(%ebp)
4702dd:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
4702e1:	75 7a                	jne    0x47035d
4702e3:	8b c8                	mov    %eax,%ecx
4702e5:	e8 ad 96 f9 ff       	call   0x409997
4702ea:	8b 45 0c             	mov    0xc(%ebp),%eax
4702ed:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4702f0:	ff 70 08             	push   0x8(%eax)
4702f3:	e8 af 7e f9 ff       	call   0x4081a7
4702f8:	83 ff 03             	cmp    $0x3,%edi
4702fb:	76 0e                	jbe    0x47030b
4702fd:	8b 46 04             	mov    0x4(%esi),%eax
470300:	8b 48 0c             	mov    0xc(%eax),%ecx
470303:	e8 94 99 f9 ff       	call   0x409c9c
470308:	89 45 fc             	mov    %eax,-0x4(%ebp)
47030b:	83 ff 02             	cmp    $0x2,%edi
47030e:	76 0f                	jbe    0x47031f
470310:	8b 46 04             	mov    0x4(%esi),%eax
470313:	8b 48 08             	mov    0x8(%eax),%ecx
470316:	e8 81 99 f9 ff       	call   0x409c9c
47031b:	8b f8                	mov    %eax,%edi
47031d:	eb 03                	jmp    0x470322
47031f:	83 cf ff             	or     $0xffffffff,%edi
470322:	8b 56 04             	mov    0x4(%esi),%edx
470325:	8b 4a 04             	mov    0x4(%edx),%ecx
470328:	8b 32                	mov    (%edx),%esi
47032a:	e8 c9 99 f9 ff       	call   0x409cf8
47032f:	51                   	push   %ecx
470330:	51                   	push   %ecx
470331:	dd 1c 24             	fstpl  (%esp)
470334:	ff 75 08             	push   0x8(%ebp)
470337:	8b ce                	mov    %esi,%ecx
470339:	ff 75 fc             	push   -0x4(%ebp)
47033c:	ff 75 ec             	push   -0x14(%ebp)
47033f:	57                   	push   %edi
470340:	e8 57 99 f9 ff       	call   0x409c9c
470345:	50                   	push   %eax
470346:	e8 86 8e 01 00       	call   0x4891d1
47034b:	8b cb                	mov    %ebx,%ecx
47034d:	8b f0                	mov    %eax,%esi
47034f:	e8 cc 96 f9 ff       	call   0x409a20
470354:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
47035b:	89 33                	mov    %esi,(%ebx)
47035d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470360:	e8 ff 56 f9 ff       	call   0x405a64
470365:	5f                   	pop    %edi
470366:	5e                   	pop    %esi
470367:	33 c0                	xor    %eax,%eax
470369:	5b                   	pop    %ebx
47036a:	8b e5                	mov    %ebp,%esp
47036c:	5d                   	pop    %ebp
47036d:	c2 08 00             	ret    $0x8
470370:	55                   	push   %ebp
470371:	8b ec                	mov    %esp,%ebp
470373:	83 e4 f8             	and    $0xfffffff8,%esp
470376:	83 ec 14             	sub    $0x14,%esp
470379:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
47037e:	53                   	push   %ebx
47037f:	56                   	push   %esi
470380:	57                   	push   %edi
470381:	8b 7d 08             	mov    0x8(%ebp),%edi
470384:	83 cb ff             	or     $0xffffffff,%ebx
470387:	89 5c 24 10          	mov    %ebx,0x10(%esp)
47038b:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
470392:	00
470393:	8b 77 08             	mov    0x8(%edi),%esi
470396:	83 fe 03             	cmp    $0x3,%esi
470399:	76 0d                	jbe    0x4703a8
47039b:	8b 47 04             	mov    0x4(%edi),%eax
47039e:	8b 48 0c             	mov    0xc(%eax),%ecx
4703a1:	e8 f6 98 f9 ff       	call   0x409c9c
4703a6:	8b d8                	mov    %eax,%ebx
4703a8:	83 fe 02             	cmp    $0x2,%esi
4703ab:	76 0f                	jbe    0x4703bc
4703ad:	8b 4f 04             	mov    0x4(%edi),%ecx
4703b0:	ff 71 08             	push   0x8(%ecx)
4703b3:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4703b7:	e8 e0 9a f9 ff       	call   0x409e9c
4703bc:	83 ec 10             	sub    $0x10,%esp
4703bf:	8d 44 24 20          	lea    0x20(%esp),%eax
4703c3:	8b cc                	mov    %esp,%ecx
4703c5:	50                   	push   %eax
4703c6:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4703ca:	e8 f1 96 f9 ff       	call   0x409ac0
4703cf:	8b 47 04             	mov    0x4(%edi),%eax
4703d2:	8b 70 04             	mov    0x4(%eax),%esi
4703d5:	8b ce                	mov    %esi,%ecx
4703d7:	e8 bb 95 f9 ff       	call   0x409997
4703dc:	8b 46 08             	mov    0x8(%esi),%eax
4703df:	53                   	push   %ebx
4703e0:	8b 08                	mov    (%eax),%ecx
4703e2:	8b 47 04             	mov    0x4(%edi),%eax
4703e5:	51                   	push   %ecx
4703e6:	8b 08                	mov    (%eax),%ecx
4703e8:	e8 af 98 f9 ff       	call   0x409c9c
4703ed:	50                   	push   %eax
4703ee:	e8 bd 8e 01 00       	call   0x4892b0
4703f3:	8b 75 0c             	mov    0xc(%ebp),%esi
4703f6:	8b f8                	mov    %eax,%edi
4703f8:	8b ce                	mov    %esi,%ecx
4703fa:	e8 21 96 f9 ff       	call   0x409a20
4703ff:	8d 4c 24 10          	lea    0x10(%esp),%ecx
470403:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47040a:	89 3e                	mov    %edi,(%esi)
47040c:	e8 0f 96 f9 ff       	call   0x409a20
470411:	5f                   	pop    %edi
470412:	5e                   	pop    %esi
470413:	33 c0                	xor    %eax,%eax
470415:	5b                   	pop    %ebx
470416:	8b e5                	mov    %ebp,%esp
470418:	5d                   	pop    %ebp
470419:	c2 08 00             	ret    $0x8
47041c:	55                   	push   %ebp
47041d:	8b ec                	mov    %esp,%ebp
47041f:	56                   	push   %esi
470420:	8b 75 08             	mov    0x8(%ebp),%esi
470423:	33 c0                	xor    %eax,%eax
470425:	57                   	push   %edi
470426:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
47042a:	76 0b                	jbe    0x470437
47042c:	8b 46 04             	mov    0x4(%esi),%eax
47042f:	8b 48 08             	mov    0x8(%eax),%ecx
470432:	e8 65 98 f9 ff       	call   0x409c9c
470437:	8b 56 04             	mov    0x4(%esi),%edx
47043a:	50                   	push   %eax
47043b:	8b 4a 04             	mov    0x4(%edx),%ecx
47043e:	8b 32                	mov    (%edx),%esi
470440:	e8 57 98 f9 ff       	call   0x409c9c
470445:	50                   	push   %eax
470446:	8b ce                	mov    %esi,%ecx
470448:	e8 4f 98 f9 ff       	call   0x409c9c
47044d:	50                   	push   %eax
47044e:	e8 0f 95 01 00       	call   0x489962
470453:	8b 75 0c             	mov    0xc(%ebp),%esi
470456:	8b f8                	mov    %eax,%edi
470458:	8b ce                	mov    %esi,%ecx
47045a:	e8 c1 95 f9 ff       	call   0x409a20
47045f:	89 3e                	mov    %edi,(%esi)
470461:	33 c0                	xor    %eax,%eax
470463:	5f                   	pop    %edi
470464:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47046b:	5e                   	pop    %esi
47046c:	5d                   	pop    %ebp
47046d:	c2 08 00             	ret    $0x8
470470:	55                   	push   %ebp
470471:	8b ec                	mov    %esp,%ebp
470473:	83 ec 38             	sub    $0x38,%esp
470476:	8b 45 08             	mov    0x8(%ebp),%eax
470479:	53                   	push   %ebx
47047a:	56                   	push   %esi
47047b:	57                   	push   %edi
47047c:	8b 40 04             	mov    0x4(%eax),%eax
47047f:	33 ff                	xor    %edi,%edi
470481:	89 4d fc             	mov    %ecx,-0x4(%ebp)
470484:	89 7d f8             	mov    %edi,-0x8(%ebp)
470487:	8b 70 04             	mov    0x4(%eax),%esi
47048a:	8b ce                	mov    %esi,%ecx
47048c:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
470490:	75 10                	jne    0x4704a2
470492:	8d 45 c8             	lea    -0x38(%ebp),%eax
470495:	33 db                	xor    %ebx,%ebx
470497:	50                   	push   %eax
470498:	43                   	inc    %ebx
470499:	e8 06 77 ff ff       	call   0x467ba4
47049e:	8b c8                	mov    %eax,%ecx
4704a0:	eb 27                	jmp    0x4704c9
4704a2:	6a 02                	push   $0x2
4704a4:	5b                   	pop    %ebx
4704a5:	e8 ed 94 f9 ff       	call   0x409997
4704aa:	8b 4e 08             	mov    0x8(%esi),%ecx
4704ad:	8b 01                	mov    (%ecx),%eax
4704af:	89 45 d8             	mov    %eax,-0x28(%ebp)
4704b2:	8b 41 04             	mov    0x4(%ecx),%eax
4704b5:	89 45 dc             	mov    %eax,-0x24(%ebp)
4704b8:	8b 41 08             	mov    0x8(%ecx),%eax
4704bb:	89 45 e0             	mov    %eax,-0x20(%ebp)
4704be:	8b 41 0c             	mov    0xc(%ecx),%eax
4704c1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4704c4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4704c7:	ff 00                	incl   (%eax)
4704c9:	8b 01                	mov    (%ecx),%eax
4704cb:	89 45 e8             	mov    %eax,-0x18(%ebp)
4704ce:	8b 41 04             	mov    0x4(%ecx),%eax
4704d1:	89 45 ec             	mov    %eax,-0x14(%ebp)
4704d4:	8b 41 08             	mov    0x8(%ecx),%eax
4704d7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4704da:	8b 41 0c             	mov    0xc(%ecx),%eax
4704dd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4704e0:	ff 00                	incl   (%eax)
4704e2:	f6 c3 02             	test   $0x2,%bl
4704e5:	74 0b                	je     0x4704f2
4704e7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4704ea:	83 e3 fd             	and    $0xfffffffd,%ebx
4704ed:	e8 72 55 f9 ff       	call   0x405a64
4704f2:	f6 c3 01             	test   $0x1,%bl
4704f5:	74 08                	je     0x4704ff
4704f7:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4704fa:	e8 65 55 f9 ff       	call   0x405a64
4704ff:	8b 5d fc             	mov    -0x4(%ebp),%ebx
470502:	8d 45 e8             	lea    -0x18(%ebp),%eax
470505:	50                   	push   %eax
470506:	8b cb                	mov    %ebx,%ecx
470508:	e8 b0 9a f9 ff       	call   0x409fbd
47050d:	85 c0                	test   %eax,%eax
47050f:	75 25                	jne    0x470536
470511:	8b 75 0c             	mov    0xc(%ebp),%esi
470514:	8b ce                	mov    %esi,%ecx
470516:	e8 05 95 f9 ff       	call   0x409a20
47051b:	33 c0                	xor    %eax,%eax
47051d:	89 3e                	mov    %edi,(%esi)
47051f:	40                   	inc    %eax
470520:	57                   	push   %edi
470521:	89 46 0c             	mov    %eax,0xc(%esi)
470524:	50                   	push   %eax
470525:	8b 03                	mov    (%ebx),%eax
470527:	8b 48 04             	mov    0x4(%eax),%ecx
47052a:	03 cb                	add    %ebx,%ecx
47052c:	e8 72 65 fe ff       	call   0x456aa3
470531:	83 ce ff             	or     $0xffffffff,%esi
470534:	eb 2d                	jmp    0x470563
470536:	8b 45 08             	mov    0x8(%ebp),%eax
470539:	8d 4d e8             	lea    -0x18(%ebp),%ecx
47053c:	51                   	push   %ecx
47053d:	8b 40 04             	mov    0x4(%eax),%eax
470540:	8b 08                	mov    (%eax),%ecx
470542:	e8 55 97 f9 ff       	call   0x409c9c
470547:	50                   	push   %eax
470548:	e8 d3 94 01 00       	call   0x489a20
47054d:	8b 75 0c             	mov    0xc(%ebp),%esi
470550:	8b f8                	mov    %eax,%edi
470552:	8b ce                	mov    %esi,%ecx
470554:	e8 c7 94 f9 ff       	call   0x409a20
470559:	33 c0                	xor    %eax,%eax
47055b:	89 3e                	mov    %edi,(%esi)
47055d:	40                   	inc    %eax
47055e:	89 46 0c             	mov    %eax,0xc(%esi)
470561:	33 f6                	xor    %esi,%esi
470563:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470566:	e8 f9 54 f9 ff       	call   0x405a64
47056b:	5f                   	pop    %edi
47056c:	8b c6                	mov    %esi,%eax
47056e:	5e                   	pop    %esi
47056f:	5b                   	pop    %ebx
470570:	8b e5                	mov    %ebp,%esp
470572:	5d                   	pop    %ebp
470573:	c2 08 00             	ret    $0x8
470576:	55                   	push   %ebp
470577:	8b ec                	mov    %esp,%ebp
470579:	51                   	push   %ecx
47057a:	53                   	push   %ebx
47057b:	56                   	push   %esi
47057c:	8b 75 08             	mov    0x8(%ebp),%esi
47057f:	57                   	push   %edi
470580:	83 cf ff             	or     $0xffffffff,%edi
470583:	89 7d fc             	mov    %edi,-0x4(%ebp)
470586:	8b df                	mov    %edi,%ebx
470588:	83 7e 08 04          	cmpl   $0x4,0x8(%esi)
47058c:	76 0e                	jbe    0x47059c
47058e:	8b 46 04             	mov    0x4(%esi),%eax
470591:	8b 48 10             	mov    0x10(%eax),%ecx
470594:	e8 03 97 f9 ff       	call   0x409c9c
470599:	89 45 fc             	mov    %eax,-0x4(%ebp)
47059c:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
4705a0:	76 0d                	jbe    0x4705af
4705a2:	8b 46 04             	mov    0x4(%esi),%eax
4705a5:	8b 48 0c             	mov    0xc(%eax),%ecx
4705a8:	e8 ef 96 f9 ff       	call   0x409c9c
4705ad:	8b f8                	mov    %eax,%edi
4705af:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
4705b3:	76 0d                	jbe    0x4705c2
4705b5:	8b 4e 04             	mov    0x4(%esi),%ecx
4705b8:	8b 49 08             	mov    0x8(%ecx),%ecx
4705bb:	e8 dc 96 f9 ff       	call   0x409c9c
4705c0:	8b d8                	mov    %eax,%ebx
4705c2:	8b 56 04             	mov    0x4(%esi),%edx
4705c5:	ff 75 fc             	push   -0x4(%ebp)
4705c8:	57                   	push   %edi
4705c9:	8b 4a 04             	mov    0x4(%edx),%ecx