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
45a755:	8b 43 04             	mov    0x4(%ebx),%eax
45a758:	8b 48 24             	mov    0x24(%eax),%ecx
45a75b:	e8 26 2b fb ff       	call   0x40d286
45a760:	eb 05                	jmp    0x45a767
45a762:	b8 90 01 00 00       	mov    $0x190,%eax
45a767:	8d 8d 48 ff ff ff    	lea    -0xb8(%ebp),%ecx
45a76d:	51                   	push   %ecx
45a76e:	33 c9                	xor    %ecx,%ecx
45a770:	51                   	push   %ecx
45a771:	6a 02                	push   $0x2
45a773:	51                   	push   %ecx
45a774:	6a 04                	push   $0x4
45a776:	6a 01                	push   $0x1
45a778:	51                   	push   %ecx
45a779:	51                   	push   %ecx
45a77a:	51                   	push   %ecx
45a77b:	50                   	push   %eax
45a77c:	8b 45 f4             	mov    -0xc(%ebp),%eax
45a77f:	0f af c6             	imul   %esi,%eax
45a782:	51                   	push   %ecx
45a783:	51                   	push   %ecx
45a784:	51                   	push   %ecx
45a785:	6a b8                	push   $0xffffffb8
45a787:	99                   	cltd
45a788:	59                   	pop    %ecx
45a789:	f7 f9                	idiv   %ecx
45a78b:	50                   	push   %eax
45a78c:	ff 15 44 d1 48 00    	call   *0x48d144
45a792:	6a 01                	push   $0x1
45a794:	50                   	push   %eax
45a795:	6a 30                	push   $0x30
45a797:	57                   	push   %edi
45a798:	a3 e0 10 4c 00       	mov    %eax,0x4c10e0
45a79d:	ff 15 70 d6 48 00    	call   *0x48d670
45a7a3:	f6 45 d0 20          	testb  $0x20,-0x30(%ebp)
45a7a7:	74 6c                	je     0x45a815
45a7a9:	57                   	push   %edi
45a7aa:	ff 15 10 d6 48 00    	call   *0x48d610
45a7b0:	ff 35 e0 10 4c 00    	push   0x4c10e0
45a7b6:	8b d8                	mov    %eax,%ebx
45a7b8:	53                   	push   %ebx
45a7b9:	ff 15 04 d1 48 00    	call   *0x48d104
45a7bf:	8b 4d 08             	mov    0x8(%ebp),%ecx
45a7c2:	8b f8                	mov    %eax,%edi
45a7c4:	8b 49 04             	mov    0x4(%ecx),%ecx
45a7c7:	8b 71 04             	mov    0x4(%ecx),%esi
45a7ca:	8b ce                	mov    %esi,%ecx
45a7cc:	e8 9b eb fa ff       	call   0x40936c
45a7d1:	8b 56 08             	mov    0x8(%esi),%edx
45a7d4:	8d 45 cc             	lea    -0x34(%ebp),%eax
45a7d7:	8b 12                	mov    (%edx),%edx
45a7d9:	50                   	push   %eax
45a7da:	8b cb                	mov    %ebx,%ecx
45a7dc:	e8 a2 c8 fe ff       	call   0x447083
45a7e1:	59                   	pop    %ecx
45a7e2:	57                   	push   %edi
45a7e3:	53                   	push   %ebx
45a7e4:	ff 15 04 d1 48 00    	call   *0x48d104
45a7ea:	8b 75 f8             	mov    -0x8(%ebp),%esi
45a7ed:	53                   	push   %ebx
45a7ee:	56                   	push   %esi
45a7ef:	ff 15 0c d6 48 00    	call   *0x48d60c
45a7f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
45a7f8:	2b 45 d0             	sub    -0x30(%ebp),%eax
45a7fb:	6a 01                	push   $0x1
45a7fd:	ff 75 d0             	push   -0x30(%ebp)
45a800:	99                   	cltd
45a801:	ff 75 10             	push   0x10(%ebp)
45a804:	2b c2                	sub    %edx,%eax
45a806:	d1 f8                	sar    $1,%eax
45a808:	83 c0 0b             	add    $0xb,%eax
45a80b:	50                   	push   %eax
45a80c:	6a 0b                	push   $0xb
45a80e:	56                   	push   %esi
45a80f:	ff 15 e8 d6 48 00    	call   *0x48d6e8
45a815:	6a 04                	push   $0x4
45a817:	ff 35 dc 10 4c 00    	push   0x4c10dc
45a81d:	ff 15 04 d7 48 00    	call   *0x48d704
45a823:	5f                   	pop    %edi
45a824:	5e                   	pop    %esi
45a825:	33 c0                	xor    %eax,%eax
45a827:	5b                   	pop    %ebx
45a828:	c9                   	leave
45a829:	c2 0c 00             	ret    $0xc
45a82c:	55                   	push   %ebp
45a82d:	8b ec                	mov    %esp,%ebp
45a82f:	83 ec 10             	sub    $0x10,%esp
45a832:	53                   	push   %ebx
45a833:	56                   	push   %esi
45a834:	57                   	push   %edi
45a835:	8b 7d 08             	mov    0x8(%ebp),%edi
45a838:	6a 02                	push   $0x2
45a83a:	58                   	pop    %eax
45a83b:	66 89 07             	mov    %ax,(%edi)
45a83e:	8d 45 f0             	lea    -0x10(%ebp),%eax
45a841:	8b f1                	mov    %ecx,%esi
45a843:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45a846:	50                   	push   %eax
45a847:	e8 48 01 00 00       	call   0x45a994
45a84c:	ff 30                	push   (%eax)
45a84e:	ff 15 ec d7 48 00    	call   *0x48d7ec
45a854:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45a857:	8b d8                	mov    %eax,%ebx
45a859:	e8 d9 22 fb ff       	call   0x40cb37
45a85e:	83 fb ff             	cmp    $0xffffffff,%ebx
45a861:	75 17                	jne    0x45a87a
45a863:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45a866:	ba d8 3d 4b 00       	mov    $0x4b3dd8,%edx
45a86b:	e8 ae 1f fe ff       	call   0x43c81e
45a870:	84 c0                	test   %al,%al
45a872:	74 06                	je     0x45a87a
45a874:	6a 00                	push   $0x0
45a876:	6a 01                	push   $0x1
45a878:	eb 23                	jmp    0x45a89d
45a87a:	8b 4d 10             	mov    0x10(%ebp),%ecx
45a87d:	89 5f 04             	mov    %ebx,0x4(%edi)
45a880:	8d 41 ff             	lea    -0x1(%ecx),%eax
45a883:	3d fe ff 00 00       	cmp    $0xfffe,%eax
45a888:	77 0f                	ja     0x45a899
45a88a:	51                   	push   %ecx
45a88b:	ff 15 d0 d7 48 00    	call   *0x48d7d0
45a891:	66 89 47 02          	mov    %ax,0x2(%edi)
45a895:	b0 01                	mov    $0x1,%al
45a897:	eb 12                	jmp    0x45a8ab
45a899:	6a 00                	push   $0x0
45a89b:	6a 02                	push   $0x2
45a89d:	8b 06                	mov    (%esi),%eax
45a89f:	8b 48 04             	mov    0x4(%eax),%ecx
45a8a2:	03 ce                	add    %esi,%ecx
45a8a4:	e8 a3 26 ff ff       	call   0x44cf4c
45a8a9:	32 c0                	xor    %al,%al
45a8ab:	5f                   	pop    %edi
45a8ac:	5e                   	pop    %esi
45a8ad:	5b                   	pop    %ebx
45a8ae:	c9                   	leave
45a8af:	c2 0c 00             	ret    $0xc
45a8b2:	55                   	push   %ebp
45a8b3:	8b ec                	mov    %esp,%ebp
45a8b5:	53                   	push   %ebx
45a8b6:	8b 5d 08             	mov    0x8(%ebp),%ebx
45a8b9:	57                   	push   %edi
45a8ba:	8b 7b 04             	mov    0x4(%ebx),%edi
45a8bd:	33 c0                	xor    %eax,%eax
45a8bf:	50                   	push   %eax
45a8c0:	50                   	push   %eax
45a8c1:	47                   	inc    %edi
45a8c2:	57                   	push   %edi
45a8c3:	ff 33                	push   (%ebx)
45a8c5:	6a 01                	push   $0x1
45a8c7:	50                   	push   %eax
45a8c8:	ff 15 78 d1 48 00    	call   *0x48d178
45a8ce:	89 45 08             	mov    %eax,0x8(%ebp)
45a8d1:	85 c0                	test   %eax,%eax
45a8d3:	75 0a                	jne    0x45a8df
45a8d5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45a8d8:	e8 f1 13 fb ff       	call   0x40bcce
45a8dd:	eb 3e                	jmp    0x45a91d
45a8df:	56                   	push   %esi
45a8e0:	33 c9                	xor    %ecx,%ecx
45a8e2:	6a 02                	push   $0x2
45a8e4:	5a                   	pop    %edx
45a8e5:	f7 e2                	mul    %edx
45a8e7:	0f 90 c1             	seto   %cl
45a8ea:	f7 d9                	neg    %ecx
45a8ec:	0b c8                	or     %eax,%ecx
45a8ee:	51                   	push   %ecx
45a8ef:	e8 f6 4b fc ff       	call   0x41f4ea
45a8f4:	59                   	pop    %ecx
45a8f5:	ff 75 08             	push   0x8(%ebp)
45a8f8:	8b f0                	mov    %eax,%esi
45a8fa:	56                   	push   %esi
45a8fb:	57                   	push   %edi
45a8fc:	ff 33                	push   (%ebx)
45a8fe:	6a 01                	push   $0x1
45a900:	6a 00                	push   $0x0