45a2e2:	e8 14 9b fd ff       	call   0x433dfb
45a2e7:	39 3d 60 58 4a 00    	cmp    %edi,0x4a5860
45a2ed:	74 0f                	je     0x45a2fe
45a2ef:	b9 b4 48 4a 00       	mov    $0x4a48b4,%ecx
45a2f4:	e8 e3 91 fd ff       	call   0x4334dc
45a2f9:	89 45 90             	mov    %eax,-0x70(%ebp)
45a2fc:	eb 03                	jmp    0x45a301
45a2fe:	89 7d 90             	mov    %edi,-0x70(%ebp)
45a301:	a1 b8 48 4a 00       	mov    0x4a48b8,%eax
45a306:	8d 7d c4             	lea    -0x3c(%ebp),%edi
45a309:	be a8 4b 4a 00       	mov    $0x4a4ba8,%esi
45a30e:	89 45 a4             	mov    %eax,-0x5c(%ebp)
45a311:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a312:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a313:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a314:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45a315:	ff 4d cc             	decl   -0x34(%ebp)
45a318:	8b f0                	mov    %eax,%esi
45a31a:	ff 4d d0             	decl   -0x30(%ebp)
45a31d:	33 ff                	xor    %edi,%edi
45a31f:	8d 45 c4             	lea    -0x3c(%ebp),%eax
45a322:	50                   	push   %eax
45a323:	ff 15 0c 7d 4a 00    	call   *0x4a7d0c
45a329:	85 c0                	test   %eax,%eax
45a32b:	0f 85 a9 09 00 00    	jne    0x45acda
45a331:	85 f6                	test   %esi,%esi
45a333:	0f 84 a1 09 00 00    	je     0x45acda
45a339:	8b 45 d0             	mov    -0x30(%ebp),%eax
45a33c:	2b 45 c8             	sub    -0x38(%ebp),%eax
45a33f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
45a342:	2b 4d c4             	sub    -0x3c(%ebp),%ecx
45a345:	89 45 a0             	mov    %eax,-0x60(%ebp)
45a348:	89 45 bc             	mov    %eax,-0x44(%ebp)
45a34b:	99                   	cltd
45a34c:	2b c2                	sub    %edx,%eax
45a34e:	89 4d ac             	mov    %ecx,-0x54(%ebp)
45a351:	8b f0                	mov    %eax,%esi
45a353:	89 4d c0             	mov    %ecx,-0x40(%ebp)
45a356:	8b c1                	mov    %ecx,%eax
45a358:	d1 fe                	sar    $1,%esi
45a35a:	99                   	cltd
45a35b:	8b ce                	mov    %esi,%ecx
45a35d:	2b c2                	sub    %edx,%eax
45a35f:	89 7d b4             	mov    %edi,-0x4c(%ebp)
45a362:	d1 f8                	sar    $1,%eax
45a364:	2b c8                	sub    %eax,%ecx
45a366:	89 7d b8             	mov    %edi,-0x48(%ebp)
45a369:	03 4d c8             	add    -0x38(%ebp),%ecx
45a36c:	2b c6                	sub    %esi,%eax
45a36e:	03 45 c4             	add    -0x3c(%ebp),%eax
45a371:	51                   	push   %ecx
45a372:	50                   	push   %eax
45a373:	8d 45 b4             	lea    -0x4c(%ebp),%eax
45a376:	50                   	push   %eax
45a377:	ff 15 e0 7c 4a 00    	call   *0x4a7ce0
45a37d:	89 bd 64 ff ff ff    	mov    %edi,-0x9c(%ebp)
45a383:	c7 85 60 ff ff ff 1c 	movl   $0x40141c,-0xa0(%ebp)
45a38a:	14 40 00
45a38d:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
45a393:	89 7d fc             	mov    %edi,-0x4(%ebp)
45a396:	ff 15 80 75 4a 00    	call   *0x4a7580
45a39c:	8b 75 9c             	mov    -0x64(%ebp),%esi
45a39f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
45a3a3:	8b 46 48             	mov    0x48(%esi),%eax
45a3a6:	ff 70 0c             	push   0xc(%eax)
45a3a9:	ff 15 b0 76 4a 00    	call   *0x4a76b0
45a3af:	89 45 80             	mov    %eax,-0x80(%ebp)
45a3b2:	85 c0                	test   %eax,%eax
45a3b4:	0f 84 fd 08 00 00    	je     0x45acb7
45a3ba:	ff 75 ac             	push   -0x54(%ebp)
45a3bd:	8b 4d a0             	mov    -0x60(%ebp),%ecx
45a3c0:	51                   	push   %ecx
45a3c1:	ff 70 04             	push   0x4(%eax)
45a3c4:	ff 15 78 71 4a 00    	call   *0x4a7178
45a3ca:	50                   	push   %eax
45a3cb:	8d 8d 60 ff ff ff    	lea    -0xa0(%ebp),%ecx
45a3d1:	ff 15 8c 75 4a 00    	call   *0x4a758c
45a3d7:	85 c0                	test   %eax,%eax
45a3d9:	0f 84 b8 08 00 00    	je     0x45ac97
45a3df:	ff 75 80             	push   -0x80(%ebp)
45a3e2:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
45a3e8:	e8 6b 58 fc ff       	call   0x41fc58
45a3ed:	85 c0                	test   %eax,%eax
45a3ef:	0f 84 a2 08 00 00    	je     0x45ac97
45a3f5:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
45a3fb:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
45a401:	ff 15 90 75 4a 00    	call   *0x4a7590
45a407:	83 3d 60 58 4a 00 00 	cmpl   $0x0,0x4a5860
45a40e:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
45a414:	74 10                	je     0x45a426
45a416:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
45a41c:	e8 bb 90 fd ff       	call   0x4334dc
45a421:	89 45 b0             	mov    %eax,-0x50(%ebp)
45a424:	eb 03                	jmp    0x45a429
45a426:	89 7d b0             	mov    %edi,-0x50(%ebp)
45a429:	8b ce                	mov    %esi,%ecx
45a42b:	ff 15 a0 75 4a 00    	call   *0x4a75a0
45a431:	ff 75 a4             	push   -0x5c(%ebp)
45a434:	89 7d 84             	mov    %edi,-0x7c(%ebp)
45a437:	ff 15 74 71 4a 00    	call   *0x4a7174
45a43d:	ff 75 a4             	push   -0x5c(%ebp)
45a440:	89 45 a8             	mov    %eax,-0x58(%ebp)
45a443:	ff 15 74 71 4a 00    	call   *0x4a7174
45a449:	6a 01                	push   $0x1
45a44b:	ff 75 ac             	push   -0x54(%ebp)
45a44e:	89 45 98             	mov    %eax,-0x68(%ebp)
45a451:	ff 75 a4             	push   -0x5c(%ebp)
45a454:	ff 15 78 71 4a 00    	call   *0x4a7178
45a45a:	ff 75 ac             	push   -0x54(%ebp)
45a45d:	89 45 94             	mov    %eax,-0x6c(%ebp)
45a460:	6a 01                	push   $0x1
45a462:	ff 75 a4             	push   -0x5c(%ebp)
45a465:	ff 15 78 71 4a 00    	call   *0x4a7178
45a46b:	83 7d a8 00          	cmpl   $0x0,-0x58(%ebp)
45a46f:	8b c8                	mov    %eax,%ecx
45a471:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
45a477:	0f 84 65 03 00 00    	je     0x45a7e2
45a47d:	8b 45 98             	mov    -0x68(%ebp),%eax
45a480:	85 c0                	test   %eax,%eax
45a482:	0f 84 5a 03 00 00    	je     0x45a7e2
45a488:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
45a48c:	0f 84 50 03 00 00    	je     0x45a7e2
45a492:	85 c9                	test   %ecx,%ecx
45a494:	0f 84 48 03 00 00    	je     0x45a7e2
45a49a:	51                   	push   %ecx
45a49b:	50                   	push   %eax
45a49c:	ff 15 68 71 4a 00    	call   *0x4a7168
45a4a2:	ff 75 94             	push   -0x6c(%ebp)
45a4a5:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
45a4ab:	ff 75 a8             	push   -0x58(%ebp)
45a4ae:	ff 15 68 71 4a 00    	call   *0x4a7168
45a4b4:	6a 42                	push   $0x42
45a4b6:	6a 01                	push   $0x1
45a4b8:	ff 75 ac             	push   -0x54(%ebp)
45a4bb:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
45a4c1:	57                   	push   %edi
45a4c2:	57                   	push   %edi
45a4c3:	ff 75 a8             	push   -0x58(%ebp)
45a4c6:	ff 15 3c 71 4a 00    	call   *0x4a713c
45a4cc:	6a 42                	push   $0x42
45a4ce:	ff 75 ac             	push   -0x54(%ebp)
45a4d1:	6a 01                	push   $0x1
45a4d3:	57                   	push   %edi
45a4d4:	57                   	push   %edi
45a4d5:	ff 75 98             	push   -0x68(%ebp)
45a4d8:	ff 15 3c 71 4a 00    	call   *0x4a713c
45a4de:	a1 60 58 4a 00       	mov    0x4a5860,%eax
45a4e3:	85 c0                	test   %eax,%eax
45a4e5:	74 15                	je     0x45a4fc
45a4e7:	8b 4d a8             	mov    -0x58(%ebp),%ecx
45a4ea:	e8 15 90 fd ff       	call   0x433504
45a4ef:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
45a4f5:	a1 60 58 4a 00       	mov    0x4a5860,%eax
45a4fa:	eb 06                	jmp    0x45a502
45a4fc:	89 bd 30 ff ff ff    	mov    %edi,-0xd0(%ebp)
45a502:	85 c0                	test   %eax,%eax
45a504:	74 10                	je     0x45a516
45a506:	8b 4d 98             	mov    -0x68(%ebp),%ecx
45a509:	e8 f6 8f fd ff       	call   0x433504
45a50e:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
45a514:	eb 06                	jmp    0x45a51c
45a516:	89 bd 2c ff ff ff    	mov    %edi,-0xd4(%ebp)
45a51c:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
45a522:	ff 75 98             	push   -0x68(%ebp)
45a525:	ff 15 68 71 4a 00    	call   *0x4a7168
45a52b:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
45a531:	ff 75 a8             	push   -0x58(%ebp)
45a534:	ff 15 68 71 4a 00    	call   *0x4a7168
45a53a:	8b 46 48             	mov    0x48(%esi),%eax
45a53d:	33 d2                	xor    %edx,%edx
45a53f:	ff 70 40             	push   0x40(%eax)
45a542:	ff 70 3c             	push   0x3c(%eax)
45a545:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
45a54b:	50                   	push   %eax
45a54c:	51                   	push   %ecx
45a54d:	ff 35 60 58 4a 00    	push   0x4a5860
45a553:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
45a556:	6a 18                	push   $0x18
45a558:	e8 22 31 fd ff       	call   0x42d67f
45a55d:	8b 4e 48             	mov    0x48(%esi),%ecx
45a560:	33 d2                	xor    %edx,%edx
45a562:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
45a568:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
45a56e:	ff 71 40             	push   0x40(%ecx)
45a571:	ff 71 3c             	push   0x3c(%ecx)
45a574:	50                   	push   %eax
45a575:	51                   	push   %ecx
45a576:	ff 35 60 58 4a 00    	push   0x4a5860
45a57c:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
45a582:	6a 18                	push   $0x18
45a584:	e8 f6 30 fd ff       	call   0x42d67f
45a589:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%ebp)
45a590:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
45a596:	0f 84 ec 01 00 00    	je     0x45a788
45a59c:	85 c0                	test   %eax,%eax
45a59e:	0f 84 e4 01 00 00    	je     0x45a788
45a5a4:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
45a5aa:	8b ce                	mov    %esi,%ecx
45a5ac:	e8 c1 33 fd ff       	call   0x42d972
45a5b1:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
45a5b7:	0f b7 c0             	movzwl %ax,%eax
45a5ba:	03 06                	add    (%esi),%eax
45a5bc:	03 c6                	add    %esi,%eax
45a5be:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
45a5c4:	e8 a9 33 fd ff       	call   0x42d972
45a5c9:	0f b7 c8             	movzwl %ax,%ecx
45a5cc:	be 0e 01 00 00       	mov    $0x10e,%esi
45a5d1:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
45a5d7:	8b 55 ac             	mov    -0x54(%ebp),%edx
45a5da:	89 7d 88             	mov    %edi,-0x78(%ebp)
45a5dd:	03 08                	add    (%eax),%ecx
45a5df:	03 c8                	add    %eax,%ecx
45a5e1:	33 c0                	xor    %eax,%eax
45a5e3:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
45a5e9:	8b 4b 08             	mov    0x8(%ebx),%ecx
45a5ec:	3b ce                	cmp    %esi,%ecx
45a5ee:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
45a5f1:	0f 94 c0             	sete   %al
45a5f4:	4a                   	dec    %edx
45a5f5:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
45a5fb:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
45a602:	89 45 84             	mov    %eax,-0x7c(%ebp)
45a605:	8b c1                	mov    %ecx,%eax
45a607:	8b 4d a0             	mov    -0x60(%ebp),%ecx
45a60a:	2b c6                	sub    %esi,%eax
45a60c:	8b 75 8c             	mov    -0x74(%ebp),%esi
45a60f:	f7 d8                	neg    %eax
45a611:	1b c0                	sbb    %eax,%eax
45a613:	81 ee 0e 01 00 00    	sub    $0x10e,%esi
45a619:	23 c2                	and    %edx,%eax
45a61b:	f7 de                	neg    %esi
45a61d:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
45a623:	8b d7                	mov    %edi,%edx
45a625:	1b f6                	sbb    %esi,%esi
45a627:	8d 41 ff             	lea    -0x1(%ecx),%eax
45a62a:	23 f0                	and    %eax,%esi
45a62c:	89 75 8c             	mov    %esi,-0x74(%ebp)
45a62f:	8b 75 9c             	mov    -0x64(%ebp),%esi
45a632:	85 c9                	test   %ecx,%ecx
45a634:	0f 8e 34 01 00 00    	jle    0x45a76e
45a63a:	8b 75 ac             	mov    -0x54(%ebp),%esi
45a63d:	ff 75 94             	push   -0x6c(%ebp)
45a640:	ff 75 a8             	push   -0x58(%ebp)
45a643:	ff 15 68 71 4a 00    	call   *0x4a7168
45a649:	68 20 00 cc 00       	push   $0xcc0020
45a64e:	ff 75 88             	push   -0x78(%ebp)
45a651:	57                   	push   %edi
45a652:	ff 75 a4             	push   -0x5c(%ebp)
45a655:	6a 01                	push   $0x1
45a657:	56                   	push   %esi
45a658:	57                   	push   %edi
45a659:	57                   	push   %edi
45a65a:	ff 75 a8             	push   -0x58(%ebp)
45a65d:	ff 15 7c 71 4a 00    	call   *0x4a717c
45a663:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
45a669:	ff 75 a8             	push   -0x58(%ebp)
45a66c:	ff 15 68 71 4a 00    	call   *0x4a7168
45a672:	57                   	push   %edi
45a673:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
45a679:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
45a67f:	6a 01                	push   $0x1
45a681:	57                   	push   %edi
45a682:	ff 75 94             	push   -0x6c(%ebp)
45a685:	ff 75 a4             	push   -0x5c(%ebp)
45a688:	ff 15 e8 70 4a 00    	call   *0x4a70e8
45a68e:	85 c0                	test   %eax,%eax
45a690:	0f 84 cf 00 00 00    	je     0x45a765
45a696:	8b 95 28 ff ff ff    	mov    -0xd8(%ebp),%edx
45a69c:	33 c0                	xor    %eax,%eax
45a69e:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
45a6a4:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
45a6aa:	85 d2                	test   %edx,%edx
45a6ac:	78 40                	js     0x45a6ee
45a6ae:	8b 7d 84             	mov    -0x7c(%ebp),%edi
45a6b1:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
45a6b7:	3b 95 7c ff ff ff    	cmp    -0x84(%ebp),%edx
45a6bd:	7f 2a                	jg     0x45a6e9
45a6bf:	8a 01                	mov    (%ecx),%al
45a6c1:	88 85 74 ff ff ff    	mov    %al,-0x8c(%ebp)
45a6c7:	8a 41 01             	mov    0x1(%ecx),%al
45a6ca:	88 85 75 ff ff ff    	mov    %al,-0x8b(%ebp)
45a6d0:	8a 41 02             	mov    0x2(%ecx),%al
45a6d3:	83 c1 03             	add    $0x3,%ecx
45a6d6:	88 85 76 ff ff ff    	mov    %al,-0x8a(%ebp)
45a6dc:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
45a6e2:	89 04 96             	mov    %eax,(%esi,%edx,4)
45a6e5:	03 d7                	add    %edi,%edx
45a6e7:	79 ce                	jns    0x45a6b7
45a6e9:	8b 75 ac             	mov    -0x54(%ebp),%esi
45a6ec:	33 c0                	xor    %eax,%eax
45a6ee:	8b bd 54 ff ff ff    	mov    -0xac(%ebp),%edi
45a6f4:	50                   	push   %eax
45a6f5:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
45a6fb:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
45a701:	56                   	push   %esi
45a702:	50                   	push   %eax
45a703:	57                   	push   %edi
45a704:	ff 75 a4             	push   -0x5c(%ebp)
45a707:	ff 15 58 71 4a 00    	call   *0x4a7158
45a70d:	85 c0                	test   %eax,%eax
45a70f:	74 52                	je     0x45a763
45a711:	57                   	push   %edi
45a712:	8b 7d 98             	mov    -0x68(%ebp),%edi
45a715:	57                   	push   %edi
45a716:	ff 15 68 71 4a 00    	call   *0x4a7168
45a71c:	68 20 00 cc 00       	push   $0xcc0020
45a721:	33 c0                	xor    %eax,%eax
45a723:	50                   	push   %eax
45a724:	50                   	push   %eax
45a725:	57                   	push   %edi
45a726:	56                   	push   %esi
45a727:	6a 01                	push   $0x1
45a729:	50                   	push   %eax
45a72a:	ff 75 8c             	push   -0x74(%ebp)
45a72d:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
45a733:	ff 15 7c 71 4a 00    	call   *0x4a717c
45a739:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
45a73f:	57                   	push   %edi
45a740:	ff 15 68 71 4a 00    	call   *0x4a7168
45a746:	8b 55 88             	mov    -0x78(%ebp),%edx
45a749:	8b 45 84             	mov    -0x7c(%ebp),%eax
45a74c:	42                   	inc    %edx
45a74d:	01 45 8c             	add    %eax,-0x74(%ebp)
45a750:	8b 4d a0             	mov    -0x60(%ebp),%ecx
45a753:	89 55 88             	mov    %edx,-0x78(%ebp)
45a756:	6a 00                	push   $0x0
45a758:	5f                   	pop    %edi
45a759:	3b d1                	cmp    %ecx,%edx
45a75b:	0f 8c dc fe ff ff    	jl     0x45a63d
45a761:	eb 08                	jmp    0x45a76b
45a763:	33 ff                	xor    %edi,%edi
45a765:	8b 55 88             	mov    -0x78(%ebp),%edx
45a768:	8b 4d a0             	mov    -0x60(%ebp),%ecx
45a76b:	8b 75 9c             	mov    -0x64(%ebp),%esi
45a76e:	33 c0                	xor    %eax,%eax
45a770:	3b d1                	cmp    %ecx,%edx
45a772:	0f 94 c0             	sete   %al
45a775:	89 45 84             	mov    %eax,-0x7c(%ebp)
45a778:	74 1a                	je     0x45a794
45a77a:	6a 01                	push   $0x1
45a77c:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
45a781:	e8 21 35 ff ff       	call   0x44dca7
45a786:	eb 0c                	jmp    0x45a794
45a788:	6a 01                	push   $0x1
45a78a:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
45a78f:	e8 e5 34 ff ff       	call   0x44dc79
45a794:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
45a79a:	85 c0                	test   %eax,%eax
45a79c:	74 07                	je     0x45a7a5
45a79e:	50                   	push   %eax