463237:	8b 44 24 28          	mov    0x28(%esp),%eax
46323b:	83 ec 10             	sub    $0x10,%esp
46323e:	8b cc                	mov    %esp,%ecx
463240:	89 01                	mov    %eax,(%ecx)
463242:	8b 44 24 3c          	mov    0x3c(%esp),%eax
463246:	89 41 04             	mov    %eax,0x4(%ecx)
463249:	8b 44 24 40          	mov    0x40(%esp),%eax
46324d:	89 41 08             	mov    %eax,0x8(%ecx)
463250:	8b 44 24 44          	mov    0x44(%esp),%eax
463254:	89 41 0c             	mov    %eax,0xc(%ecx)
463257:	ff 00                	incl   (%eax)
463259:	8d 44 24 30          	lea    0x30(%esp),%eax
46325d:	50                   	push   %eax
46325e:	8d 44 24 2c          	lea    0x2c(%esp),%eax
463262:	50                   	push   %eax
463263:	e8 9e 09 00 00       	call   0x463c06
463268:	84 c0                	test   %al,%al
46326a:	75 09                	jne    0x463275
46326c:	6a 00                	push   $0x0
46326e:	6a 02                	push   $0x2
463270:	e9 80 00 00 00       	jmp    0x4632f5
463275:	33 f6                	xor    %esi,%esi
463277:	89 74 24 14          	mov    %esi,0x14(%esp)
46327b:	39 74 24 3c          	cmp    %esi,0x3c(%esp)
46327f:	74 30                	je     0x4632b1
463281:	8d 44 24 14          	lea    0x14(%esp),%eax
463285:	50                   	push   %eax
463286:	ff 74 24 1c          	push   0x1c(%esp)
46328a:	ff 74 24 40          	push   0x40(%esp)
46328e:	ff 15 2c d0 48 00    	call   *0x48d02c
463294:	85 c0                	test   %eax,%eax
463296:	74 13                	je     0x4632ab
463298:	56                   	push   %esi
463299:	50                   	push   %eax
46329a:	8b 03                	mov    (%ebx),%eax
46329c:	8b 48 04             	mov    0x4(%eax),%ecx
46329f:	03 cb                	add    %ebx,%ecx
4632a1:	e8 7b 00 fa ff       	call   0x403321
4632a6:	56                   	push   %esi
4632a7:	6a 03                	push   $0x3
4632a9:	eb 4a                	jmp    0x4632f5
4632ab:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4632af:	eb 04                	jmp    0x4632b5
4632b1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4632b5:	8d 44 24 10          	lea    0x10(%esp),%eax
4632b9:	50                   	push   %eax
4632ba:	8b 44 24 24          	mov    0x24(%esp),%eax
4632be:	0d 19 00 02 00       	or     $0x20019,%eax
4632c3:	50                   	push   %eax
4632c4:	56                   	push   %esi
4632c5:	ff 74 24 54          	push   0x54(%esp)
4632c9:	51                   	push   %ecx
4632ca:	ff 15 20 d0 48 00    	call   *0x48d020
4632d0:	85 c0                	test   %eax,%eax
4632d2:	74 32                	je     0x463306
4632d4:	56                   	push   %esi
4632d5:	50                   	push   %eax
4632d6:	8b 03                	mov    (%ebx),%eax
4632d8:	8b 48 04             	mov    0x4(%eax),%ecx
4632db:	03 cb                	add    %ebx,%ecx
4632dd:	e8 3f 00 fa ff       	call   0x403321
4632e2:	39 74 24 14          	cmp    %esi,0x14(%esp)
4632e6:	74 0a                	je     0x4632f2
4632e8:	ff 74 24 14          	push   0x14(%esp)
4632ec:	ff 15 24 d0 48 00    	call   *0x48d024
4632f2:	56                   	push   %esi
4632f3:	6a 01                	push   $0x1
4632f5:	8b 03                	mov    (%ebx),%eax
4632f7:	8b 48 04             	mov    0x4(%eax),%ecx
4632fa:	03 cb                	add    %ebx,%ecx
4632fc:	e8 4b 9c fe ff       	call   0x44cf4c
463301:	e9 0d 03 00 00       	jmp    0x463613
463306:	8b 45 08             	mov    0x8(%ebp),%eax
463309:	8b 40 04             	mov    0x4(%eax),%eax
46330c:	8b 70 04             	mov    0x4(%eax),%esi
46330f:	8b ce                	mov    %esi,%ecx
463311:	e8 56 60 fa ff       	call   0x40936c
463316:	8b 46 08             	mov    0x8(%esi),%eax
463319:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
46331d:	51                   	push   %ecx
46331e:	33 f6                	xor    %esi,%esi
463320:	56                   	push   %esi
463321:	8d 4c 24 24          	lea    0x24(%esp),%ecx
463325:	51                   	push   %ecx
463326:	56                   	push   %esi
463327:	ff 30                	push   (%eax)
463329:	ff 74 24 24          	push   0x24(%esp)
46332d:	ff 15 28 d0 48 00    	call   *0x48d028
463333:	56                   	push   %esi
463334:	85 c0                	test   %eax,%eax
463336:	74 15                	je     0x46334d
463338:	50                   	push   %eax
463339:	8b 03                	mov    (%ebx),%eax
46333b:	8b 48 04             	mov    0x4(%eax),%ecx
46333e:	03 cb                	add    %ebx,%ecx
463340:	e8 dc ff f9 ff       	call   0x403321
463345:	56                   	push   %esi
463346:	6a ff                	push   $0xffffffff
463348:	e9 a1 02 00 00       	jmp    0x4635ee
46334d:	8b 03                	mov    (%ebx),%eax
46334f:	ff 74 24 20          	push   0x20(%esp)
463353:	8b 48 04             	mov    0x4(%eax),%ecx
463356:	03 cb                	add    %ebx,%ecx
463358:	e8 c4 ff f9 ff       	call   0x403321
46335d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
463361:	85 c0                	test   %eax,%eax
463363:	0f 84 82 02 00 00    	je     0x4635eb
463369:	6a 02                	push   $0x2
46336b:	5a                   	pop    %edx
46336c:	3b c2                	cmp    %edx,%eax
46336e:	0f 86 e7 01 00 00    	jbe    0x46355b
463374:	83 f8 03             	cmp    $0x3,%eax
463377:	0f 84 6b 01 00 00    	je     0x4634e8
46337d:	6a 04                	push   $0x4
46337f:	59                   	pop    %ecx
463380:	3b c1                	cmp    %ecx,%eax
463382:	0f 84 14 01 00 00    	je     0x46349c
463388:	83 f8 07             	cmp    $0x7,%eax
46338b:	74 60                	je     0x4633ed
46338d:	83 f8 0b             	cmp    $0xb,%eax
463390:	0f 85 55 02 00 00    	jne    0x4635eb
463396:	8b 45 08             	mov    0x8(%ebp),%eax
463399:	c7 44 24 0c 08 00 00 	movl   $0x8,0xc(%esp)
4633a0:	00
4633a1:	8b 40 04             	mov    0x4(%eax),%eax
4633a4:	8b 70 04             	mov    0x4(%eax),%esi
4633a7:	8b ce                	mov    %esi,%ecx
4633a9:	e8 be 5f fa ff       	call   0x40936c
4633ae:	8d 44 24 0c          	lea    0xc(%esp),%eax
4633b2:	50                   	push   %eax
4633b3:	8d 44 24 24          	lea    0x24(%esp),%eax
4633b7:	50                   	push   %eax
4633b8:	8b 46 08             	mov    0x8(%esi),%eax
4633bb:	33 ff                	xor    %edi,%edi
4633bd:	57                   	push   %edi
4633be:	57                   	push   %edi
4633bf:	ff 30                	push   (%eax)
4633c1:	ff 74 24 24          	push   0x24(%esp)
4633c5:	ff 15 28 d0 48 00    	call   *0x48d028
4633cb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4633ce:	8b 74 24 20          	mov    0x20(%esp),%esi
4633d2:	8b 7c 24 24          	mov    0x24(%esp),%edi
4633d6:	8b cb                	mov    %ebx,%ecx
4633d8:	e8 43 f8 fa ff       	call   0x412c20
4633dd:	6a 02                	push   $0x2
4633df:	58                   	pop    %eax
4633e0:	89 43 0c             	mov    %eax,0xc(%ebx)
4633e3:	89 33                	mov    %esi,(%ebx)
4633e5:	89 7b 04             	mov    %edi,0x4(%ebx)
4633e8:	e9 0d 02 00 00       	jmp    0x4635fa
4633ed:	8b 44 24 0c          	mov    0xc(%esp),%eax
4633f1:	d1 e8                	shr    $1,%eax
4633f3:	33 c9                	xor    %ecx,%ecx
4633f5:	03 c2                	add    %edx,%eax
4633f7:	f7 e2                	mul    %edx
4633f9:	0f 90 c1             	seto   %cl
4633fc:	f7 d9                	neg    %ecx
4633fe:	0b c8                	or     %eax,%ecx
463400:	51                   	push   %ecx
463401:	e8 e4 c0 fb ff       	call   0x41f4ea
463406:	89 44 24 24          	mov    %eax,0x24(%esp)
46340a:	8b 45 08             	mov    0x8(%ebp),%eax
46340d:	59                   	pop    %ecx
46340e:	8b 48 04             	mov    0x4(%eax),%ecx
463411:	8b 71 04             	mov    0x4(%ecx),%esi
463414:	8b ce                	mov    %esi,%ecx
463416:	e8 51 5f fa ff       	call   0x40936c
46341b:	8b 4e 08             	mov    0x8(%esi),%ecx
46341e:	8b 74 24 20          	mov    0x20(%esp),%esi
463422:	8d 44 24 0c          	lea    0xc(%esp),%eax
463426:	50                   	push   %eax
463427:	56                   	push   %esi
463428:	33 c0                	xor    %eax,%eax
46342a:	50                   	push   %eax
46342b:	50                   	push   %eax
46342c:	ff 31                	push   (%ecx)
46342e:	ff 74 24 24          	push   0x24(%esp)
463432:	ff 15 28 d0 48 00    	call   *0x48d028
463438:	85 c0                	test   %eax,%eax
46343a:	0f 85 83 01 00 00    	jne    0x4635c3
463440:	8b 44 24 0c          	mov    0xc(%esp),%eax
463444:	d1 e8                	shr    $1,%eax
463446:	33 c9                	xor    %ecx,%ecx
463448:	89 44 24 0c          	mov    %eax,0xc(%esp)
46344c:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
463450:	8b 44 24 0c          	mov    0xc(%esp),%eax
463454:	83 f8 01             	cmp    $0x1,%eax
463457:	0f 86 5c 01 00 00    	jbe    0x4635b9
46345d:	33 d2                	xor    %edx,%edx
46345f:	66 39 54 46 fe       	cmp    %dx,-0x2(%esi,%eax,2)
463464:	75 05                	jne    0x46346b
463466:	48                   	dec    %eax
463467:	89 44 24 0c          	mov    %eax,0xc(%esp)
46346b:	6a 0a                	push   $0xa
46346d:	5b                   	pop    %ebx
46346e:	85 c0                	test   %eax,%eax
463470:	74 13                	je     0x463485
463472:	66 39 14 4e          	cmp    %dx,(%esi,%ecx,2)
463476:	75 08                	jne    0x463480
463478:	66 89 1c 4e          	mov    %bx,(%esi,%ecx,2)
46347c:	8b 44 24 0c          	mov    0xc(%esp),%eax
463480:	41                   	inc    %ecx
463481:	3b c8                	cmp    %eax,%ecx
463483:	72 ed                	jb     0x463472
463485:	66 39 5c 4e fe       	cmp    %bx,-0x2(%esi,%ecx,2)
46348a:	0f 85 29 01 00 00    	jne    0x4635b9
463490:	33 c0                	xor    %eax,%eax
463492:	66 89 44 4e fe       	mov    %ax,-0x2(%esi,%ecx,2)
463497:	e9 1d 01 00 00       	jmp    0x4635b9
46349c:	8b 45 08             	mov    0x8(%ebp),%eax
46349f:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
4634a3:	8b 40 04             	mov    0x4(%eax),%eax
4634a6:	8b 70 04             	mov    0x4(%eax),%esi
4634a9:	8b ce                	mov    %esi,%ecx
4634ab:	e8 bc 5e fa ff       	call   0x40936c
4634b0:	8d 44 24 0c          	lea    0xc(%esp),%eax
4634b4:	50                   	push   %eax
4634b5:	8d 44 24 24          	lea    0x24(%esp),%eax
4634b9:	50                   	push   %eax
4634ba:	8b 46 08             	mov    0x8(%esi),%eax
4634bd:	33 db                	xor    %ebx,%ebx
4634bf:	53                   	push   %ebx
4634c0:	53                   	push   %ebx
4634c1:	ff 30                	push   (%eax)
4634c3:	ff 74 24 24          	push   0x24(%esp)
4634c7:	ff 15 28 d0 48 00    	call   *0x48d028
4634cd:	8b 74 24 20          	mov    0x20(%esp),%esi
4634d1:	8b cf                	mov    %edi,%ecx
4634d3:	e8 48 f7 fa ff       	call   0x412c20
4634d8:	6a 02                	push   $0x2
4634da:	58                   	pop    %eax
4634db:	89 47 0c             	mov    %eax,0xc(%edi)
4634de:	89 37                	mov    %esi,(%edi)
4634e0:	89 5f 04             	mov    %ebx,0x4(%edi)
4634e3:	e9 12 01 00 00       	jmp    0x4635fa
4634e8:	ff 74 24 0c          	push   0xc(%esp)
4634ec:	8b cf                	mov    %edi,%ecx
4634ee:	e8 f0 6e fe ff       	call   0x44a3e3
4634f3:	8b f8                	mov    %eax,%edi
4634f5:	8b 45 08             	mov    0x8(%ebp),%eax
4634f8:	8b 48 04             	mov    0x4(%eax),%ecx
4634fb:	8b 71 04             	mov    0x4(%ecx),%esi
4634fe:	8b ce                	mov    %esi,%ecx
463500:	e8 67 5e fa ff       	call   0x40936c
463505:	8b 4e 08             	mov    0x8(%esi),%ecx
463508:	8d 44 24 0c          	lea    0xc(%esp),%eax
46350c:	50                   	push   %eax
46350d:	57                   	push   %edi
46350e:	33 f6                	xor    %esi,%esi
463510:	56                   	push   %esi
463511:	56                   	push   %esi
463512:	ff 31                	push   (%ecx)
463514:	ff 74 24 24          	push   0x24(%esp)
463518:	ff 15 28 d0 48 00    	call   *0x48d028
46351e:	85 c0                	test   %eax,%eax
463520:	0f 84 d4 00 00 00    	je     0x4635fa
463526:	56                   	push   %esi
463527:	50                   	push   %eax
463528:	8b 03                	mov    (%ebx),%eax
46352a:	8b 48 04             	mov    0x4(%eax),%ecx
46352d:	03 cb                	add    %ebx,%ecx
46352f:	e8 ed fd f9 ff       	call   0x403321
463534:	8b 03                	mov    (%ebx),%eax
463536:	56                   	push   %esi
463537:	8b 48 04             	mov    0x4(%eax),%ecx
46353a:	6a fe                	push   $0xfffffffe
46353c:	03 cb                	add    %ebx,%ecx
46353e:	e8 09 9a fe ff       	call   0x44cf4c
463543:	8b 5d 0c             	mov    0xc(%ebp),%ebx
463546:	8b cb                	mov    %ebx,%ecx
463548:	e8 d3 f6 fa ff       	call   0x412c20
46354d:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
463554:	89 33                	mov    %esi,(%ebx)
463556:	e9 9f 00 00 00       	jmp    0x4635fa
46355b:	8b 44 24 0c          	mov    0xc(%esp),%eax
46355f:	d1 e8                	shr    $1,%eax
463561:	33 c9                	xor    %ecx,%ecx
463563:	40                   	inc    %eax
463564:	f7 e2                	mul    %edx
463566:	0f 90 c1             	seto   %cl
463569:	f7 d9                	neg    %ecx
46356b:	0b c8                	or     %eax,%ecx
46356d:	51                   	push   %ecx
46356e:	e8 77 bf fb ff       	call   0x41f4ea
463573:	89 44 24 24          	mov    %eax,0x24(%esp)
463577:	8b 45 08             	mov    0x8(%ebp),%eax
46357a:	59                   	pop    %ecx
46357b:	8b 48 04             	mov    0x4(%eax),%ecx
46357e:	8b 71 04             	mov    0x4(%ecx),%esi
463581:	8b ce                	mov    %esi,%ecx
463583:	e8 e4 5d fa ff       	call   0x40936c
463588:	8b 4e 08             	mov    0x8(%esi),%ecx
46358b:	8b 74 24 20          	mov    0x20(%esp),%esi
46358f:	8d 44 24 0c          	lea    0xc(%esp),%eax
463593:	50                   	push   %eax
463594:	56                   	push   %esi
463595:	33 c0                	xor    %eax,%eax
463597:	50                   	push   %eax
463598:	50                   	push   %eax
463599:	ff 31                	push   (%ecx)
46359b:	ff 74 24 24          	push   0x24(%esp)
46359f:	ff 15 28 d0 48 00    	call   *0x48d028
4635a5:	85 c0                	test   %eax,%eax
4635a7:	75 1a                	jne    0x4635c3
4635a9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4635ad:	d1 e8                	shr    $1,%eax
4635af:	33 c9                	xor    %ecx,%ecx
4635b1:	89 44 24 0c          	mov    %eax,0xc(%esp)
4635b5:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
4635b9:	56                   	push   %esi
4635ba:	8b cf                	mov    %edi,%ecx
4635bc:	e8 f8 97 fa ff       	call   0x40cdb9
4635c1:	eb 1f                	jmp    0x4635e2
4635c3:	33 ff                	xor    %edi,%edi
4635c5:	57                   	push   %edi
4635c6:	50                   	push   %eax
4635c7:	8b 03                	mov    (%ebx),%eax
4635c9:	8b 48 04             	mov    0x4(%eax),%ecx
4635cc:	03 cb                	add    %ebx,%ecx
4635ce:	e8 4e fd f9 ff       	call   0x403321
4635d3:	8b 03                	mov    (%ebx),%eax
4635d5:	57                   	push   %edi
4635d6:	8b 48 04             	mov    0x4(%eax),%ecx
4635d9:	6a fe                	push   $0xfffffffe
4635db:	03 cb                	add    %ebx,%ecx
4635dd:	e8 6a 99 fe ff       	call   0x44cf4c
4635e2:	56                   	push   %esi
4635e3:	e8 76 bf fb ff       	call   0x41f55e
4635e8:	59                   	pop    %ecx
4635e9:	eb 0f                	jmp    0x4635fa
4635eb:	56                   	push   %esi
4635ec:	6a fe                	push   $0xfffffffe
4635ee:	8b 03                	mov    (%ebx),%eax
4635f0:	8b 48 04             	mov    0x4(%eax),%ecx
4635f3:	03 cb                	add    %ebx,%ecx
4635f5:	e8 52 99 fe ff       	call   0x44cf4c
4635fa:	ff 74 24 10          	push   0x10(%esp)
4635fe:	8b 35 24 d0 48 00    	mov    0x48d024,%esi
463604:	ff d6                	call   *%esi
463606:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
46360b:	74 06                	je     0x463613
46360d:	ff 74 24 14          	push   0x14(%esp)
463611:	ff d6                	call   *%esi
463613:	8d 4c 24 48          	lea    0x48(%esp),%ecx
463617:	e8 1b 95 fa ff       	call   0x40cb37
46361c:	8d 4c 24 28          	lea    0x28(%esp),%ecx
463620:	e8 12 95 fa ff       	call   0x40cb37
463625:	8d 4c 24 38          	lea    0x38(%esp),%ecx
463629:	e8 09 95 fa ff       	call   0x40cb37
46362e:	5f                   	pop    %edi