45a36a:	8d 4d c0             	lea    -0x40(%ebp),%ecx
45a36d:	e8 84 51 ff ff       	call   0x44f4f6
45a372:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45a375:	5f                   	pop    %edi
45a376:	5e                   	pop    %esi
45a377:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45a37e:	c9                   	leave
45a37f:	c3                   	ret
45a380:	55                   	push   %ebp
45a381:	8b ec                	mov    %esp,%ebp
45a383:	56                   	push   %esi
45a384:	8b 75 0c             	mov    0xc(%ebp),%esi
45a387:	57                   	push   %edi
45a388:	8d 45 0c             	lea    0xc(%ebp),%eax
45a38b:	8b f9                	mov    %ecx,%edi
45a38d:	50                   	push   %eax
45a38e:	8b ce                	mov    %esi,%ecx
45a390:	e8 90 ae fe ff       	call   0x445225
45a395:	85 c0                	test   %eax,%eax
45a397:	74 05                	je     0x45a39e
45a399:	8b 45 0c             	mov    0xc(%ebp),%eax
45a39c:	eb 34                	jmp    0x45a3d2
45a39e:	85 f6                	test   %esi,%esi
45a3a0:	74 03                	je     0x45a3a5
45a3a2:	8b 76 1c             	mov    0x1c(%esi),%esi
45a3a5:	ff 35 0c c4 4a 00    	push   0x4ac40c
45a3ab:	8b 45 08             	mov    0x8(%ebp),%eax
45a3ae:	ff 35 fc c3 4a 00    	push   0x4ac3fc
45a3b4:	ff 75 10             	push   0x10(%ebp)
45a3b7:	56                   	push   %esi
45a3b8:	ff 70 04             	push   0x4(%eax)
45a3bb:	e8 f2 98 fe ff       	call   0x443cb2
45a3c0:	85 c0                	test   %eax,%eax
45a3c2:	75 09                	jne    0x45a3cd
45a3c4:	8b cf                	mov    %edi,%ecx
45a3c6:	e8 34 a8 fe ff       	call   0x444bff
45a3cb:	eb 05                	jmp    0x45a3d2
45a3cd:	a1 fc c3 4a 00       	mov    0x4ac3fc,%eax
45a3d2:	5f                   	pop    %edi
45a3d3:	5e                   	pop    %esi
45a3d4:	5d                   	pop    %ebp
45a3d5:	c2 0c 00             	ret    $0xc
45a3d8:	55                   	push   %ebp
45a3d9:	8b ec                	mov    %esp,%ebp
45a3db:	56                   	push   %esi
45a3dc:	8b f1                	mov    %ecx,%esi
45a3de:	83 be 88 00 00 00 00 	cmpl   $0x0,0x88(%esi)
45a3e5:	74 31                	je     0x45a418
45a3e7:	8b 06                	mov    (%esi),%eax
45a3e9:	6a 00                	push   $0x0
45a3eb:	ff 75 10             	push   0x10(%ebp)
45a3ee:	ff 75 0c             	push   0xc(%ebp)
45a3f1:	ff 50 6c             	call   *0x6c(%eax)
45a3f4:	83 f8 ff             	cmp    $0xffffffff,%eax
45a3f7:	75 1f                	jne    0x45a418
45a3f9:	8d 45 0c             	lea    0xc(%ebp),%eax
45a3fc:	50                   	push   %eax
45a3fd:	ff 76 1c             	push   0x1c(%esi)
45a400:	ff 15 64 06 4b 00    	call   *0x4b0664
45a406:	ff 75 10             	push   0x10(%ebp)
45a409:	8b 8e 8c 00 00 00    	mov    0x8c(%esi),%ecx
45a40f:	ff 75 0c             	push   0xc(%ebp)
45a412:	8b 01                	mov    (%ecx),%eax
45a414:	ff 10                	call   *(%eax)
45a416:	eb 07                	jmp    0x45a41f
45a418:	8b ce                	mov    %esi,%ecx
45a41a:	e8 e0 a7 fe ff       	call   0x444bff
45a41f:	5e                   	pop    %esi
45a420:	5d                   	pop    %ebp
45a421:	c2 0c 00             	ret    $0xc
45a424:	56                   	push   %esi
45a425:	8b f1                	mov    %ecx,%esi
45a427:	83 be 88 00 00 00 00 	cmpl   $0x0,0x88(%esi)
45a42e:	74 21                	je     0x45a451
45a430:	8b 06                	mov    (%esi),%eax
45a432:	6a 00                	push   $0x0
45a434:	ff 74 24 14          	push   0x14(%esp)
45a438:	ff 74 24 14          	push   0x14(%esp)
45a43c:	ff 50 6c             	call   *0x6c(%eax)
45a43f:	83 f8 ff             	cmp    $0xffffffff,%eax
45a442:	75 0d                	jne    0x45a451
45a444:	8b 8e 8c 00 00 00    	mov    0x8c(%esi),%ecx
45a44a:	8b 01                	mov    (%ecx),%eax
45a44c:	ff 50 08             	call   *0x8(%eax)
45a44f:	eb 07                	jmp    0x45a458
45a451:	8b ce                	mov    %esi,%ecx
45a453:	e8 a7 a7 fe ff       	call   0x444bff
45a458:	5e                   	pop    %esi
45a459:	c2 0c 00             	ret    $0xc
45a45c:	55                   	push   %ebp
45a45d:	8b ec                	mov    %esp,%ebp
45a45f:	83 ec 1c             	sub    $0x1c,%esp
45a462:	8b 01                	mov    (%ecx),%eax
45a464:	56                   	push   %esi
45a465:	8b 75 0c             	mov    0xc(%ebp),%esi
45a468:	56                   	push   %esi
45a469:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45a46c:	ff 90 54 01 00 00    	call   *0x154(%eax)
45a472:	a9 00 00 00 10       	test   $0x10000000,%eax
45a477:	89 45 0c             	mov    %eax,0xc(%ebp)
45a47a:	0f 84 0f 01 00 00    	je     0x45a58f
45a480:	f6 c4 f0             	test   $0xf0,%ah
45a483:	0f 84 06 01 00 00    	je     0x45a58f
45a489:	53                   	push   %ebx
45a48a:	57                   	push   %edi
45a48b:	8d 46 04             	lea    0x4(%esi),%eax
45a48e:	50                   	push   %eax
45a48f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45a492:	50                   	push   %eax
45a493:	ff 15 44 07 4b 00    	call   *0x4b0744
45a499:	8b 7d ec             	mov    -0x14(%ebp),%edi
45a49c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
45a49f:	2b 7d e4             	sub    -0x1c(%ebp),%edi
45a4a2:	2b 5d e8             	sub    -0x18(%ebp),%ebx
45a4a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45a4a8:	8b 41 7c             	mov    0x7c(%ecx),%eax
45a4ab:	33 d2                	xor    %edx,%edx
45a4ad:	39 56 1c             	cmp    %edx,0x1c(%esi)
45a4b0:	0f 95 c2             	setne  %dl
45a4b3:	a8 04                	test   $0x4,%al
45a4b5:	74 09                	je     0x45a4c0
45a4b7:	a8 01                	test   $0x1,%al
45a4b9:	74 05                	je     0x45a4c0
45a4bb:	83 ca 06             	or     $0x6,%edx
45a4be:	eb 0e                	jmp    0x45a4ce
45a4c0:	f6 45 0d a0          	testb  $0xa0,0xd(%ebp)
45a4c4:	74 05                	je     0x45a4cb
45a4c6:	83 ca 0a             	or     $0xa,%edx
45a4c9:	eb 03                	jmp    0x45a4ce
45a4cb:	83 ca 10             	or     $0x10,%edx
45a4ce:	8b 01                	mov    (%ecx),%eax
45a4d0:	52                   	push   %edx
45a4d1:	6a ff                	push   $0xffffffff
45a4d3:	8d 55 f4             	lea    -0xc(%ebp),%edx
45a4d6:	52                   	push   %edx
45a4d7:	ff 90 34 01 00 00    	call   *0x134(%eax)
45a4dd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45a4e0:	3b cf                	cmp    %edi,%ecx
45a4e2:	7c 05                	jl     0x45a4e9
45a4e4:	8b cf                	mov    %edi,%ecx
45a4e6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45a4e9:	8b 45 f8             	mov    -0x8(%ebp),%eax
45a4ec:	3b c3                	cmp    %ebx,%eax
45a4ee:	7c 05                	jl     0x45a4f5
45a4f0:	8b c3                	mov    %ebx,%eax
45a4f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
45a4f5:	8b 7d 0c             	mov    0xc(%ebp),%edi
45a4f8:	f7 c7 00 a0 00 00    	test   $0xa000,%edi
45a4fe:	74 31                	je     0x45a531
45a500:	8b 56 14             	mov    0x14(%esi),%edx
45a503:	01 46 18             	add    %eax,0x18(%esi)
45a506:	3b d1                	cmp    %ecx,%edx
45a508:	7f 02                	jg     0x45a50c
45a50a:	8b d1                	mov    %ecx,%edx
45a50c:	f7 c7 00 20 00 00    	test   $0x2000,%edi
45a512:	89 56 14             	mov    %edx,0x14(%esi)
45a515:	74 05                	je     0x45a51c
45a517:	01 46 08             	add    %eax,0x8(%esi)
45a51a:	eb 4c                	jmp    0x45a568
45a51c:	f7 c7 00 80 00 00    	test   $0x8000,%edi
45a522:	74 44                	je     0x45a568
45a524:	8b 55 f0             	mov    -0x10(%ebp),%edx
45a527:	2b d0                	sub    %eax,%edx
45a529:	29 46 10             	sub    %eax,0x10(%esi)
45a52c:	89 55 e8             	mov    %edx,-0x18(%ebp)
45a52f:	eb 37                	jmp    0x45a568
45a531:	f7 c7 00 50 00 00    	test   $0x5000,%edi
45a537:	74 2f                	je     0x45a568
45a539:	8b 56 18             	mov    0x18(%esi),%edx
45a53c:	01 4e 14             	add    %ecx,0x14(%esi)
45a53f:	3b d0                	cmp    %eax,%edx
45a541:	7f 02                	jg     0x45a545
45a543:	8b d0                	mov    %eax,%edx
45a545:	f7 c7 00 10 00 00    	test   $0x1000,%edi
45a54b:	89 56 18             	mov    %edx,0x18(%esi)
45a54e:	74 05                	je     0x45a555
45a550:	01 4e 04             	add    %ecx,0x4(%esi)
45a553:	eb 13                	jmp    0x45a568
45a555:	f7 c7 00 40 00 00    	test   $0x4000,%edi
45a55b:	74 0b                	je     0x45a568
45a55d:	8b 55 ec             	mov    -0x14(%ebp),%edx
45a560:	2b d1                	sub    %ecx,%edx
45a562:	29 4e 0c             	sub    %ecx,0xc(%esi)
45a565:	89 55 e4             	mov    %edx,-0x1c(%ebp)
45a568:	8b 55 e4             	mov    -0x1c(%ebp),%edx
45a56b:	03 ca                	add    %edx,%ecx
45a56d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
45a570:	8b 4d e8             	mov    -0x18(%ebp),%ecx
45a573:	03 c8                	add    %eax,%ecx
45a575:	83 3e 00             	cmpl   $0x0,(%esi)
45a578:	5f                   	pop    %edi
45a579:	89 4d f0             	mov    %ecx,-0x10(%ebp)
45a57c:	5b                   	pop    %ebx
45a57d:	74 10                	je     0x45a58f
45a57f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45a582:	50                   	push   %eax
45a583:	8b 45 fc             	mov    -0x4(%ebp),%eax
45a586:	ff 70 1c             	push   0x1c(%eax)
45a589:	56                   	push   %esi
45a58a:	e8 d1 8f fe ff       	call   0x443560
45a58f:	33 c0                	xor    %eax,%eax
45a591:	5e                   	pop    %esi
45a592:	c9                   	leave
45a593:	c2 08 00             	ret    $0x8
45a596:	55                   	push   %ebp
45a597:	8b ec                	mov    %esp,%ebp
45a599:	83 ec 10             	sub    $0x10,%esp
45a59c:	56                   	push   %esi
45a59d:	8d 45 f0             	lea    -0x10(%ebp),%eax
45a5a0:	8b f1                	mov    %ecx,%esi
45a5a2:	50                   	push   %eax
45a5a3:	ff 76 1c             	push   0x1c(%esi)
45a5a6:	ff 15 8c 08 4b 00    	call   *0x4b088c
45a5ac:	8b 06                	mov    (%esi),%eax
45a5ae:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45a5b1:	51                   	push   %ecx
45a5b2:	ff 75 08             	push   0x8(%ebp)
45a5b5:	8b ce                	mov    %esi,%ecx
45a5b7:	ff 90 44 01 00 00    	call   *0x144(%eax)
45a5bd:	8b 06                	mov    (%esi),%eax
45a5bf:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45a5c2:	51                   	push   %ecx
45a5c3:	ff 75 08             	push   0x8(%ebp)
45a5c6:	8b ce                	mov    %esi,%ecx
45a5c8:	ff 90 48 01 00 00    	call   *0x148(%eax)
45a5ce:	5e                   	pop    %esi
45a5cf:	c9                   	leave
45a5d0:	c2 04 00             	ret    $0x4
45a5d3:	55                   	push   %ebp
45a5d4:	8b ec                	mov    %esp,%ebp
45a5d6:	83 ec 3c             	sub    $0x3c,%esp
45a5d9:	8b 51 7c             	mov    0x7c(%ecx),%edx
45a5dc:	f6 c6 0f             	test   $0xf,%dh
45a5df:	89 55 f4             	mov    %edx,-0xc(%ebp)
45a5e2:	0f 84 b9 01 00 00    	je     0x45a7a1
45a5e8:	53                   	push   %ebx
45a5e9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45a5ec:	56                   	push   %esi
45a5ed:	57                   	push   %edi
45a5ee:	8b f3                	mov    %ebx,%esi
45a5f0:	8d 7d d4             	lea    -0x2c(%ebp),%edi
45a5f3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5f4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5f7:	8b f3                	mov    %ebx,%esi
45a5f9:	8d 7d e4             	lea    -0x1c(%ebp),%edi
45a5fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a5ff:	89 55 f8             	mov    %edx,-0x8(%ebp)
45a602:	81 65 f8 80 00 00 00 	andl   $0x80,-0x8(%ebp)
45a609:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a60a:	8b 3d 04 c4 4a 00    	mov    0x4ac404,%edi
45a610:	74 06                	je     0x45a618
45a612:	ff 4d dc             	decl   -0x24(%ebp)
45a615:	ff 4d e0             	decl   -0x20(%ebp)
45a618:	a1 ec c3 4a 00       	mov    0x4ac3ec,%eax
45a61d:	89 55 fc             	mov    %edx,-0x4(%ebp)
45a620:	81 65 fc 00 02 00 00 	andl   $0x200,-0x4(%ebp)
45a627:	74 03                	je     0x45a62c
45a629:	01 45 e8             	add    %eax,-0x18(%ebp)
45a62c:	89 55 0c             	mov    %edx,0xc(%ebp)
45a62f:	81 65 0c 00 08 00 00 	andl   $0x800,0xc(%ebp)
45a636:	74 03                	je     0x45a63b
45a638:	29 45 f0             	sub    %eax,-0x10(%ebp)
45a63b:	68 a4 e9 48 00       	push   $0x48e9a4
45a640:	e8 b9 63 fe ff       	call   0x4409fe
45a645:	85 c0                	test   %eax,%eax
45a647:	8b 75 08             	mov    0x8(%ebp),%esi
45a64a:	74 31                	je     0x45a67d
45a64c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
45a650:	74 2b                	je     0x45a67d
45a652:	8b 43 08             	mov    0x8(%ebx),%eax
45a655:	ff 76 08             	push   0x8(%esi)
45a658:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
45a65c:	89 45 cc             	mov    %eax,-0x34(%ebp)
45a65f:	8b 43 04             	mov    0x4(%ebx),%eax
45a662:	89 45 c8             	mov    %eax,-0x38(%ebp)
45a665:	8b 43 0c             	mov    0xc(%ebx),%eax
45a668:	89 45 d0             	mov    %eax,-0x30(%ebp)
45a66b:	ff 15 60 ff 4a 00    	call   *0x4aff60
45a671:	50                   	push   %eax
45a672:	8d 45 c4             	lea    -0x3c(%ebp),%eax
45a675:	50                   	push   %eax
45a676:	8b ce                	mov    %esi,%ecx
45a678:	e8 81 56 00 00       	call   0x45fcfe
45a67d:	8b 45 f4             	mov    -0xc(%ebp),%eax
45a680:	25 00 01 00 00       	and    $0x100,%eax
45a685:	89 45 08             	mov    %eax,0x8(%ebp)
45a688:	74 16                	je     0x45a6a0
45a68a:	8b 45 f0             	mov    -0x10(%ebp),%eax
45a68d:	2b 45 e8             	sub    -0x18(%ebp),%eax
45a690:	57                   	push   %edi
45a691:	50                   	push   %eax
45a692:	6a 01                	push   $0x1
45a694:	ff 75 e8             	push   -0x18(%ebp)
45a697:	8b ce                	mov    %esi,%ecx
45a699:	6a 00                	push   $0x0
45a69b:	e8 12 5b 00 00       	call   0x4601b2
45a6a0:	33 c0                	xor    %eax,%eax
45a6a2:	39 45 fc             	cmp    %eax,-0x4(%ebp)
45a6a5:	74 0f                	je     0x45a6b6
45a6a7:	57                   	push   %edi
45a6a8:	6a 01                	push   $0x1
45a6aa:	ff 73 08             	push   0x8(%ebx)
45a6ad:	8b ce                	mov    %esi,%ecx
45a6af:	50                   	push   %eax
45a6b0:	50                   	push   %eax
45a6b1:	e8 fc 5a 00 00       	call   0x4601b2
45a6b6:	8b 45 f4             	mov    -0xc(%ebp),%eax
45a6b9:	25 00 04 00 00       	and    $0x400,%eax
45a6be:	89 45 f4             	mov    %eax,-0xc(%ebp)
45a6c1:	74 17                	je     0x45a6da
45a6c3:	8b 45 f0             	mov    -0x10(%ebp),%eax
45a6c6:	2b 45 e8             	sub    -0x18(%ebp),%eax
45a6c9:	57                   	push   %edi
45a6ca:	50                   	push   %eax
45a6cb:	6a ff                	push   $0xffffffff
45a6cd:	ff 75 e8             	push   -0x18(%ebp)
45a6d0:	8b ce                	mov    %esi,%ecx
45a6d2:	ff 75 dc             	push   -0x24(%ebp)
45a6d5:	e8 d8 5a 00 00       	call   0x4601b2
45a6da:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
45a6de:	74 12                	je     0x45a6f2
45a6e0:	57                   	push   %edi
45a6e1:	6a ff                	push   $0xffffffff
45a6e3:	ff 73 08             	push   0x8(%ebx)
45a6e6:	8b ce                	mov    %esi,%ecx
45a6e8:	ff 75 e0             	push   -0x20(%ebp)
45a6eb:	6a 00                	push   $0x0
45a6ed:	e8 c0 5a 00 00       	call   0x4601b2
45a6f2:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
45a6f6:	74 6e                	je     0x45a766
45a6f8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
45a6fc:	8b 3d 08 c4 4a 00    	mov    0x4ac408,%edi
45a702:	74 16                	je     0x45a71a
45a704:	8b 45 f0             	mov    -0x10(%ebp),%eax
45a707:	2b 45 e8             	sub    -0x18(%ebp),%eax
45a70a:	57                   	push   %edi
45a70b:	50                   	push   %eax
45a70c:	6a 01                	push   $0x1
45a70e:	ff 75 e8             	push   -0x18(%ebp)
45a711:	8b ce                	mov    %esi,%ecx
45a713:	6a 01                	push   $0x1
45a715:	e8 98 5a 00 00       	call   0x4601b2
45a71a:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
45a71e:	74 11                	je     0x45a731
45a720:	57                   	push   %edi
45a721:	6a 01                	push   $0x1