456217:	c4 0e                	les    (%esi),%ecx
456461:	00 00                	add    %al,(%eax)
456463:	95                   	xchg   %eax,%ebp
456464:	a0 f3 ff ff 52       	mov    0x52fffff3,%al
456469:	6a 01                	push   $0x1
45646b:	33 ff                	xor    %edi,%edi
45646d:	57                   	push   %edi
45646e:	50                   	push   %eax
45646f:	56                   	push   %esi
456470:	e8 5c 59 00 00       	call   0x45bdd1
456475:	83 c4 1c             	add    $0x1c,%esp
456478:	85 c0                	test   %eax,%eax
45647a:	75 49                	jne    0x4564c5
45647c:	eb 03                	jmp    0x456481
45647e:	8d 49 00             	lea    0x0(%ecx),%ecx
456481:	53                   	push   %ebx
456482:	8d 8d a0 f3 ff ff    	lea    -0xc60(%ebp),%ecx
456488:	51                   	push   %ecx
456489:	56                   	push   %esi
45648a:	e8 82 fc ff ff       	call   0x456111
45648f:	8d 95 a0 f3 ff ff    	lea    -0xc60(%ebp),%edx
456495:	68 00 04 00 00       	push   $0x400
45649a:	52                   	push   %edx
45649b:	47                   	inc    %edi
45649c:	e8 c0 72 00 00       	call   0x45d761
4564a1:	8b 55 f0             	mov    -0x10(%ebp),%edx
4564a4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4564a7:	50                   	push   %eax
4564a8:	68 00 04 00 00       	push   $0x400
4564ad:	00 00                	add    %al,(%eax)
4564af:	8b ff                	mov    %edi,%edi
4564b1:	8b 85 ac f7 ff ff    	mov    -0x854(%ebp),%eax
4564b7:	8b 55 e0             	mov    -0x20(%ebp),%edx
4564ba:	83 c0 02             	add    $0x2,%eax
4564bd:	50                   	push   %eax
4564be:	8d 8d b0 f7 ff ff    	lea    -0x850(%ebp),%ecx
4564c4:	51                   	push   %ecx
4564c5:	52                   	push   %edx
4564c6:	e8 f6 72 00 00       	call   0x45d7c1
4564cb:	68 19 02 02 00       	push   $0x20219
4564d0:	57                   	push   %edi
4564d1:	8d 45 f0             	lea    -0x10(%ebp),%eax
4564d4:	50                   	push   %eax
4564d5:	56                   	push   %esi
4564d6:	e8 96 96 ff ff       	call   0x44fb71
4564db:	83 c4 1c             	add    $0x1c,%esp
4564de:	85 c0                	test   %eax,%eax
4564e0:	0f 84 bf 00 00 00    	je     0x4565a5
4564e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4564e9:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4564ec:	51                   	push   %ecx
4564ed:	68 00 04 00 00       	push   $0x400
4564f2:	8d 00                	lea    (%eax),%eax
4564f4:	57                   	push   %edi
4564f5:	e8 47 76 00 00       	call   0x45db41
4564fa:	b9 5c 00 00 00       	mov    $0x5c,%ecx
4564ff:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
456503:	33 d2                	xor    %edx,%edx
456505:	8d 44 47 02          	lea    0x2(%edi,%eax,2),%eax
456509:	66 89 10             	mov    %dx,(%eax)
45650c:	89 45 e0             	mov    %eax,-0x20(%ebp)
45650f:	8d 45 fc             	lea    -0x4(%ebp),%eax
456512:	50                   	push   %eax
456513:	68 00 04 00 00       	push   $0x400
456518:	8d 8d a0 f7 ff ff    	lea    -0x860(%ebp),%ecx
45651e:	51                   	push   %ecx
45651f:	52                   	push   %edx
456520:	52                   	push   %edx
456521:	8b 55 f4             	mov    -0xc(%ebp),%edx
456524:	52                   	push   %edx
456525:	56                   	push   %esi
456526:	e8 86 59 00 00       	call   0x45beb1
45652b:	83 c4 38             	add    $0x38,%esp
45652e:	85 c0                	test   %eax,%eax
456530:	0f 85 3e 01 00 00    	jne    0x456674
456536:	eb 09                	jmp    0x456541
456538:	8d a4 24 83 c4 1c 85 	lea    -0x7ae33b7d(%esp),%esp
45653f:	c0 0f 84             	rorb   $0x84,(%edi)
456542:	cb                   	lret
456543:	01 00                	add    %eax,(%eax)
456545:	00 33                	add    %dh,(%ebx)
456547:	c0 68 fe 03          	shrb   $0x3,-0x2(%eax)
45654b:	00 00                	add    %al,(%eax)
45654d:	50                   	push   %eax
45654e:	89 45 f8             	mov    %eax,-0x8(%ebp)
456551:	89 45 fc             	mov    %eax,-0x4(%ebp)
456554:	8d 85 a2 f7 ff ff    	lea    -0x85e(%ebp),%eax
45655a:	33 d2                	xor    %edx,%edx
45655c:	50                   	push   %eax
45655d:	66 89 95 a0 f7 ff ff 	mov    %dx,-0x860(%ebp)
456564:	e8 f8 73 00 00       	call   0x45d961
456569:	33 c9                	xor    %ecx,%ecx
45656b:	68 fe 03 00 00       	push   $0x3fe
456570:	51                   	push   %ecx
456571:	8d 95 a2 f3 ff ff    	lea    -0xc5e(%ebp),%edx
456577:	52                   	push   %edx
456578:	66 89 8d a0 f3 ff ff 	mov    %cx,-0xc60(%ebp)
45657f:	e8 dd 73 00 85       	call   0x8545d961
456584:	5a                   	pop    %edx
456585:	02 00                	add    (%eax),%al
456587:	00 8b 55 18 53 8b    	add    %cl,-0x74ace7ab(%ebx)
45658d:	5d                   	pop    %ebp
45658e:	14 57                	adc    $0x57,%al
456590:	8b 7d 0c             	mov    0xc(%ebp),%edi
456593:	8d 04 57             	lea    (%edi,%edx,2),%eax
456596:	89 45 e4             	mov    %eax,-0x1c(%ebp)
456599:	eb 06                	jmp    0x4565a1
45659b:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4565a1:	8b 8d ac fb ff ff    	mov    -0x454(%ebp),%ecx
4565a7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4565aa:	83 c1 02             	add    $0x2,%ecx
4565ad:	51                   	push   %ecx
4565ae:	8d 95 b0 fb ff ff    	lea    -0x450(%ebp),%edx
4565b4:	52                   	push   %edx
4565b5:	50                   	push   %eax
4565b6:	e8 b6 73 00 00       	call   0x45d971
4565bb:	68 19 02 02 00       	push   $0x20219
4565c0:	57                   	push   %edi
4565c1:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4565c4:	51                   	push   %ecx
4565c5:	56                   	push   %esi
4565c6:	e8 56 97 ff ff       	call   0x44fd21
4565cb:	33 f6                	xor    %esi,%esi
4565cd:	68 fe 03 00 00       	push   $0x3fe
4565d2:	8d 8d a2 fb ff ff    	lea    -0x45e(%ebp),%ecx
4565d8:	33 c0                	xor    %eax,%eax
4565da:	56                   	push   %esi
4565db:	51                   	push   %ecx
4565dc:	89 75 ec             	mov    %esi,-0x14(%ebp)
4565df:	89 75 e8             	mov    %esi,-0x18(%ebp)
4565e2:	66 89 85 a0 fb ff ff 	mov    %ax,-0x460(%ebp)
4565e9:	e8 93 74 00 00       	call   0x45da81
4565ee:	8b 4d 10             	mov    0x10(%ebp),%ecx
4565f1:	8d 55 e8             	lea    -0x18(%ebp),%edx
4565f4:	52                   	push   %edx
4565f5:	68 00 02 00 00       	push   $0x200
4565fa:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
456600:	50                   	push   %eax
456601:	56                   	push   %esi
456602:	56                   	push   %esi
456603:	8b 75 08             	mov    0x8(%ebp),%esi
456606:	51                   	push   %ecx
456607:	56                   	push   %esi
456608:	e8 54 5a 00 00       	call   0x45c061
45660d:	83 c4 28             	add    $0x28,%esp
456610:	85 c0                	test   %eax,%eax
456612:	0f d1 e8             	psrlw  %mm0,%mm5
456615:	6a 06                	push   $0x6
456617:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45661a:	51                   	push   %ecx
45661b:	8d 04 42             	lea    (%edx,%eax,2),%eax
45661e:	50                   	push   %eax
45661f:	e8 6d 74 00 00       	call   0x45da91
456624:	8b 4d 10             	mov    0x10(%ebp),%ecx
456627:	6a 00                	push   $0x0
456629:	6a 14                	push   $0x14
45662b:	51                   	push   %ecx
45662c:	83 c6 04             	add    $0x4,%esi
45662f:	53                   	push   %ebx
456630:	89 b3 08 0a 00 00    	mov    %esi,0xa08(%ebx)
456636:	e8 c6 0f 00 00       	call   0x457601
45663b:	83 c4 28             	add    $0x28,%esp
45663e:	5f                   	pop    %edi
45663f:	5e                   	pop    %esi
456640:	b8 01 00 00 00       	mov    $0x1,%eax
456645:	5b                   	pop    %ebx
456646:	8b e5                	mov    %ebp,%esp
456648:	5d                   	pop    %ebp
456649:	c3                   	ret
45664a:	ef                   	out    %eax,(%dx)
45664b:	36 e3 84             	ss jecxz 0x4565d2
45664e:	15 b5 ce 55 8b       	adc    $0x8b55ceb5,%eax
456653:	ec                   	in     (%dx),%al
456654:	81 ec 60 0c 00 00    	sub    $0xc60,%esp
45665a:	56                   	push   %esi
45665b:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
456661:	8b 55 fc             	mov    -0x4(%ebp),%edx
456664:	0f b7 0c 42          	movzwl (%edx,%eax,2),%ecx
456668:	66 85 c9             	test   %cx,%cx
45666b:	74 08                	je     0x456675
45666d:	f7 c1 00 ff 00 00    	test   $0xff00,%ecx
456673:	74 09                	je     0x45667e
456675:	b9 20 00 00 00       	mov    $0x20,%ecx
45667a:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
45667e:	40                   	inc    %eax
45667f:	3b c6                	cmp    %esi,%eax
456681:	72 de                	jb     0x456661
456683:	8b fa                	mov    %edx,%edi
456685:	eb 03                	jmp    0x45668a
456687:	8b 7d fc             	mov    -0x4(%ebp),%edi
45668a:	8b 75 0c             	mov    0xc(%ebp),%esi
45668d:	8b 93 04 0a 00 00    	mov    0xa04(%ebx),%edx
456693:	56                   	push   %esi
456694:	57                   	push   %edi
456695:	52                   	push   %edx
456696:	e8 86 74 00 00       	call   0x45db21
45669b:	8b 93 04 0a 00 00    	mov    0xa04(%ebx),%edx
4566a1:	8b c6                	mov    %esi,%eax
4566a3:	00 00                	add    %al,(%eax)
4566a5:	8b f0                	mov    %eax,%esi
4566a7:	83 c4 20             	add    $0x20,%esp
4566aa:	03 f6                	add    %esi,%esi
4566ac:	eb 6f                	jmp    0x45671d
4566ae:	8b 55 f8             	mov    -0x8(%ebp),%edx
4566b1:	6a 00                	push   $0x0
4566b3:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4566b6:	51                   	push   %ecx
4566b7:	52                   	push   %edx
4566b8:	e8 c4 7c 00 00       	call   0x45e381
4566bd:	83 c4 0c             	add    $0xc,%esp
4566c0:	85 c0                	test   %eax,%eax
4566c2:	74 1c                	je     0x4566e0
4566c4:	8b 45 0c             	mov    0xc(%ebp),%eax
4566c7:	8b 75 fc             	mov    -0x4(%ebp),%esi
4566ca:	50                   	push   %eax
4566cb:	56                   	push   %esi
4566cc:	53                   	push   %ebx
4566cd:	e8 ff fb ff ff       	call   0x4562d1
4566d2:	56                   	push   %esi
4566d3:	e8 c9 77 00 00       	call   0x45dea1
4566d8:	83 c4 10             	add    $0x10,%esp
4566db:	03 c0                	add    %eax,%eax
4566dd:	89 45 0c             	mov    %eax,0xc(%ebp)
4566e0:	8b 75 0c             	mov    0xc(%ebp),%esi
4566e3:	33 c0                	xor    %eax,%eax
4566e5:	d1 ee                	shr    $1,%esi
4566e7:	74 2e                	je     0x456717
4566e9:	eb 06                	jmp    0x4566f1
4566eb:	d1 ef                	shr    $1,%edi
4566ed:	52                   	push   %edx
4566ee:	8d 0c 78             	lea    (%eax,%edi,2),%ecx
4566f1:	51                   	push   %ecx
4566f2:	e8 4a 75 00 00       	call   0x45dc41
4566f7:	8b 55 10             	mov    0x10(%ebp),%edx
4566fa:	6a 00                	push   $0x0
4566fc:	6a 14                	push   $0x14
4566fe:	52                   	push   %edx
4566ff:	53                   	push   %ebx
456700:	e8 ac 10 00 00       	call   0x4577b1
456705:	83 c4 28             	add    $0x28,%esp
456708:	83 7e 04 04          	cmpl   $0x4,0x4(%esi)
45670c:	75 30                	jne    0x45673e
45670e:	8b 7d fc             	mov    -0x4(%ebp),%edi
456711:	8b 0f                	mov    (%edi),%ecx
456713:	8d 45 88             	lea    -0x78(%ebp),%eax
456716:	50                   	push   %eax
456717:	6a 20                	push   $0x20
456719:	6a 00                	push   $0x0
45671b:	51                   	push   %ecx
45671c:	8d 53 1c             	lea    0x1c(%ebx),%edx
45671f:	52                   	push   %edx
456720:	e8 4c 77 00 00       	call   0x45de71
456725:	8d 45 88             	lea    -0x78(%ebp),%eax
456728:	50                   	push   %eax
456729:	57                   	push   %edi
45672a:	e8 02 7c 00 00       	call   0x45e331
45672f:	57                   	push   %edi
456730:	e8 fc 77 51 c6       	call   0xc696df31
456735:	45                   	inc    %ebp
456736:	88 00                	mov    %al,(%eax)
456738:	c7 45 c8 09 00 00 00 	movl   $0x9,-0x38(%ebp)
45673f:	c7 45 e0 0d 00 0a 00 	movl   $0xa000d,-0x20(%ebp)
456746:	c7 45 a8 50 00 61 00 	movl   $0x610050,-0x58(%ebp)
45674d:	c7 45 ac 73 00 73 00 	movl   $0x730073,-0x54(%ebp)
456754:	c7 45 b0 77 00 6f 00 	movl   $0x6f0077,-0x50(%ebp)
45675b:	c7 45 b4 72 00 64 00 	movl   $0x640072,-0x4c(%ebp)
456762:	89 55 0c             	mov    %edx,0xc(%ebp)
456765:	89 83 08 0a 00 00    	mov    %eax,0xa08(%ebx)
45676b:	e8 61 75 00 00       	call   0x45dcd1
456770:	8b 83 04 0a 00 00    	mov    0xa04(%ebx),%eax
456776:	6a 04                	push   $0x4
456778:	8d 55 c8             	lea    -0x38(%ebp),%edx
45677b:	d0 89 45 d4 89 45    	rorb   $1,0x4589d445(%ecx)
456781:	d8 89 45 dc 89 45    	fmuls  0x4589dc45(%ecx)
456787:	e6 89                	out    %al,$0x89
456789:	45                   	inc    %ebp
45678a:	ea 89 45 ee 89 45 f2 	ljmp   $0xf245,$0x89ee4589
456791:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
456795:	89 45 ba             	mov    %eax,-0x46(%ebp)
456798:	89 45 be             	mov    %eax,-0x42(%ebp)
45679b:	89 45 c2             	mov    %eax,-0x3e(%ebp)
45679e:	66 89 45 c6          	mov    %ax,-0x3a(%ebp)
4567a2:	8b 46 08             	mov    0x8(%esi),%eax
4567a5:	66 89 4d e4          	mov    %cx,-0x1c(%ebp)
4567a9:	66 89 4d b8          	mov    %cx,-0x48(%ebp)
4567ad:	8d 4e 14             	lea    0x14(%esi),%ecx
4567b0:	03 c6                	add    %esi,%eax
4567b2:	57                   	push   %edi
4567b3:	51                   	push   %ecx
4567b4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4567b7:	8b 8b 04 0a 00 00    	mov    0xa04(%ebx),%ecx
4567bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4567c0:	8d 47 02             	lea    0x2(%edi),%eax
4567c3:	5f                   	pop    %edi
4567c4:	5e                   	pop    %esi
4567c5:	33 c0                	xor    %eax,%eax
4567c7:	5b                   	pop    %ebx
4567c8:	8b e5                	mov    %ebp,%esp
4567ca:	5d                   	pop    %ebp
4567cb:	c3                   	ret
4567cc:	2a 3e                	sub    (%esi),%bh
4567ce:	6b 9b 16 55 8b ec 83 	imul   $0xffffff83,-0x1374aaea(%ebx),%ebx
4567d5:	ec                   	in     (%dx),%al
4567d6:	78 33                	js     0x45680b
4567d8:	c0 53 8b 5d          	rclb   $0x5d,-0x75(%ebx)
4567dc:	08 56 8b             	or     %dl,-0x75(%esi)
4567df:	75 0c                	jne    0x4567ed
4567e1:	8b 56 0c             	mov    0xc(%esi),%edx
4567e4:	33 c9                	xor    %ecx,%ecx
4567e6:	57                   	push   %edi
4567e7:	8b 7e 10             	mov    0x10(%esi),%edi
4567ea:	89 45 89             	mov    %eax,-0x77(%ebp)
4567ed:	89 45 8d             	mov    %eax,-0x73(%ebp)
4567f0:	89 45 91             	mov    %eax,-0x6f(%ebp)
4567f3:	89 45 95             	mov    %eax,-0x6b(%ebp)
4567f6:	89 45 99             	mov    %eax,-0x67(%ebp)
4567f9:	89 45 9d             	mov    %eax,-0x63(%ebp)
4567fc:	89 45 a1             	mov    %eax,-0x5f(%ebp)
4567ff:	66 89 45 a5          	mov    %ax,-0x5b(%ebp)
456803:	88 45 a7             	mov    %al,-0x59(%ebp)
456806:	89 45 cc             	mov    %eax,-0x34(%ebp)
456809:	89 45 0c             	mov    %eax,0xc(%ebp)
45680c:	1b 51 56             	sbb    0x56(%ecx),%edx
45680f:	8b 75 0c             	mov    0xc(%ebp),%esi
456812:	56                   	push   %esi
456813:	e8 69 76 00 00       	call   0x45de81
456818:	6a 0e                	push   $0xe
45681a:	8d 55 a0             	lea    -0x60(%ebp),%edx
45681d:	52                   	push   %edx
45681e:	8d 44 5e f8          	lea    -0x8(%esi,%ebx,2),%eax
456822:	50                   	push   %eax
456823:	e8 59 76 00 00       	call   0x45de81
456828:	6a 00                	push   $0x0
45682a:	6a 15                	push   $0x15
45682c:	56                   	push   %esi
45682d:	57                   	push   %edi
45682e:	e8 be 11 00 00       	call   0x4579f1
456833:	83 c4 28             	add    $0x28,%esp
456836:	85 c0                	test   %eax,%eax
456838:	75 19                	jne    0x456853
45683a:	50                   	push   %eax
45683b:	6a 14                	push   $0x14
45683d:	56                   	push   %esi
45683e:	57                   	push   %edi
45683f:	e8 ad 11 00 00       	call   0x4579f1
456844:	83 c4 10             	add    $0x10,%esp
456847:	5f                   	pop    %edi
456848:	5e                   	pop    %esi
456849:	b8 01 00 00 00       	mov    $0x1,%eax
45684e:	5b                   	pop    %ebx