47a213:	6a 00                	push   $0x0
47a215:	6a 2a                	push   $0x2a
47a217:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
47a21a:	e8 9e c9 fe ff       	call   0x466bbd
47a21f:	8b 0e                	mov    (%esi),%ecx
47a221:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47a224:	50                   	push   %eax
47a225:	e8 a5 d5 fe ff       	call   0x4677cf
47a22a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
47a22e:	8b cf                	mov    %edi,%ecx
47a230:	ff 75 14             	push   0x14(%ebp)
47a233:	ff 75 10             	push   0x10(%ebp)
47a236:	ff 75 0c             	push   0xc(%ebp)
47a239:	56                   	push   %esi
47a23a:	74 04                	je     0x47a240
47a23c:	6a 01                	push   $0x1
47a23e:	eb 02                	jmp    0x47a242
47a240:	6a 03                	push   $0x3
47a242:	e8 05 fb ff ff       	call   0x479d4c
47a247:	8d 4d ec             	lea    -0x14(%ebp),%ecx
47a24a:	8b f0                	mov    %eax,%esi
47a24c:	e8 13 b8 f8 ff       	call   0x405a64
47a251:	8b c6                	mov    %esi,%eax
47a253:	eb 03                	jmp    0x47a258
47a255:	83 c8 ff             	or     $0xffffffff,%eax
47a258:	5f                   	pop    %edi
47a259:	5e                   	pop    %esi
47a25a:	8b e5                	mov    %ebp,%esp
47a25c:	5d                   	pop    %ebp
47a25d:	c2 14 00             	ret    $0x14
47a260:	55                   	push   %ebp
47a261:	8b ec                	mov    %esp,%ebp
47a263:	83 ec 20             	sub    $0x20,%esp
47a266:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
47a26a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47a26d:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
47a271:	8b 55 10             	mov    0x10(%ebp),%edx
47a274:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
47a27b:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a27e:	56                   	push   %esi
47a27f:	8b f1                	mov    %ecx,%esi
47a281:	85 d2                	test   %edx,%edx
47a283:	74 26                	je     0x47a2ab
47a285:	8b 42 08             	mov    0x8(%edx),%eax
47a288:	85 c0                	test   %eax,%eax
47a28a:	74 1f                	je     0x47a2ab
47a28c:	8b 4a 04             	mov    0x4(%edx),%ecx
47a28f:	8b 4c 81 fc          	mov    -0x4(%ecx,%eax,4),%ecx
47a293:	e8 45 f1 f8 ff       	call   0x4093dd
47a298:	84 c0                	test   %al,%al
47a29a:	74 0f                	je     0x47a2ab
47a29c:	52                   	push   %edx
47a29d:	ff 75 0c             	push   0xc(%ebp)
47a2a0:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a2a3:	ff 75 08             	push   0x8(%ebp)
47a2a6:	50                   	push   %eax
47a2a7:	6a 08                	push   $0x8
47a2a9:	eb 0d                	jmp    0x47a2b8
47a2ab:	52                   	push   %edx
47a2ac:	ff 75 0c             	push   0xc(%ebp)
47a2af:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a2b2:	ff 75 08             	push   0x8(%ebp)
47a2b5:	50                   	push   %eax
47a2b6:	6a 04                	push   $0x4
47a2b8:	8b ce                	mov    %esi,%ecx
47a2ba:	e8 8d fa ff ff       	call   0x479d4c
47a2bf:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
47a2c2:	8b f0                	mov    %eax,%esi
47a2c4:	e8 57 f7 f8 ff       	call   0x409a20
47a2c9:	8b c6                	mov    %esi,%eax
47a2cb:	5e                   	pop    %esi
47a2cc:	8b e5                	mov    %ebp,%esp
47a2ce:	5d                   	pop    %ebp
47a2cf:	c2 0c 00             	ret    $0xc
47a2d2:	55                   	push   %ebp
47a2d3:	8b ec                	mov    %esp,%ebp
47a2d5:	83 ec 38             	sub    $0x38,%esp
47a2d8:	8b 55 08             	mov    0x8(%ebp),%edx
47a2db:	33 c0                	xor    %eax,%eax
47a2dd:	53                   	push   %ebx
47a2de:	56                   	push   %esi
47a2df:	8b 75 0c             	mov    0xc(%ebp),%esi
47a2e2:	8b d9                	mov    %ecx,%ebx
47a2e4:	8b 52 04             	mov    0x4(%edx),%edx
47a2e7:	33 c9                	xor    %ecx,%ecx
47a2e9:	89 4d e0             	mov    %ecx,-0x20(%ebp)
47a2ec:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
47a2ef:	89 4d e8             	mov    %ecx,-0x18(%ebp)
47a2f2:	89 4d cc             	mov    %ecx,-0x34(%ebp)
47a2f5:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
47a2f8:	8b 0e                	mov    (%esi),%ecx
47a2fa:	c7 45 dc 78 fb 48 00 	movl   $0x48fb78,-0x24(%ebp)
47a301:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
47a308:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
47a30c:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a30f:	57                   	push   %edi
47a310:	83 cf ff             	or     $0xffffffff,%edi
47a313:	41                   	inc    %ecx
47a314:	89 0e                	mov    %ecx,(%esi)
47a316:	0f bf 40 0a          	movswl 0xa(%eax),%eax
47a31a:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a31d:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a320:	6a 47                	push   $0x47
47a322:	5e                   	pop    %esi
47a323:	66 89 7d f4          	mov    %di,-0xc(%ebp)
47a327:	66 39 70 08          	cmp    %si,0x8(%eax)
47a32b:	8b 75 0c             	mov    0xc(%ebp),%esi
47a32e:	74 10                	je     0x47a340
47a330:	8b 44 8a fc          	mov    -0x4(%edx,%ecx,4),%eax
47a334:	0f bf 40 0a          	movswl 0xa(%eax),%eax
47a338:	50                   	push   %eax
47a339:	6a 6f                	push   $0x6f
47a33b:	e9 0d 01 00 00       	jmp    0x47a44d
47a340:	8d 41 01             	lea    0x1(%ecx),%eax
47a343:	33 ff                	xor    %edi,%edi
47a345:	89 06                	mov    %eax,(%esi)
47a347:	8b 55 08             	mov    0x8(%ebp),%edx
47a34a:	8b 0e                	mov    (%esi),%ecx
47a34c:	8b 42 04             	mov    0x4(%edx),%eax
47a34f:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
47a352:	0f bf 41 08          	movswl 0x8(%ecx),%eax
47a356:	83 e8 47             	sub    $0x47,%eax
47a359:	74 2e                	je     0x47a389
47a35b:	48                   	dec    %eax
47a35c:	74 24                	je     0x47a382
47a35e:	83 e8 37             	sub    $0x37,%eax
47a361:	75 27                	jne    0x47a38a
47a363:	8b 0e                	mov    (%esi),%ecx
47a365:	8b 42 04             	mov    0x4(%edx),%eax
47a368:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
47a36c:	8b cb                	mov    %ebx,%ecx
47a36e:	0f bf 40 0a          	movswl 0xa(%eax),%eax
47a372:	50                   	push   %eax
47a373:	6a 6f                	push   $0x6f
47a375:	e8 3b fd fe ff       	call   0x46a0b5
47a37a:	83 cf ff             	or     $0xffffffff,%edi
47a37d:	e9 9e 00 00 00       	jmp    0x47a420
47a382:	85 ff                	test   %edi,%edi
47a384:	74 11                	je     0x47a397
47a386:	4f                   	dec    %edi
47a387:	eb 01                	jmp    0x47a38a
47a389:	47                   	inc    %edi
47a38a:	51                   	push   %ecx
47a38b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47a38e:	e8 dc d2 f8 ff       	call   0x40766f
47a393:	ff 06                	incl   (%esi)
47a395:	eb b0                	jmp    0x47a347
47a397:	8b 45 f8             	mov    -0x8(%ebp),%eax
47a39a:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47a39d:	ff 06                	incl   (%esi)
47a39f:	6a 7f                	push   $0x7f
47a3a1:	5f                   	pop    %edi
47a3a2:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
47a3a6:	8d 45 ec             	lea    -0x14(%ebp),%eax
47a3a9:	50                   	push   %eax
47a3aa:	66 89 7d f4          	mov    %di,-0xc(%ebp)
47a3ae:	e8 bc d2 f8 ff       	call   0x40766f
47a3b3:	8b 45 e0             	mov    -0x20(%ebp),%eax
47a3b6:	33 f6                	xor    %esi,%esi
47a3b8:	89 75 0c             	mov    %esi,0xc(%ebp)
47a3bb:	8b 00                	mov    (%eax),%eax
47a3bd:	66 39 78 08          	cmp    %di,0x8(%eax)
47a3c1:	74 5b                	je     0x47a41e
47a3c3:	83 cf ff             	or     $0xffffffff,%edi
47a3c6:	57                   	push   %edi
47a3c7:	6a 01                	push   $0x1
47a3c9:	56                   	push   %esi
47a3ca:	56                   	push   %esi
47a3cb:	8d 45 cc             	lea    -0x34(%ebp),%eax
47a3ce:	8b cb                	mov    %ebx,%ecx
47a3d0:	50                   	push   %eax
47a3d1:	8d 45 0c             	lea    0xc(%ebp),%eax
47a3d4:	50                   	push   %eax
47a3d5:	8d 45 dc             	lea    -0x24(%ebp),%eax
47a3d8:	50                   	push   %eax
47a3d9:	e8 25 54 f9 ff       	call   0x40f803
47a3de:	85 c0                	test   %eax,%eax
47a3e0:	78 3e                	js     0x47a420
47a3e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a3e5:	8d 45 cc             	lea    -0x34(%ebp),%eax
47a3e8:	50                   	push   %eax
47a3e9:	e8 77 c2 fd ff       	call   0x456665
47a3ee:	8b 55 e0             	mov    -0x20(%ebp),%edx
47a3f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a3f4:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a3f7:	66 83 78 08 40       	cmpw   $0x40,0x8(%eax)
47a3fc:	75 14                	jne    0x47a412
47a3fe:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
47a402:	6a 7f                	push   $0x7f
47a404:	5a                   	pop    %edx
47a405:	66 39 50 08          	cmp    %dx,0x8(%eax)
47a409:	8b 55 e0             	mov    -0x20(%ebp),%edx
47a40c:	74 35                	je     0x47a443
47a40e:	41                   	inc    %ecx
47a40f:	89 4d 0c             	mov    %ecx,0xc(%ebp)
47a412:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a415:	6a 7f                	push   $0x7f
47a417:	59                   	pop    %ecx
47a418:	66 39 48 08          	cmp    %cx,0x8(%eax)
47a41c:	75 a8                	jne    0x47a3c6
47a41e:	8b fe                	mov    %esi,%edi
47a420:	8d 4d cc             	lea    -0x34(%ebp),%ecx
47a423:	e8 f8 f5 f8 ff       	call   0x409a20
47a428:	8d 4d ec             	lea    -0x14(%ebp),%ecx
47a42b:	e8 cb ba f8 ff       	call   0x405efb
47a430:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47a433:	e8 3e d3 f8 ff       	call   0x407776
47a438:	8b c7                	mov    %edi,%eax
47a43a:	5f                   	pop    %edi
47a43b:	5e                   	pop    %esi
47a43c:	5b                   	pop    %ebx
47a43d:	8b e5                	mov    %ebp,%esp
47a43f:	5d                   	pop    %ebp
47a440:	c2 0c 00             	ret    $0xc
47a443:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a446:	0f bf 40 0a          	movswl 0xa(%eax),%eax
47a44a:	50                   	push   %eax
47a44b:	6a 6e                	push   $0x6e
47a44d:	8b cb                	mov    %ebx,%ecx
47a44f:	e8 61 fc fe ff       	call   0x46a0b5
47a454:	eb ca                	jmp    0x47a420
47a456:	56                   	push   %esi
47a457:	8b f1                	mov    %ecx,%esi
47a459:	57                   	push   %edi
47a45a:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
47a45e:	74 17                	je     0x47a477
47a460:	8b 4e 04             	mov    0x4(%esi),%ecx
47a463:	8b 79 10             	mov    0x10(%ecx),%edi
47a466:	85 c9                	test   %ecx,%ecx
47a468:	74 06                	je     0x47a470
47a46a:	51                   	push   %ecx
47a46b:	e8 76 57 fa ff       	call   0x41fbe6
47a470:	89 7e 04             	mov    %edi,0x4(%esi)
47a473:	c6 46 09 00          	movb   $0x0,0x9(%esi)
47a477:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
47a47b:	74 06                	je     0x47a483
47a47d:	c6 46 09 01          	movb   $0x1,0x9(%esi)
47a481:	eb 17                	jmp    0x47a49a
47a483:	8b 4e 04             	mov    0x4(%esi),%ecx
47a486:	8b 79 10             	mov    0x10(%ecx),%edi
47a489:	85 c9                	test   %ecx,%ecx
47a48b:	74 06                	je     0x47a493
47a48d:	51                   	push   %ecx
47a48e:	e8 53 57 fa ff       	call   0x41fbe6
47a493:	89 7e 04             	mov    %edi,0x4(%esi)
47a496:	c6 46 09 00          	movb   $0x0,0x9(%esi)
47a49a:	ff 0e                	decl   (%esi)
47a49c:	5f                   	pop    %edi
47a49d:	5e                   	pop    %esi
47a49e:	c3                   	ret
47a49f:	55                   	push   %ebp
47a4a0:	8b ec                	mov    %esp,%ebp
47a4a2:	53                   	push   %ebx
47a4a3:	56                   	push   %esi
47a4a4:	8b f1                	mov    %ecx,%esi
47a4a6:	6a 04                	push   $0x4
47a4a8:	5b                   	pop    %ebx
47a4a9:	8b 46 0c             	mov    0xc(%esi),%eax
47a4ac:	39 46 08             	cmp    %eax,0x8(%esi)
47a4af:	75 4d                	jne    0x47a4fe
47a4b1:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
47a4b4:	6a 08                	push   $0x8
47a4b6:	58                   	pop    %eax
47a4b7:	3b c8                	cmp    %eax,%ecx
47a4b9:	72 02                	jb     0x47a4bd
47a4bb:	8b c1                	mov    %ecx,%eax
47a4bd:	33 c9                	xor    %ecx,%ecx
47a4bf:	89 46 0c             	mov    %eax,0xc(%esi)
47a4c2:	f7 e3                	mul    %ebx
47a4c4:	57                   	push   %edi
47a4c5:	0f 90 c1             	seto   %cl
47a4c8:	f7 d9                	neg    %ecx
47a4ca:	0b c8                	or     %eax,%ecx
47a4cc:	51                   	push   %ecx
47a4cd:	e8 d3 6a fa ff       	call   0x420fa5
47a4d2:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
47a4d6:	8b f8                	mov    %eax,%edi
47a4d8:	59                   	pop    %ecx
47a4d9:	74 1f                	je     0x47a4fa
47a4db:	8b 46 08             	mov    0x8(%esi),%eax
47a4de:	85 c0                	test   %eax,%eax
47a4e0:	74 18                	je     0x47a4fa
47a4e2:	c1 e0 02             	shl    $0x2,%eax
47a4e5:	50                   	push   %eax
47a4e6:	ff 76 04             	push   0x4(%esi)
47a4e9:	57                   	push   %edi
47a4ea:	e8 91 6b fa ff       	call   0x421080
47a4ef:	ff 76 04             	push   0x4(%esi)
47a4f2:	e8 b9 8b fa ff       	call   0x4230b0
47a4f7:	83 c4 10             	add    $0x10,%esp
47a4fa:	89 7e 04             	mov    %edi,0x4(%esi)
47a4fd:	5f                   	pop    %edi
47a4fe:	53                   	push   %ebx
47a4ff:	e8 f2 6a fa ff       	call   0x420ff6
47a504:	8b d0                	mov    %eax,%edx
47a506:	59                   	pop    %ecx
47a507:	85 d2                	test   %edx,%edx
47a509:	74 09                	je     0x47a514
47a50b:	8b 4d 08             	mov    0x8(%ebp),%ecx
47a50e:	8b 09                	mov    (%ecx),%ecx
47a510:	89 0a                	mov    %ecx,(%edx)
47a512:	eb 02                	jmp    0x47a516
47a514:	33 d2                	xor    %edx,%edx
47a516:	8b 4e 08             	mov    0x8(%esi),%ecx
47a519:	8b 46 04             	mov    0x4(%esi),%eax
47a51c:	89 14 88             	mov    %edx,(%eax,%ecx,4)
47a51f:	ff 46 08             	incl   0x8(%esi)
47a522:	5e                   	pop    %esi
47a523:	5b                   	pop    %ebx
47a524:	5d                   	pop    %ebp
47a525:	c2 04 00             	ret    $0x4
47a528:	55                   	push   %ebp
47a529:	8b ec                	mov    %esp,%ebp
47a52b:	53                   	push   %ebx
47a52c:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a52f:	56                   	push   %esi
47a530:	8b f1                	mov    %ecx,%esi
47a532:	57                   	push   %edi
47a533:	c7 06 78 fb 48 00    	movl   $0x48fb78,(%esi)
47a539:	8b 43 08             	mov    0x8(%ebx),%eax
47a53c:	89 46 08             	mov    %eax,0x8(%esi)
47a53f:	85 c0                	test   %eax,%eax
47a541:	74 5a                	je     0x47a59d
47a543:	6a 08                	push   $0x8
47a545:	5a                   	pop    %edx
47a546:	3b c2                	cmp    %edx,%eax
47a548:	72 02                	jb     0x47a54c
47a54a:	8b d0                	mov    %eax,%edx
47a54c:	89 56 0c             	mov    %edx,0xc(%esi)
47a54f:	33 c9                	xor    %ecx,%ecx
47a551:	8b c2                	mov    %edx,%eax
47a553:	6a 04                	push   $0x4
47a555:	5a                   	pop    %edx
47a556:	f7 e2                	mul    %edx
47a558:	0f 90 c1             	seto   %cl
47a55b:	f7 d9                	neg    %ecx
47a55d:	0b c8                	or     %eax,%ecx
47a55f:	51                   	push   %ecx
47a560:	e8 91 6a fa ff       	call   0x420ff6
47a565:	33 ff                	xor    %edi,%edi
47a567:	89 46 04             	mov    %eax,0x4(%esi)
47a56a:	59                   	pop    %ecx
47a56b:	39 7e 08             	cmp    %edi,0x8(%esi)
47a56e:	76 35                	jbe    0x47a5a5
47a570:	6a 0c                	push   $0xc
47a572:	e8 7f 6a fa ff       	call   0x420ff6
47a577:	59                   	pop    %ecx
47a578:	85 c0                	test   %eax,%eax
47a57a:	74 11                	je     0x47a58d
47a57c:	8b 4b 04             	mov    0x4(%ebx),%ecx