45430a:	74 1d                	je     0x454329
45430c:	8b f3                	mov    %ebx,%esi
45430e:	33 db                	xor    %ebx,%ebx
454310:	89 5d a0             	mov    %ebx,-0x60(%ebp)
454313:	6a 02                	push   $0x2
454315:	5b                   	pop    %ebx
454316:	03 f3                	add    %ebx,%esi
454318:	89 75 fc             	mov    %esi,-0x4(%ebp)
45431b:	0f b7 1e             	movzwl (%esi),%ebx
45431e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
454321:	85 db                	test   %ebx,%ebx
454323:	0f 85 85 34 fc ff    	jne    0x4177ae
454329:	8b 45 0c             	mov    0xc(%ebp),%eax
45432c:	c7 00 06 00 00 00    	movl   $0x6,(%eax)
454332:	e9 7b 03 00 00       	jmp    0x4546b2
454337:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45433a:	03 f1                	add    %ecx,%esi
45433c:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
454340:	8b 45 ac             	mov    -0x54(%ebp),%eax
454343:	89 75 fc             	mov    %esi,-0x4(%ebp)
454346:	89 7d d8             	mov    %edi,-0x28(%ebp)
454349:	89 45 a8             	mov    %eax,-0x58(%ebp)
45434c:	0f 84 b2 00 00 00    	je     0x454404
454352:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
454355:	83 f9 fe             	cmp    $0xfffffffe,%ecx
454358:	75 06                	jne    0x454360
45435a:	83 c9 ff             	or     $0xffffffff,%ecx
45435d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
454360:	8b 75 c4             	mov    -0x3c(%ebp),%esi
454363:	8b 45 9c             	mov    -0x64(%ebp),%eax
454366:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
454369:	8b 4d cc             	mov    -0x34(%ebp),%ecx
45436c:	89 45 84             	mov    %eax,-0x7c(%ebp)
45436f:	85 f6                	test   %esi,%esi
454371:	74 54                	je     0x4543c7
454373:	84 ca                	test   %cl,%dl
454375:	74 52                	je     0x4543c9
454377:	8b c3                	mov    %ebx,%eax
454379:	bf 80 00 00 00       	mov    $0x80,%edi
45437e:	99                   	cltd
45437f:	f7 ff                	idiv   %edi
454381:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
454388:	c1 e0 07             	shl    $0x7,%eax
45438b:	03 c2                	add    %edx,%eax
45438d:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
454394:	00
454395:	0f b6 04 c5 53 2f 4a 	movzbl 0x4a2f53(,%eax,8),%eax
45439c:	00
45439d:	85 c0                	test   %eax,%eax
45439f:	74 23                	je     0x4543c4
4543a1:	8b 55 f8             	mov    -0x8(%ebp),%edx
4543a4:	6a 0f                	push   $0xf
4543a6:	59                   	pop    %ecx
4543a7:	6a 02                	push   $0x2
4543a9:	66 89 0a             	mov    %cx,(%edx)
4543ac:	59                   	pop    %ecx
4543ad:	03 d1                	add    %ecx,%edx
4543af:	6a 09                	push   $0x9
4543b1:	5b                   	pop    %ebx
4543b2:	66 89 1a             	mov    %bx,(%edx)
4543b5:	03 d1                	add    %ecx,%edx
4543b7:	66 89 02             	mov    %ax,(%edx)
4543ba:	03 d1                	add    %ecx,%edx
4543bc:	89 55 f8             	mov    %edx,-0x8(%ebp)
4543bf:	e9 51 31 fc ff       	jmp    0x417515
4543c4:	8b 55 f4             	mov    -0xc(%ebp),%edx
4543c7:	84 ca                	test   %cl,%dl
4543c9:	8b 7d f8             	mov    -0x8(%ebp),%edi
4543cc:	6a 00                	push   $0x0
4543ce:	58                   	pop    %eax
4543cf:	6a 1f                	push   $0x1f
4543d1:	59                   	pop    %ecx
4543d2:	0f 95 c0             	setne  %al
4543d5:	03 c1                	add    %ecx,%eax
4543d7:	6a 02                	push   $0x2
4543d9:	59                   	pop    %ecx
4543da:	66 89 07             	mov    %ax,(%edi)
4543dd:	03 f9                	add    %ecx,%edi
4543df:	85 f6                	test   %esi,%esi
4543e1:	74 19                	je     0x4543fc
4543e3:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
4543e9:	76 11                	jbe    0x4543fc
4543eb:	8b d7                	mov    %edi,%edx
4543ed:	8b cb                	mov    %ebx,%ecx
4543ef:	e8 36 ab 03 00       	call   0x48ef2a
4543f4:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4543f7:	e9 30 34 fc ff       	jmp    0x41782c
4543fc:	66 89 1f             	mov    %bx,(%edi)
4543ff:	e9 de 3b fc ff       	jmp    0x417fe2
454404:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
454408:	74 0c                	je     0x454416
45440a:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
454410:	0f 87 01 f0 ff ff    	ja     0x453417
454416:	66 8b fb             	mov    %bx,%di
454419:	e9 bc 34 fc ff       	jmp    0x4178da
45441e:	8b 85 0a ff ff ff    	mov    -0xf6(%ebp),%eax
454424:	ba ff 03 00 00       	mov    $0x3ff,%edx
454429:	23 ca                	and    %edx,%ecx
45442b:	23 c2                	and    %edx,%eax
45442d:	c1 e1 0a             	shl    $0xa,%ecx
454430:	0b c8                	or     %eax,%ecx
454432:	81 c1 00 00 01 00    	add    $0x10000,%ecx
454438:	e9 13 30 fc ff       	jmp    0x417450
45443d:	83 4d 94 ff          	orl    $0xffffffff,-0x6c(%ebp)
454441:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
454445:	e9 28 34 fc ff       	jmp    0x417872
45444a:	8b 4d 28             	mov    0x28(%ebp),%ecx
45444d:	81 49 64 00 08 00 00 	orl    $0x800,0x64(%ecx)
454454:	e9 7f 30 fc ff       	jmp    0x4174d8
454459:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
454460:	0f 84 f2 33 fc ff    	je     0x417858
454466:	83 4d ac ff          	orl    $0xffffffff,-0x54(%ebp)
45446a:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
45446e:	e9 a2 30 fc ff       	jmp    0x417515
454473:	0f b7 7f fe          	movzwl -0x2(%edi),%edi
454477:	8b 41 68             	mov    0x68(%ecx),%eax
45447a:	89 7d a4             	mov    %edi,-0x5c(%ebp)
45447d:	89 45 ac             	mov    %eax,-0x54(%ebp)
454480:	e9 ed 33 fc ff       	jmp    0x417872
454485:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
45448c:	0f 84 70 30 fc ff    	je     0x417502
454492:	8b 55 f8             	mov    -0x8(%ebp),%edx
454495:	e9 d8 33 fc ff       	jmp    0x417872
45449a:	85 d2                	test   %edx,%edx
45449c:	74 0d                	je     0x4544ab
45449e:	f7 45 cc 00 00 00 20 	testl  $0x20000000,-0x34(%ebp)
4544a5:	0f 84 4d 33 fc ff    	je     0x4177f8
4544ab:	8b 55 f8             	mov    -0x8(%ebp),%edx
4544ae:	33 c0                	xor    %eax,%eax
4544b0:	8b 5d dc             	mov    -0x24(%ebp),%ebx
4544b3:	8b 75 c8             	mov    -0x38(%ebp),%esi
4544b6:	66 89 07             	mov    %ax,(%edi)
4544b9:	6a 02                	push   $0x2
4544bb:	58                   	pop    %eax
4544bc:	03 f8                	add    %eax,%edi
4544be:	6a 70                	push   $0x70
4544c0:	58                   	pop    %eax
4544c1:	66 89 02             	mov    %ax,(%edx)
4544c4:	6a 04                	push   $0x4
4544c6:	58                   	pop    %eax
4544c7:	03 d0                	add    %eax,%edx
4544c9:	33 c0                	xor    %eax,%eax
4544cb:	85 db                	test   %ebx,%ebx
4544cd:	0f 95 c0             	setne  %al
4544d0:	66 89 02             	mov    %ax,(%edx)
4544d3:	85 f6                	test   %esi,%esi
4544d5:	74 06                	je     0x4544dd
4544d7:	83 c8 04             	or     $0x4,%eax
4544da:	66 89 02             	mov    %ax,(%edx)
4544dd:	85 c9                	test   %ecx,%ecx
4544df:	7e 52                	jle    0x454533
4544e1:	6a 02                	push   $0x2
4544e3:	58                   	pop    %eax
4544e4:	66 09 02             	or     %ax,(%edx)
4544e7:	03 d0                	add    %eax,%edx
4544e9:	8b c7                	mov    %edi,%eax
4544eb:	89 55 f8             	mov    %edx,-0x8(%ebp)
4544ee:	2b c2                	sub    %edx,%eax
4544f0:	83 e0 fe             	and    $0xfffffffe,%eax
4544f3:	50                   	push   %eax
4544f4:	52                   	push   %edx
4544f5:	8d 42 20             	lea    0x20(%edx),%eax
4544f8:	50                   	push   %eax
4544f9:	e8 22 3b fd ff       	call   0x428020
4544fe:	83 c4 0c             	add    $0xc,%esp
454501:	85 db                	test   %ebx,%ebx
454503:	74 15                	je     0x45451a
454505:	85 f6                	test   %esi,%esi
454507:	75 11                	jne    0x45451a
454509:	6a 20                	push   $0x20
45450b:	33 c0                	xor    %eax,%eax
45450d:	59                   	pop    %ecx
45450e:	f6 94 05 2c ff ff ff 	notb   -0xd4(%ebp,%eax,1)
454515:	40                   	inc    %eax
454516:	3b c1                	cmp    %ecx,%eax
454518:	72 f4                	jb     0x45450e
45451a:	6a 20                	push   $0x20
45451c:	58                   	pop    %eax
45451d:	50                   	push   %eax
45451e:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
454524:	50                   	push   %eax
454525:	ff 75 f8             	push   -0x8(%ebp)
454528:	e8 53 cb fc ff       	call   0x421080
45452d:	83 c4 0c             	add    $0xc,%esp
454530:	83 c7 20             	add    $0x20,%edi
454533:	8b 5d f0             	mov    -0x10(%ebp),%ebx
454536:	8b c7                	mov    %edi,%eax
454538:	2b c3                	sub    %ebx,%eax
45453a:	89 7d f8             	mov    %edi,-0x8(%ebp)
45453d:	d1 f8                	sar    $1,%eax
45453f:	66 89 43 02          	mov    %ax,0x2(%ebx)
454543:	e9 d0 2f fc ff       	jmp    0x417518
454548:	f6 94 05 2c ff ff ff 	notb   -0xd4(%ebp,%eax,1)
45454f:	40                   	inc    %eax
454550:	3b c1                	cmp    %ecx,%eax
454552:	72 f4                	jb     0x454548
454554:	e9 e6 36 fc ff       	jmp    0x417c3f
454559:	8b 45 0c             	mov    0xc(%ebp),%eax
45455c:	c7 00 4b 00 00 00    	movl   $0x4b,(%eax)
454562:	e9 4b 01 00 00       	jmp    0x4546b2
454567:	8b 45 0c             	mov    0xc(%ebp),%eax
45456a:	c7 00 3b 00 00 00    	movl   $0x3b,(%eax)
454570:	e9 3d 01 00 00       	jmp    0x4546b2
454575:	8b 45 0c             	mov    0xc(%ebp),%eax
454578:	c7 00 42 00 00 00    	movl   $0x42,(%eax)
45457e:	e9 2f 01 00 00       	jmp    0x4546b2
454583:	8b 45 0c             	mov    0xc(%ebp),%eax
454586:	c7 00 54 00 00 00    	movl   $0x54,(%eax)
45458c:	e9 21 01 00 00       	jmp    0x4546b2
454591:	8b 45 0c             	mov    0xc(%ebp),%eax
454594:	c7 00 23 00 00 00    	movl   $0x23,(%eax)
45459a:	e9 13 01 00 00       	jmp    0x4546b2
45459f:	6a 02                	push   $0x2
4545a1:	58                   	pop    %eax
4545a2:	2b f0                	sub    %eax,%esi
4545a4:	8b 45 0c             	mov    0xc(%ebp),%eax
4545a7:	c7 00 1a 00 00 00    	movl   $0x1a,(%eax)
4545ad:	e9 00 01 00 00       	jmp    0x4546b2
4545b2:	8b 45 0c             	mov    0xc(%ebp),%eax
4545b5:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)
4545bb:	e9 f2 00 00 00       	jmp    0x4546b2
4545c0:	6a 27                	push   $0x27
4545c2:	e9 b7 00 00 00       	jmp    0x45467e
4545c7:	6a 2b                	push   $0x2b
4545c9:	e9 b0 00 00 00       	jmp    0x45467e
4545ce:	8b 45 0c             	mov    0xc(%ebp),%eax
4545d1:	c7 00 15 00 00 00    	movl   $0x15,(%eax)
4545d7:	e9 21 3d fc ff       	jmp    0x4182fd
4545dc:	8b 45 0c             	mov    0xc(%ebp),%eax
4545df:	c7 00 31 00 00 00    	movl   $0x31,(%eax)
4545e5:	e9 c8 00 00 00       	jmp    0x4546b2
4545ea:	6a 2a                	push   $0x2a
4545ec:	e9 8d 00 00 00       	jmp    0x45467e
4545f1:	8b 45 0c             	mov    0xc(%ebp),%eax
4545f4:	03 f2                	add    %edx,%esi
4545f6:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
4545fc:	e9 b1 00 00 00       	jmp    0x4546b2
454601:	8b 45 0c             	mov    0xc(%ebp),%eax
454604:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
45460a:	e9 a3 00 00 00       	jmp    0x4546b2
45460f:	8b 45 0c             	mov    0xc(%ebp),%eax
454612:	2b f2                	sub    %edx,%esi
454614:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
45461a:	e9 93 00 00 00       	jmp    0x4546b2
45461f:	8b 45 0c             	mov    0xc(%ebp),%eax
454622:	c7 00 36 00 00 00    	movl   $0x36,(%eax)
454628:	e9 d0 3c fc ff       	jmp    0x4182fd
45462d:	8b 45 0c             	mov    0xc(%ebp),%eax
454630:	c7 00 1b 00 00 00    	movl   $0x1b,(%eax)
454636:	e9 c2 3c fc ff       	jmp    0x4182fd
45463b:	8b 45 0c             	mov    0xc(%ebp),%eax
45463e:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)
454644:	eb 6c                	jmp    0x4546b2
454646:	6a 3a                	push   $0x3a
454648:	eb 34                	jmp    0x45467e
45464a:	6a 1d                	push   $0x1d
45464c:	eb 30                	jmp    0x45467e
45464e:	6a 30                	push   $0x30
454650:	eb 06                	jmp    0x454658
454652:	6a 2a                	push   $0x2a
454654:	eb 02                	jmp    0x454658
454656:	6a 3e                	push   $0x3e
454658:	58                   	pop    %eax
454659:	89 02                	mov    %eax,(%edx)
45465b:	eb 55                	jmp    0x4546b2
45465d:	8b 45 0c             	mov    0xc(%ebp),%eax
454660:	6a 0f                	push   $0xf
454662:	59                   	pop    %ecx
454663:	89 08                	mov    %ecx,(%eax)
454665:	e9 93 3c fc ff       	jmp    0x4182fd
45466a:	8b 45 0c             	mov    0xc(%ebp),%eax
45466d:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
454673:	e9 85 3c fc ff       	jmp    0x4182fd
454678:	6a 1e                	push   $0x1e
45467a:	eb 02                	jmp    0x45467e
45467c:	6a 1f                	push   $0x1f
45467e:	8b 45 0c             	mov    0xc(%ebp),%eax
454681:	59                   	pop    %ecx
454682:	89 08                	mov    %ecx,(%eax)
454684:	eb 2c                	jmp    0x4546b2
454686:	c7 02 07 00 00 00    	movl   $0x7,(%edx)
45468c:	eb 24                	jmp    0x4546b2
45468e:	c7 02 47 00 00 00    	movl   $0x47,(%edx)
454694:	e9 64 3c fc ff       	jmp    0x4182fd
454699:	c7 01 53 00 00 00    	movl   $0x53,(%ecx)
45469f:	eb 11                	jmp    0x4546b2
4546a1:	c7 01 08 00 00 00    	movl   $0x8,(%ecx)
4546a7:	eb 09                	jmp    0x4546b2
4546a9:	8b 45 0c             	mov    0xc(%ebp),%eax
4546ac:	c7 00 34 00 00 00    	movl   $0x34,(%eax)
4546b2:	8b 45 08             	mov    0x8(%ebp),%eax
4546b5:	89 30                	mov    %esi,(%eax)
4546b7:	33 c0                	xor    %eax,%eax
4546b9:	e9 f2 2e fc ff       	jmp    0x4175b0
4546be:	a9 00 08 00 00       	test   $0x800,%eax
4546c3:	0f 84 a1 00 00 00    	je     0x45476a
4546c9:	83 e0 fe             	and    $0xfffffffe,%eax
4546cc:	89 75 ec             	mov    %esi,-0x14(%ebp)
4546cf:	89 45 08             	mov    %eax,0x8(%ebp)
4546d2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4546d5:	8b d7                	mov    %edi,%edx
4546d7:	50                   	push   %eax
4546d8:	8d 45 10             	lea    0x10(%ebp),%eax
4546db:	50                   	push   %eax
4546dc:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4546df:	e8 a1 9d 03 00       	call   0x48e485
4546e4:	59                   	pop    %ecx
4546e5:	59                   	pop    %ecx
4546e6:	85 c0                	test   %eax,%eax
4546e8:	0f 88 b2 00 00 00    	js     0x4547a0
4546ee:	7e 1e                	jle    0x45470e
4546f0:	ff 75 10             	push   0x10(%ebp)
4546f3:	8b 55 f4             	mov    -0xc(%ebp),%edx
4546f6:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
4546fd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454700:	50                   	push   %eax
454701:	ff 75 0c             	push   0xc(%ebp)
454704:	ff 75 08             	push   0x8(%ebp)
454707:	e8 8c 95 03 00       	call   0x48dc98
45470c:	eb 51                	jmp    0x45475f
45470e:	8b 55 10             	mov    0x10(%ebp),%edx
454711:	8b 4d f0             	mov    -0x10(%ebp),%ecx
454714:	3b d6                	cmp    %esi,%edx
454716:	72 25                	jb     0x45473d
454718:	3b cf                	cmp    %edi,%ecx
45471a:	76 b6                	jbe    0x4546d2
45471c:	3b cf                	cmp    %edi,%ecx
45471e:	76 2c                	jbe    0x45474c
454720:	8d 47 01             	lea    0x1(%edi),%eax
454723:	3b d0                	cmp    %eax,%edx
454725:	77 25                	ja     0x45474c
454727:	8b f9                	mov    %ecx,%edi
454729:	89 7d 14             	mov    %edi,0x14(%ebp)
45472c:	3b cb                	cmp    %ebx,%ecx
45472e:	76 a2                	jbe    0x4546d2
454730:	b8 ff 00 00 00       	mov    $0xff,%eax
454735:	3b c8                	cmp    %eax,%ecx
454737:	77 0f                	ja     0x454748
454739:	8b d9                	mov    %ecx,%ebx
45473b:	eb 95                	jmp    0x4546d2
45473d:	8d 46 ff             	lea    -0x1(%esi),%eax
454740:	3b c8                	cmp    %eax,%ecx
454742:	72 d8                	jb     0x45471c
454744:	8b f2                	mov    %edx,%esi
454746:	eb 8a                	jmp    0x4546d2
454748:	8b d8                	mov    %eax,%ebx
45474a:	eb 86                	jmp    0x4546d2
45474c:	51                   	push   %ecx
45474d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454750:	52                   	push   %edx