45a373:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a376:	8b 49 0c             	mov    0xc(%ecx),%ecx
45a379:	e8 08 2f fb ff       	call   0x40d286
45a37e:	83 f8 ff             	cmp    $0xffffffff,%eax
45a381:	74 0e                	je     0x45a391
45a383:	8b 43 04             	mov    0x4(%ebx),%eax
45a386:	8b 48 0c             	mov    0xc(%eax),%ecx
45a389:	e8 f8 2e fb ff       	call   0x40d286
45a38e:	89 45 fc             	mov    %eax,-0x4(%ebp)
45a391:	83 fe 05             	cmp    $0x5,%esi
45a394:	72 0e                	jb     0x45a3a4
45a396:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a399:	8b 49 10             	mov    0x10(%ecx),%ecx
45a39c:	e8 e5 2e fb ff       	call   0x40d286
45a3a1:	89 45 e8             	mov    %eax,-0x18(%ebp)
45a3a4:	83 fe 06             	cmp    $0x6,%esi
45a3a7:	72 0e                	jb     0x45a3b7
45a3a9:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a3ac:	8b 49 14             	mov    0x14(%ecx),%ecx
45a3af:	e8 d2 2e fb ff       	call   0x40d286
45a3b4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45a3b7:	83 fe 07             	cmp    $0x7,%esi
45a3ba:	0f 82 87 00 00 00    	jb     0x45a447
45a3c0:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a3c3:	8b 49 18             	mov    0x18(%ecx),%ecx
45a3c6:	e8 bb 2e fb ff       	call   0x40d286
45a3cb:	83 f8 ff             	cmp    $0xffffffff,%eax
45a3ce:	74 77                	je     0x45a447
45a3d0:	8b 43 04             	mov    0x4(%ebx),%eax
45a3d3:	8b 48 18             	mov    0x18(%eax),%ecx
45a3d6:	e8 ab 2e fb ff       	call   0x40d286
45a3db:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
45a3df:	8b c8                	mov    %eax,%ecx
45a3e1:	89 4d d0             	mov    %ecx,-0x30(%ebp)
45a3e4:	75 29                	jne    0x45a40f
45a3e6:	f6 c1 08             	test   $0x8,%cl
45a3e9:	74 0a                	je     0x45a3f5
45a3eb:	b8 02 00 00 50       	mov    $0x50000002,%eax
45a3f0:	89 45 ec             	mov    %eax,-0x14(%ebp)
45a3f3:	eb 02                	jmp    0x45a3f7
45a3f5:	8b c7                	mov    %edi,%eax
45a3f7:	f6 c1 04             	test   $0x4,%cl
45a3fa:	74 10                	je     0x45a40c
45a3fc:	0f be c0             	movsbl %al,%eax
45a3ff:	83 e0 02             	and    $0x2,%eax
45a402:	0d 01 00 00 a0       	or     $0xa0000001,%eax
45a407:	d1 e8                	shr    $1,%eax
45a409:	89 45 ec             	mov    %eax,-0x14(%ebp)
45a40c:	8b 7d ec             	mov    -0x14(%ebp),%edi
45a40f:	8a c1                	mov    %cl,%al
45a411:	24 02                	and    $0x2,%al
45a413:	0f be c0             	movsbl %al,%eax
45a416:	f7 d8                	neg    %eax
45a418:	1b c0                	sbb    %eax,%eax
45a41a:	f7 d0                	not    %eax
45a41c:	23 45 f0             	and    -0x10(%ebp),%eax
45a41f:	8b f0                	mov    %eax,%esi
45a421:	89 75 f0             	mov    %esi,-0x10(%ebp)
45a424:	f6 c1 01             	test   $0x1,%cl
45a427:	74 0a                	je     0x45a433
45a429:	b8 00 00 80 88       	mov    $0x88800000,%eax
45a42e:	89 45 f8             	mov    %eax,-0x8(%ebp)
45a431:	eb 05                	jmp    0x45a438
45a433:	b8 00 00 c0 88       	mov    $0x88c00000,%eax
45a438:	f6 c1 10             	test   $0x10,%cl
45a43b:	74 0d                	je     0x45a44a
45a43d:	35 00 00 00 08       	xor    $0x8000000,%eax
45a442:	89 45 f8             	mov    %eax,-0x8(%ebp)
45a445:	eb 03                	jmp    0x45a44a
45a447:	8b 75 f0             	mov    -0x10(%ebp),%esi
45a44a:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
45a44e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45a451:	75 0d                	jne    0x45a460
45a453:	8b 45 dc             	mov    -0x24(%ebp),%eax
45a456:	2b c1                	sub    %ecx,%eax
45a458:	99                   	cltd
45a459:	2b c2                	sub    %edx,%eax
45a45b:	d1 f8                	sar    $1,%eax
45a45d:	89 45 e8             	mov    %eax,-0x18(%ebp)
45a460:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
45a464:	75 0e                	jne    0x45a474
45a466:	8b 45 e0             	mov    -0x20(%ebp),%eax
45a469:	2b 45 fc             	sub    -0x4(%ebp),%eax
45a46c:	99                   	cltd
45a46d:	2b c2                	sub    %edx,%eax
45a46f:	d1 f8                	sar    $1,%eax
45a471:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45a474:	ff 75 fc             	push   -0x4(%ebp)
45a477:	8d 45 d4             	lea    -0x2c(%ebp),%eax
45a47a:	51                   	push   %ecx
45a47b:	6a 00                	push   $0x0
45a47d:	6a 00                	push   $0x0
45a47f:	50                   	push   %eax
45a480:	ff 15 a4 d6 48 00    	call   *0x48d6a4
45a486:	56                   	push   %esi
45a487:	6a 00                	push   $0x0
45a489:	ff 75 f8             	push   -0x8(%ebp)
45a48c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
45a48f:	50                   	push   %eax
45a490:	ff 15 a0 d6 48 00    	call   *0x48d6a0
45a496:	8b 43 04             	mov    0x4(%ebx),%eax
45a499:	8b 30                	mov    (%eax),%esi
45a49b:	8b ce                	mov    %esi,%ecx
45a49d:	e8 ca ee fa ff       	call   0x40936c
45a4a2:	8b 46 08             	mov    0x8(%esi),%eax
45a4a5:	8b 35 08 d7 48 00    	mov    0x48d708,%esi
45a4ab:	8b 08                	mov    (%eax),%ecx
45a4ad:	33 c0                	xor    %eax,%eax
45a4af:	50                   	push   %eax
45a4b0:	50                   	push   %eax
45a4b1:	50                   	push   %eax
45a4b2:	ff 35 e8 10 4c 00    	push   0x4c10e8
45a4b8:	8b 45 e0             	mov    -0x20(%ebp),%eax
45a4bb:	2b 45 d8             	sub    -0x28(%ebp),%eax
45a4be:	50                   	push   %eax
45a4bf:	8b 45 dc             	mov    -0x24(%ebp),%eax
45a4c2:	2b 45 d4             	sub    -0x2c(%ebp),%eax
45a4c5:	50                   	push   %eax
45a4c6:	ff 75 e4             	push   -0x1c(%ebp)
45a4c9:	ff 75 e8             	push   -0x18(%ebp)
45a4cc:	ff 75 f8             	push   -0x8(%ebp)
45a4cf:	51                   	push   %ecx
45a4d0:	68 b8 da 49 00       	push   $0x49dab8
45a4d5:	ff 75 f0             	push   -0x10(%ebp)
45a4d8:	ff d6                	call   *%esi
45a4da:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
45a4dd:	51                   	push   %ecx
45a4de:	50                   	push   %eax
45a4df:	a3 dc 10 4c 00       	mov    %eax,0x4c10dc
45a4e4:	ff 15 1c d6 48 00    	call   *0x48d61c
45a4ea:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45a4ed:	8b 45 e0             	mov    -0x20(%ebp),%eax
45a4f0:	2b 4d d4             	sub    -0x2c(%ebp),%ecx
45a4f3:	2b 45 d8             	sub    -0x28(%ebp),%eax
45a4f6:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
45a4fa:	0f 85 3b 01 00 00    	jne    0x45a63b
45a500:	33 ff                	xor    %edi,%edi
45a502:	57                   	push   %edi
45a503:	57                   	push   %edi
45a504:	57                   	push   %edi
45a505:	ff 35 dc 10 4c 00    	push   0x4c10dc
45a50b:	89 7d 10             	mov    %edi,0x10(%ebp)
45a50e:	50                   	push   %eax
45a50f:	51                   	push   %ecx
45a510:	57                   	push   %edi
45a511:	57                   	push   %edi
45a512:	68 0e 00 00 50       	push   $0x5000000e
45a517:	57                   	push   %edi
45a518:	68 78 18 4b 00       	push   $0x4b1878
45a51d:	57                   	push   %edi
45a51e:	ff d6                	call   *%esi
45a520:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a523:	89 45 d0             	mov    %eax,-0x30(%ebp)
45a526:	8b 71 04             	mov    0x4(%ecx),%esi
45a529:	8b ce                	mov    %esi,%ecx
45a52b:	e8 3c ee fa ff       	call   0x40936c
45a530:	8b 4e 08             	mov    0x8(%esi),%ecx
45a533:	57                   	push   %edi
45a534:	57                   	push   %edi
45a535:	6a 03                	push   $0x3
45a537:	57                   	push   %edi
45a538:	57                   	push   %edi
45a539:	68 00 00 00 80       	push   $0x80000000
45a53e:	ff 31                	push   (%ecx)
45a540:	ff 15 c4 d1 48 00    	call   *0x48d1c4
45a546:	8b d8                	mov    %eax,%ebx
45a548:	83 fb ff             	cmp    $0xffffffff,%ebx
45a54b:	0f 84 d2 02 00 00    	je     0x45a823
45a551:	57                   	push   %edi
45a552:	53                   	push   %ebx
45a553:	ff 15 d8 d2 48 00    	call   *0x48d2d8
45a559:	8b f0                	mov    %eax,%esi
45a55b:	56                   	push   %esi
45a55c:	6a 02                	push   $0x2
45a55e:	ff 15 d4 d2 48 00    	call   *0x48d2d4
45a564:	8b f8                	mov    %eax,%edi
45a566:	57                   	push   %edi
45a567:	ff 15 cc d2 48 00    	call   *0x48d2cc
45a56d:	6a 00                	push   $0x0
45a56f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
45a572:	51                   	push   %ecx
45a573:	56                   	push   %esi
45a574:	50                   	push   %eax
45a575:	53                   	push   %ebx
45a576:	ff 15 cc d1 48 00    	call   *0x48d1cc
45a57c:	57                   	push   %edi
45a57d:	8b f0                	mov    %eax,%esi
45a57f:	ff 15 d0 d2 48 00    	call   *0x48d2d0
45a585:	53                   	push   %ebx
45a586:	ff 15 0c d3 48 00    	call   *0x48d30c
45a58c:	85 f6                	test   %esi,%esi
45a58e:	75 0c                	jne    0x45a59c
45a590:	57                   	push   %edi
45a591:	ff 15 dc d2 48 00    	call   *0x48d2dc
45a597:	e9 87 02 00 00       	jmp    0x45a823
45a59c:	8d 45 08             	lea    0x8(%ebp),%eax
45a59f:	50                   	push   %eax
45a5a0:	6a 01                	push   $0x1
45a5a2:	57                   	push   %edi
45a5a3:	ff 15 38 d8 48 00    	call   *0x48d838
45a5a9:	8d 45 10             	lea    0x10(%ebp),%eax
45a5ac:	50                   	push   %eax
45a5ad:	68 bc d9 48 00       	push   $0x48d9bc
45a5b2:	33 db                	xor    %ebx,%ebx
45a5b4:	53                   	push   %ebx
45a5b5:	53                   	push   %ebx
45a5b6:	ff 75 08             	push   0x8(%ebp)
45a5b9:	ff 15 40 d4 48 00    	call   *0x48d440
45a5bf:	8b 45 08             	mov    0x8(%ebp),%eax
45a5c2:	50                   	push   %eax
45a5c3:	8b 08                	mov    (%eax),%ecx
45a5c5:	ff 51 08             	call   *0x8(%ecx)
45a5c8:	57                   	push   %edi
45a5c9:	ff 15 dc d2 48 00    	call   *0x48d2dc
45a5cf:	8b 4d 10             	mov    0x10(%ebp),%ecx
45a5d2:	85 c9                	test   %ecx,%ecx
45a5d4:	0f 84 49 02 00 00    	je     0x45a823
45a5da:	8b 01                	mov    (%ecx),%eax
45a5dc:	8d 55 0c             	lea    0xc(%ebp),%edx
45a5df:	52                   	push   %edx
45a5e0:	51                   	push   %ecx
45a5e1:	ff 50 0c             	call   *0xc(%eax)
45a5e4:	68 00 20 00 00       	push   $0x2000
45a5e9:	53                   	push   %ebx
45a5ea:	53                   	push   %ebx
45a5eb:	53                   	push   %ebx
45a5ec:	ff 75 0c             	push   0xc(%ebp)
45a5ef:	ff 15 a8 d5 48 00    	call   *0x48d5a8
45a5f5:	89 45 0c             	mov    %eax,0xc(%ebp)
45a5f8:	8b 45 10             	mov    0x10(%ebp),%eax
45a5fb:	50                   	push   %eax
45a5fc:	8b 08                	mov    (%eax),%ecx
45a5fe:	ff 51 08             	call   *0x8(%ecx)
45a601:	ff 75 0c             	push   0xc(%ebp)
45a604:	8b 75 d0             	mov    -0x30(%ebp),%esi
45a607:	53                   	push   %ebx
45a608:	68 72 01 00 00       	push   $0x172
45a60d:	56                   	push   %esi
45a60e:	ff 15 70 d6 48 00    	call   *0x48d670
45a614:	8b 45 0c             	mov    0xc(%ebp),%eax
45a617:	a3 d8 10 4c 00       	mov    %eax,0x4c10d8
45a61c:	8b 45 e0             	mov    -0x20(%ebp),%eax
45a61f:	2b 45 d8             	sub    -0x28(%ebp),%eax
45a622:	6a 20                	push   $0x20
45a624:	50                   	push   %eax
45a625:	8b 45 dc             	mov    -0x24(%ebp),%eax
45a628:	2b 45 d4             	sub    -0x2c(%ebp),%eax
45a62b:	50                   	push   %eax
45a62c:	53                   	push   %ebx
45a62d:	53                   	push   %ebx
45a62e:	53                   	push   %ebx
45a62f:	56                   	push   %esi
45a630:	ff 15 b4 d4 48 00    	call   *0x48d4b4
45a636:	e9 da 01 00 00       	jmp    0x45a815
45a63b:	83 e8 16             	sub    $0x16,%eax
45a63e:	89 45 fc             	mov    %eax,-0x4(%ebp)
45a641:	8b 43 04             	mov    0x4(%ebx),%eax
45a644:	83 e9 16             	sub    $0x16,%ecx
45a647:	8b 70 04             	mov    0x4(%eax),%esi
45a64a:	89 4d 10             	mov    %ecx,0x10(%ebp)
45a64d:	8b ce                	mov    %esi,%ecx
45a64f:	e8 18 ed fa ff       	call   0x40936c
45a654:	8b 46 08             	mov    0x8(%esi),%eax
45a657:	33 f6                	xor    %esi,%esi
45a659:	56                   	push   %esi
45a65a:	56                   	push   %esi
45a65b:	56                   	push   %esi
45a65c:	ff 35 dc 10 4c 00    	push   0x4c10dc
45a662:	ff 75 fc             	push   -0x4(%ebp)
45a665:	ff 75 10             	push   0x10(%ebp)
45a668:	6a 0b                	push   $0xb
45a66a:	6a 0b                	push   $0xb
45a66c:	57                   	push   %edi
45a66d:	ff 30                	push   (%eax)
45a66f:	68 78 18 4b 00       	push   $0x4b1878
45a674:	56                   	push   %esi
45a675:	ff 15 08 d7 48 00    	call   *0x48d708
45a67b:	56                   	push   %esi
45a67c:	56                   	push   %esi
45a67d:	56                   	push   %esi
45a67e:	8b f8                	mov    %eax,%edi
45a680:	68 50 3d 4b 00       	push   $0x4b3d50
45a685:	89 7d f8             	mov    %edi,-0x8(%ebp)
45a688:	ff 15 18 d1 48 00    	call   *0x48d118
45a68e:	6a 11                	push   $0x11
45a690:	8b f0                	mov    %eax,%esi
45a692:	ff 15 1c d1 48 00    	call   *0x48d11c
45a698:	50                   	push   %eax
45a699:	56                   	push   %esi
45a69a:	ff 15 04 d1 48 00    	call   *0x48d104
45a6a0:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
45a6a6:	50                   	push   %eax
45a6a7:	6a 40                	push   $0x40
45a6a9:	56                   	push   %esi
45a6aa:	ff 15 48 d1 48 00    	call   *0x48d148
45a6b0:	6a 5a                	push   $0x5a
45a6b2:	56                   	push   %esi
45a6b3:	ff 15 dc d0 48 00    	call   *0x48d0dc
45a6b9:	56                   	push   %esi
45a6ba:	89 45 f4             	mov    %eax,-0xc(%ebp)
45a6bd:	ff 15 10 d1 48 00    	call   *0x48d110
45a6c3:	83 7d 0c 08          	cmpl   $0x8,0xc(%ebp)
45a6c7:	72 3d                	jb     0x45a706
45a6c9:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a6cc:	8b 71 1c             	mov    0x1c(%ecx),%esi
45a6cf:	8b ce                	mov    %esi,%ecx
45a6d1:	e8 96 ec fa ff       	call   0x40936c
45a6d6:	8b 46 08             	mov    0x8(%esi),%eax
45a6d9:	ff 30                	push   (%eax)
45a6db:	e8 fb 65 fc ff       	call   0x420cdb
45a6e0:	59                   	pop    %ecx
45a6e1:	83 f8 01             	cmp    $0x1,%eax
45a6e4:	72 20                	jb     0x45a706
45a6e6:	8b 43 04             	mov    0x4(%ebx),%eax
45a6e9:	8b 70 1c             	mov    0x1c(%eax),%esi
45a6ec:	8b ce                	mov    %esi,%ecx
45a6ee:	e8 79 ec fa ff       	call   0x40936c
45a6f3:	8b 46 08             	mov    0x8(%esi),%eax
45a6f6:	ff 30                	push   (%eax)
45a6f8:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
45a6fe:	50                   	push   %eax
45a6ff:	e8 1f 66 fc ff       	call   0x420d23
45a704:	59                   	pop    %ecx
45a705:	59                   	pop    %ecx
45a706:	83 7d 0c 09          	cmpl   $0x9,0xc(%ebp)
45a70a:	72 1f                	jb     0x45a72b
45a70c:	8b 43 04             	mov    0x4(%ebx),%eax
45a70f:	8b 48 20             	mov    0x20(%eax),%ecx
45a712:	e8 6f 2b fb ff       	call   0x40d286
45a717:	83 f8 06             	cmp    $0x6,%eax
45a71a:	7c 0f                	jl     0x45a72b
45a71c:	8b 43 04             	mov    0x4(%ebx),%eax
45a71f:	8b 48 20             	mov    0x20(%eax),%ecx
45a722:	e8 5f 2b fb ff       	call   0x40d286
45a727:	8b f0                	mov    %eax,%esi
45a729:	eb 03                	jmp    0x45a72e
45a72b:	6a 0c                	push   $0xc
45a72d:	5e                   	pop    %esi
45a72e:	83 7d 0c 0a          	cmpl   $0xa,0xc(%ebp)
45a732:	72 2e                	jb     0x45a762
45a734:	8b 4b 04             	mov    0x4(%ebx),%ecx
45a737:	8b 49 24             	mov    0x24(%ecx),%ecx
45a73a:	e8 47 2b fb ff       	call   0x40d286
45a73f:	85 c0                	test   %eax,%eax
45a741:	78 1f                	js     0x45a762
45a743:	8b 43 04             	mov    0x4(%ebx),%eax
45a746:	8b 48 24             	mov    0x24(%eax),%ecx
45a749:	e8 38 2b fb ff       	call   0x40d286
45a74e:	3d e8 03 00 00       	cmp    $0x3e8,%eax
45a753:	7f 0d                	jg     0x45a762