451206:	55                   	push   %ebp
451207:	8b ec                	mov    %esp,%ebp
451209:	83 ec 24             	sub    $0x24,%esp
45120c:	53                   	push   %ebx
45120d:	56                   	push   %esi
45120e:	57                   	push   %edi
45120f:	8b 7d 0c             	mov    0xc(%ebp),%edi
451212:	89 4d fc             	mov    %ecx,-0x4(%ebp)
451215:	8b cf                	mov    %edi,%ecx
451217:	e8 04 1a fc ff       	call   0x412c20
45121c:	8b 5d 08             	mov    0x8(%ebp),%ebx
45121f:	83 27 00             	andl   $0x0,(%edi)
451222:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
451229:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
45122d:	c6 45 0f 00          	movb   $0x0,0xf(%ebp)
451231:	76 11                	jbe    0x451244
451233:	8b 43 04             	mov    0x4(%ebx),%eax
451236:	8b 48 0c             	mov    0xc(%eax),%ecx
451239:	e8 48 c0 fb ff       	call   0x40d286
45123e:	85 c0                	test   %eax,%eax
451240:	0f 9f 45 0f          	setg   0xf(%ebp)
451244:	8b 43 04             	mov    0x4(%ebx),%eax
451247:	8b 30                	mov    (%eax),%esi
451249:	8b ce                	mov    %esi,%ecx
45124b:	e8 1c 81 fb ff       	call   0x40936c
451250:	8b 4e 08             	mov    0x8(%esi),%ecx
451253:	8b 01                	mov    (%ecx),%eax
451255:	89 45 dc             	mov    %eax,-0x24(%ebp)
451258:	8b 41 04             	mov    0x4(%ecx),%eax
45125b:	89 45 e0             	mov    %eax,-0x20(%ebp)
45125e:	8b 41 08             	mov    0x8(%ecx),%eax
451261:	89 45 e4             	mov    %eax,-0x1c(%ebp)
451264:	8b 41 0c             	mov    0xc(%ecx),%eax
451267:	89 45 e8             	mov    %eax,-0x18(%ebp)
45126a:	ff 00                	incl   (%eax)
45126c:	8b 43 04             	mov    0x4(%ebx),%eax
45126f:	8b 30                	mov    (%eax),%esi
451271:	8b ce                	mov    %esi,%ecx
451273:	e8 f4 80 fb ff       	call   0x40936c
451278:	8b 4e 08             	mov    0x8(%esi),%ecx
45127b:	8d 55 dc             	lea    -0x24(%ebp),%edx
45127e:	e8 8c 53 fb ff       	call   0x40660f
451283:	68 fe ff 00 00       	push   $0xfffe
451288:	e8 5d e2 fc ff       	call   0x41f4ea
45128d:	59                   	pop    %ecx
45128e:	50                   	push   %eax
45128f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
451292:	e8 20 35 fb ff       	call   0x4047b7
451297:	8b 43 04             	mov    0x4(%ebx),%eax
45129a:	8b 70 04             	mov    0x4(%eax),%esi
45129d:	8b ce                	mov    %esi,%ecx
45129f:	e8 c8 80 fb ff       	call   0x40936c
4512a4:	ff 75 dc             	push   -0x24(%ebp)
4512a7:	8b 46 08             	mov    0x8(%esi),%eax
4512aa:	68 ff 7f 00 00       	push   $0x7fff
4512af:	ff 75 ec             	push   -0x14(%ebp)
4512b2:	ff 30                	push   (%eax)
4512b4:	ff 15 80 d2 48 00    	call   *0x48d280
4512ba:	85 c0                	test   %eax,%eax
4512bc:	0f 84 98 00 00 00    	je     0x45135a
4512c2:	8b 43 04             	mov    0x4(%ebx),%eax
4512c5:	8b 70 08             	mov    0x8(%eax),%esi
4512c8:	8b ce                	mov    %esi,%ecx
4512ca:	e8 9d 80 fb ff       	call   0x40936c
4512cf:	ff 75 dc             	push   -0x24(%ebp)
4512d2:	8b 46 08             	mov    0x8(%esi),%eax
4512d5:	6a 03                	push   $0x3
4512d7:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4512da:	51                   	push   %ecx
4512db:	ff 30                	push   (%eax)
4512dd:	ff 15 80 d2 48 00    	call   *0x48d280
4512e3:	85 c0                	test   %eax,%eax
4512e5:	74 1d                	je     0x451304
4512e7:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
4512eb:	75 17                	jne    0x451304
4512ed:	8b 55 fc             	mov    -0x4(%ebp),%edx
4512f0:	33 c0                	xor    %eax,%eax
4512f2:	40                   	inc    %eax
4512f3:	6a 00                	push   $0x0
4512f5:	50                   	push   %eax
4512f6:	8b 02                	mov    (%edx),%eax
4512f8:	8b 48 04             	mov    0x4(%eax),%ecx
4512fb:	03 ca                	add    %edx,%ecx
4512fd:	e8 4a bc ff ff       	call   0x44cf4c
451302:	eb 56                	jmp    0x45135a
451304:	8b 43 04             	mov    0x4(%ebx),%eax
451307:	8b 70 08             	mov    0x8(%eax),%esi
45130a:	8b ce                	mov    %esi,%ecx
45130c:	e8 5b 80 fb ff       	call   0x40936c
451311:	ff 75 dc             	push   -0x24(%ebp)
451314:	8b 46 08             	mov    0x8(%esi),%eax
451317:	ff 75 ec             	push   -0x14(%ebp)
45131a:	ff 30                	push   (%eax)
45131c:	ff 15 84 d2 48 00    	call   *0x48d284
451322:	8b 43 04             	mov    0x4(%ebx),%eax
451325:	8b 70 04             	mov    0x4(%eax),%esi
451328:	8b ce                	mov    %esi,%ecx
45132a:	e8 3d 80 fb ff       	call   0x40936c
45132f:	ff 75 dc             	push   -0x24(%ebp)
451332:	8b 46 08             	mov    0x8(%esi),%eax
451335:	8b 35 7c d2 48 00    	mov    0x48d27c,%esi
45133b:	33 db                	xor    %ebx,%ebx
45133d:	53                   	push   %ebx
45133e:	53                   	push   %ebx
45133f:	ff 30                	push   (%eax)
451341:	ff d6                	call   *%esi
451343:	ff 75 dc             	push   -0x24(%ebp)
451346:	53                   	push   %ebx
451347:	53                   	push   %ebx
451348:	53                   	push   %ebx
451349:	ff d6                	call   *%esi
45134b:	8b cf                	mov    %edi,%ecx
45134d:	e8 ce 18 fc ff       	call   0x412c20
451352:	33 c0                	xor    %eax,%eax
451354:	40                   	inc    %eax
451355:	89 47 0c             	mov    %eax,0xc(%edi)
451358:	89 07                	mov    %eax,(%edi)
45135a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
45135d:	e8 80 34 fb ff       	call   0x4047e2
451362:	8d 4d dc             	lea    -0x24(%ebp),%ecx
451365:	e8 cd b7 fb ff       	call   0x40cb37
45136a:	5f                   	pop    %edi
45136b:	5e                   	pop    %esi
45136c:	33 c0                	xor    %eax,%eax
45136e:	5b                   	pop    %ebx
45136f:	c9                   	leave
451370:	c2 08 00             	ret    $0x8
451373:	55                   	push   %ebp
451374:	8b ec                	mov    %esp,%ebp
451376:	83 ec 10             	sub    $0x10,%esp
451379:	53                   	push   %ebx
45137a:	56                   	push   %esi
45137b:	57                   	push   %edi
45137c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45137f:	e8 73 c4 fb ff       	call   0x40d7f7
451384:	8b 7d 08             	mov    0x8(%ebp),%edi
451387:	8b 47 04             	mov    0x4(%edi),%eax
45138a:	8b 30                	mov    (%eax),%esi
45138c:	8b ce                	mov    %esi,%ecx
45138e:	e8 d9 7f fb ff       	call   0x40936c
451393:	8b 4e 08             	mov    0x8(%esi),%ecx
451396:	8d 55 f0             	lea    -0x10(%ebp),%edx
451399:	e8 71 52 fb ff       	call   0x40660f
45139e:	8b 47 04             	mov    0x4(%edi),%eax
4513a1:	8b 70 0c             	mov    0xc(%eax),%esi
4513a4:	8b ce                	mov    %esi,%ecx
4513a6:	e8 c1 7f fb ff       	call   0x40936c
4513ab:	8b 46 08             	mov    0x8(%esi),%eax
4513ae:	8b 18                	mov    (%eax),%ebx
4513b0:	8b 47 04             	mov    0x4(%edi),%eax
4513b3:	8b 70 08             	mov    0x8(%eax),%esi
4513b6:	8b ce                	mov    %esi,%ecx
4513b8:	e8 af 7f fb ff       	call   0x40936c
4513bd:	8b 46 08             	mov    0x8(%esi),%eax
4513c0:	8b 38                	mov    (%eax),%edi
4513c2:	8b 45 08             	mov    0x8(%ebp),%eax
4513c5:	8b 40 04             	mov    0x4(%eax),%eax
4513c8:	8b 70 04             	mov    0x4(%eax),%esi
4513cb:	8b ce                	mov    %esi,%ecx
4513cd:	e8 9a 7f fb ff       	call   0x40936c
4513d2:	ff 75 f0             	push   -0x10(%ebp)
4513d5:	8b 46 08             	mov    0x8(%esi),%eax
4513d8:	8b 35 7c d2 48 00    	mov    0x48d27c,%esi
4513de:	53                   	push   %ebx
4513df:	57                   	push   %edi
4513e0:	ff 30                	push   (%eax)
4513e2:	ff d6                	call   *%esi
4513e4:	85 c0                	test   %eax,%eax
4513e6:	74 0c                	je     0x4513f4
4513e8:	ff 75 f0             	push   -0x10(%ebp)
4513eb:	33 c0                	xor    %eax,%eax
4513ed:	50                   	push   %eax
4513ee:	50                   	push   %eax
4513ef:	50                   	push   %eax
4513f0:	ff d6                	call   *%esi
4513f2:	eb 14                	jmp    0x451408
4513f4:	8b 75 0c             	mov    0xc(%ebp),%esi
4513f7:	8b ce                	mov    %esi,%ecx
4513f9:	e8 22 18 fc ff       	call   0x412c20
4513fe:	83 26 00             	andl   $0x0,(%esi)
451401:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
451408:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45140b:	e8 27 b7 fb ff       	call   0x40cb37
451410:	5f                   	pop    %edi
451411:	5e                   	pop    %esi
451412:	33 c0                	xor    %eax,%eax
451414:	5b                   	pop    %ebx
451415:	c9                   	leave
451416:	c2 08 00             	ret    $0x8
451419:	55                   	push   %ebp
45141a:	8b ec                	mov    %esp,%ebp
45141c:	83 ec 20             	sub    $0x20,%esp
45141f:	53                   	push   %ebx
451420:	8b 5d 0c             	mov    0xc(%ebp),%ebx
451423:	56                   	push   %esi
451424:	57                   	push   %edi
451425:	8b f9                	mov    %ecx,%edi
451427:	8b cb                	mov    %ebx,%ecx
451429:	e8 f2 17 fc ff       	call   0x412c20
45142e:	83 23 00             	andl   $0x0,(%ebx)
451431:	8d 4d e0             	lea    -0x20(%ebp),%ecx
451434:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
45143b:	e8 b7 c3 fb ff       	call   0x40d7f7
451440:	8b 45 08             	mov    0x8(%ebp),%eax
451443:	8b 40 04             	mov    0x4(%eax),%eax
451446:	8b 30                	mov    (%eax),%esi
451448:	8b ce                	mov    %esi,%ecx
45144a:	e8 1d 7f fb ff       	call   0x40936c
45144f:	8b 4e 08             	mov    0x8(%esi),%ecx
451452:	8d 55 e0             	lea    -0x20(%ebp),%edx
451455:	e8 b5 51 fb ff       	call   0x40660f
45145a:	8b 45 08             	mov    0x8(%ebp),%eax
45145d:	6a 05                	push   $0x5
45145f:	8b 40 04             	mov    0x4(%eax),%eax
451462:	8b 70 08             	mov    0x8(%eax),%esi
451465:	8b ce                	mov    %esi,%ecx
451467:	e8 78 c1 fb ff       	call   0x40d5e4
45146c:	6a 02                	push   $0x2
45146e:	5a                   	pop    %edx
45146f:	84 c0                	test   %al,%al
451471:	0f 84 79 01 00 00    	je     0x4515f0
451477:	6a 00                	push   $0x0
451479:	8b ce                	mov    %esi,%ecx
45147b:	e8 9f ab fc ff       	call   0x41c01f
451480:	3b c2                	cmp    %edx,%eax
451482:	0f 85 68 01 00 00    	jne    0x4515f0
451488:	52                   	push   %edx
451489:	8b ce                	mov    %esi,%ecx
45148b:	e8 8f ab fc ff       	call   0x41c01f
451490:	3b c2                	cmp    %edx,%eax
451492:	0f 85 58 01 00 00    	jne    0x4515f0
451498:	8b 7d 08             	mov    0x8(%ebp),%edi
45149b:	33 db                	xor    %ebx,%ebx
45149d:	43                   	inc    %ebx
45149e:	83 7f 08 04          	cmpl   $0x4,0x8(%edi)
4514a2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4514a5:	72 1a                	jb     0x4514c1
4514a7:	8b 4f 04             	mov    0x4(%edi),%ecx
4514aa:	8b 49 0c             	mov    0xc(%ecx),%ecx
4514ad:	e8 d4 bd fb ff       	call   0x40d286
4514b2:	8b d8                	mov    %eax,%ebx
4514b4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4514b7:	85 db                	test   %ebx,%ebx
4514b9:	79 06                	jns    0x4514c1
4514bb:	33 db                	xor    %ebx,%ebx
4514bd:	43                   	inc    %ebx
4514be:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4514c1:	8b 47 04             	mov    0x4(%edi),%eax
4514c4:	8b d3                	mov    %ebx,%edx
4514c6:	8b 40 08             	mov    0x8(%eax),%eax
4514c9:	33 f6                	xor    %esi,%esi
4514cb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4514ce:	8b d8                	mov    %eax,%ebx
4514d0:	6a 01                	push   $0x1
4514d2:	8b cb                	mov    %ebx,%ecx
4514d4:	89 55 fc             	mov    %edx,-0x4(%ebp)
4514d7:	89 75 f0             	mov    %esi,-0x10(%ebp)
4514da:	e8 40 ab fc ff       	call   0x41c01f
4514df:	3b d0                	cmp    %eax,%edx
4514e1:	7d 54                	jge    0x451537
4514e3:	6a 00                	push   $0x0
4514e5:	52                   	push   %edx
4514e6:	6a 02                	push   $0x2
4514e8:	5a                   	pop    %edx
4514e9:	52                   	push   %edx
4514ea:	6a 01                	push   $0x1
4514ec:	53                   	push   %ebx
4514ed:	e8 9e 06 fc ff       	call   0x411b90
4514f2:	8b f0                	mov    %eax,%esi
4514f4:	83 c4 14             	add    $0x14,%esp
4514f7:	8b ce                	mov    %esi,%ecx
4514f9:	e8 6e 7e fb ff       	call   0x40936c
4514fe:	8b 46 08             	mov    0x8(%esi),%eax
451501:	6a 01                	push   $0x1
451503:	ff 75 fc             	push   -0x4(%ebp)
451506:	8b 78 04             	mov    0x4(%eax),%edi
451509:	6a 02                	push   $0x2
45150b:	58                   	pop    %eax
45150c:	50                   	push   %eax
45150d:	6a 01                	push   $0x1
45150f:	53                   	push   %ebx
451510:	e8 7b 06 fc ff       	call   0x411b90
451515:	8b f0                	mov    %eax,%esi
451517:	83 c4 14             	add    $0x14,%esp
45151a:	8b ce                	mov    %esi,%ecx
45151c:	e8 4b 7e fb ff       	call   0x40936c
451521:	8b 46 08             	mov    0x8(%esi),%eax
451524:	8b 75 f0             	mov    -0x10(%ebp),%esi
451527:	8b 40 04             	mov    0x4(%eax),%eax
45152a:	8b 55 fc             	mov    -0x4(%ebp),%edx
45152d:	03 c7                	add    %edi,%eax
45152f:	83 c6 02             	add    $0x2,%esi
451532:	03 f0                	add    %eax,%esi
451534:	42                   	inc    %edx
451535:	eb 99                	jmp    0x4514d0
451537:	33 c9                	xor    %ecx,%ecx
451539:	6a 02                	push   $0x2
45153b:	8d 46 01             	lea    0x1(%esi),%eax
45153e:	5e                   	pop    %esi
45153f:	f7 e6                	mul    %esi
451541:	0f 90 c1             	seto   %cl
451544:	f7 d9                	neg    %ecx
451546:	0b c8                	or     %eax,%ecx
451548:	51                   	push   %ecx
451549:	e8 9c df fc ff       	call   0x41f4ea
45154e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
451551:	59                   	pop    %ecx
451552:	89 45 f0             	mov    %eax,-0x10(%ebp)
451555:	8b f8                	mov    %eax,%edi
451557:	8b 55 f4             	mov    -0xc(%ebp),%edx
45155a:	6a 01                	push   $0x1
45155c:	8b ca                	mov    %edx,%ecx
45155e:	e8 bc aa fc ff       	call   0x41c01f
451563:	3b d8                	cmp    %eax,%ebx
451565:	7d 79                	jge    0x4515e0
451567:	6a 00                	push   $0x0
451569:	53                   	push   %ebx
45156a:	56                   	push   %esi
45156b:	6a 01                	push   $0x1
45156d:	52                   	push   %edx
45156e:	e8 1d 06 fc ff       	call   0x411b90
451573:	8b f0                	mov    %eax,%esi
451575:	83 c4 14             	add    $0x14,%esp
451578:	8b ce                	mov    %esi,%ecx
45157a:	e8 ed 7d fb ff       	call   0x40936c
45157f:	8b 46 08             	mov    0x8(%esi),%eax
451582:	6a 02                	push   $0x2
451584:	8b 00                	mov    (%eax),%eax
451586:	5a                   	pop    %edx
451587:	0f b7 08             	movzwl (%eax),%ecx
45158a:	66 85 c9             	test   %cx,%cx
45158d:	74 09                	je     0x451598
45158f:	66 89 0f             	mov    %cx,(%edi)
451592:	03 fa                	add    %edx,%edi
451594:	03 c2                	add    %edx,%eax
451596:	eb ef                	jmp    0x451587
451598:	6a 3d                	push   $0x3d
45159a:	58                   	pop    %eax
45159b:	6a 01                	push   $0x1
45159d:	53                   	push   %ebx
45159e:	52                   	push   %edx
45159f:	6a 01                	push   $0x1
4515a1:	ff 75 f4             	push   -0xc(%ebp)
4515a4:	66 89 07             	mov    %ax,(%edi)
4515a7:	03 fa                	add    %edx,%edi
4515a9:	e8 e2 05 fc ff       	call   0x411b90
4515ae:	8b f0                	mov    %eax,%esi
4515b0:	83 c4 14             	add    $0x14,%esp
4515b3:	8b ce                	mov    %esi,%ecx
4515b5:	e8 b2 7d fb ff       	call   0x40936c