4474e7:	89 01                	mov    %eax,(%ecx)
4474e9:	33 c9                	xor    %ecx,%ecx
4474eb:	41                   	inc    %ecx
4474ec:	89 75 ec             	mov    %esi,-0x14(%ebp)
4474ef:	89 75 fc             	mov    %esi,-0x4(%ebp)
4474f2:	89 75 f4             	mov    %esi,-0xc(%ebp)
4474f5:	8b c2                	mov    %edx,%eax
4474f7:	c1 e0 04             	shl    $0x4,%eax
4474fa:	8b 90 98 04 45 00    	mov    0x450498(%eax),%edx
447500:	0f b7 b0 92 04 45 00 	movzwl 0x450492(%eax),%esi
447507:	89 55 e0             	mov    %edx,-0x20(%ebp)
44750a:	8b 90 94 04 45 00    	mov    0x450494(%eax),%edx
447510:	89 55 dc             	mov    %edx,-0x24(%ebp)
447513:	8b 90 9c 04 45 00    	mov    0x45049c(%eax),%edx
447519:	89 75 e4             	mov    %esi,-0x1c(%ebp)
44751c:	0f b7 b0 90 04 45 00 	movzwl 0x450490(%eax),%esi
447523:	89 55 f8             	mov    %edx,-0x8(%ebp)
447526:	8b 55 f0             	mov    -0x10(%ebp),%edx
447529:	85 c9                	test   %ecx,%ecx
44752b:	74 3b                	je     0x447568
44752d:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
447531:	0f 85 5e 01 00 00    	jne    0x447695
447537:	8b 4d 08             	mov    0x8(%ebp),%ecx
44753a:	8d 59 02             	lea    0x2(%ecx),%ebx
44753d:	66 8b 01             	mov    (%ecx),%ax
447540:	83 c1 02             	add    $0x2,%ecx
447543:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
447547:	75 f4                	jne    0x44753d
447549:	8b 45 14             	mov    0x14(%ebp),%eax
44754c:	2b cb                	sub    %ebx,%ecx
44754e:	d1 f9                	sar    $1,%ecx
447550:	8b 00                	mov    (%eax),%eax
447552:	3b c1                	cmp    %ecx,%eax
447554:	76 0b                	jbe    0x447561
447556:	33 db                	xor    %ebx,%ebx
447558:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44755f:	eb 07                	jmp    0x447568
447561:	8b 4d 08             	mov    0x8(%ebp),%ecx
447564:	0f b7 1c 41          	movzwl (%ecx,%eax,2),%ebx
447568:	b9 ff ff 00 00       	mov    $0xffff,%ecx
44756d:	33 c0                	xor    %eax,%eax
44756f:	66 3b f1             	cmp    %cx,%si
447572:	74 49                	je     0x4475bd
447574:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
447577:	c7 45 f0 fe ff 00 00 	movl   $0xfffe,-0x10(%ebp)
44757e:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
447582:	75 10                	jne    0x447594
447584:	66 3b de             	cmp    %si,%bx
447587:	74 34                	je     0x4475bd
447589:	8b 45 f8             	mov    -0x8(%ebp),%eax
44758c:	c1 e8 03             	shr    $0x3,%eax
44758f:	83 e0 01             	and    $0x1,%eax
447592:	eb 1d                	jmp    0x4475b1
447594:	f6 45 f8 08          	testb  $0x8,-0x8(%ebp)
447598:	74 0a                	je     0x4475a4
44759a:	66 3b de             	cmp    %si,%bx
44759d:	72 1e                	jb     0x4475bd
44759f:	66 3b d9             	cmp    %cx,%bx
4475a2:	77 19                	ja     0x4475bd
4475a4:	66 3b de             	cmp    %si,%bx
4475a7:	72 08                	jb     0x4475b1
4475a9:	66 3b d9             	cmp    %cx,%bx
4475ac:	77 03                	ja     0x4475b1
4475ae:	33 c0                	xor    %eax,%eax
4475b0:	40                   	inc    %eax
4475b1:	33 c9                	xor    %ecx,%ecx
4475b3:	85 c0                	test   %eax,%eax
4475b5:	75 06                	jne    0x4475bd
4475b7:	42                   	inc    %edx
4475b8:	e9 be 00 00 00       	jmp    0x44767b
4475bd:	8b 55 f8             	mov    -0x8(%ebp),%edx
4475c0:	33 c0                	xor    %eax,%eax
4475c2:	8b c8                	mov    %eax,%ecx
4475c4:	f6 c2 01             	test   $0x1,%dl
4475c7:	0f 84 8d 00 00 00    	je     0x44765a
4475cd:	85 ff                	test   %edi,%edi
4475cf:	74 60                	je     0x447631
4475d1:	8b 55 f4             	mov    -0xc(%ebp),%edx
4475d4:	8b 75 fc             	mov    -0x4(%ebp),%esi
4475d7:	8d 42 ff             	lea    -0x1(%edx),%eax
4475da:	3b f0                	cmp    %eax,%esi
4475dc:	72 42                	jb     0x447620
4475de:	83 c2 20             	add    $0x20,%edx
4475e1:	89 55 f4             	mov    %edx,-0xc(%ebp)
4475e4:	8b c2                	mov    %edx,%eax
4475e6:	6a 02                	push   $0x2
4475e8:	5a                   	pop    %edx
4475e9:	f7 e2                	mul    %edx
4475eb:	0f 90 c1             	seto   %cl
4475ee:	f7 d9                	neg    %ecx
4475f0:	0b c8                	or     %eax,%ecx
4475f2:	51                   	push   %ecx
4475f3:	e8 e3 6b fd ff       	call   0x41e1db
4475f8:	8b f0                	mov    %eax,%esi
4475fa:	59                   	pop    %ecx
4475fb:	85 f6                	test   %esi,%esi
4475fd:	0f 84 96 00 00 00    	je     0x447699
447603:	8b 45 fc             	mov    -0x4(%ebp),%eax
447606:	8d 14 00             	lea    (%eax,%eax,1),%edx
447609:	52                   	push   %edx
44760a:	57                   	push   %edi
44760b:	56                   	push   %esi
44760c:	e8 34 81 fd ff       	call   0x41f745
447611:	83 c4 0c             	add    $0xc,%esp
447614:	8b cf                	mov    %edi,%ecx
447616:	e8 f5 89 fc ff       	call   0x410010
44761b:	8b fe                	mov    %esi,%edi
44761d:	8b 75 fc             	mov    -0x4(%ebp),%esi
447620:	33 c0                	xor    %eax,%eax
447622:	66 89 1c 77          	mov    %bx,(%edi,%esi,2)
447626:	66 89 44 77 02       	mov    %ax,0x2(%edi,%esi,2)
44762b:	46                   	inc    %esi
44762c:	89 75 fc             	mov    %esi,-0x4(%ebp)
44762f:	eb 23                	jmp    0x447654
447631:	33 c0                	xor    %eax,%eax
447633:	40                   	inc    %eax
447634:	6a 20                	push   $0x20
447636:	89 45 fc             	mov    %eax,-0x4(%ebp)
447639:	58                   	pop    %eax
44763a:	6a 40                	push   $0x40
44763c:	89 45 f4             	mov    %eax,-0xc(%ebp)
44763f:	e8 97 6b fd ff       	call   0x41e1db
447644:	8b f8                	mov    %eax,%edi
447646:	59                   	pop    %ecx
447647:	85 ff                	test   %edi,%edi
447649:	74 52                	je     0x44769d
44764b:	33 c0                	xor    %eax,%eax
44764d:	66 89 1f             	mov    %bx,(%edi)
447650:	66 89 47 02          	mov    %ax,0x2(%edi)
447654:	8b 55 f8             	mov    -0x8(%ebp),%edx
447657:	33 c9                	xor    %ecx,%ecx
447659:	41                   	inc    %ecx
44765a:	f6 c2 02             	test   $0x2,%dl
44765d:	74 03                	je     0x447662
44765f:	33 c9                	xor    %ecx,%ecx
447661:	41                   	inc    %ecx
447662:	8b 75 14             	mov    0x14(%ebp),%esi
447665:	8b 06                	mov    (%esi),%eax
447667:	f6 c2 04             	test   $0x4,%dl
44766a:	74 04                	je     0x447670
44766c:	33 c9                	xor    %ecx,%ecx
44766e:	41                   	inc    %ecx
44766f:	48                   	dec    %eax
447670:	40                   	inc    %eax
447671:	89 06                	mov    %eax,(%esi)
447673:	f6 c2 20             	test   $0x20,%dl
447676:	75 2a                	jne    0x4476a2
447678:	8b 55 e0             	mov    -0x20(%ebp),%edx
44767b:	89 55 f0             	mov    %edx,-0x10(%ebp)
44767e:	83 fa 0b             	cmp    $0xb,%edx
447681:	0f 82 6e fe ff ff    	jb     0x4474f5
447687:	6a 05                	push   $0x5
447689:	5e                   	pop    %esi
44768a:	8b cf                	mov    %edi,%ecx
44768c:	e8 7f 89 fc ff       	call   0x410010
447691:	8b c6                	mov    %esi,%eax
447693:	eb 1c                	jmp    0x4476b1
447695:	6a 06                	push   $0x6
447697:	eb f0                	jmp    0x447689
447699:	6a 07                	push   $0x7
44769b:	eb ec                	jmp    0x447689
44769d:	6a 07                	push   $0x7
44769f:	58                   	pop    %eax
4476a0:	eb 0f                	jmp    0x4476b1
4476a2:	8b 45 10             	mov    0x10(%ebp),%eax
4476a5:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4476a8:	89 08                	mov    %ecx,(%eax)
4476aa:	8b 45 18             	mov    0x18(%ebp),%eax
4476ad:	89 38                	mov    %edi,(%eax)
4476af:	33 c0                	xor    %eax,%eax
4476b1:	5f                   	pop    %edi
4476b2:	5e                   	pop    %esi
4476b3:	5b                   	pop    %ebx
4476b4:	c9                   	leave
4476b5:	c2 14 00             	ret    $0x14
4476b8:	8b ff                	mov    %edi,%edi
4476ba:	55                   	push   %ebp
4476bb:	8b ec                	mov    %esp,%ebp
4476bd:	56                   	push   %esi
4476be:	ff 75 14             	push   0x14(%ebp)
4476c1:	8b f1                	mov    %ecx,%esi
4476c3:	83 ec 0c             	sub    $0xc,%esp
4476c6:	8d 4e 08             	lea    0x8(%esi),%ecx
4476c9:	e8 2d 01 00 00       	call   0x4477fb
4476ce:	85 c0                	test   %eax,%eax
4476d0:	78 0d                	js     0x4476df
4476d2:	ff 75 14             	push   0x14(%ebp)
4476d5:	8b ce                	mov    %esi,%ecx
4476d7:	83 ec 0c             	sub    $0xc,%esp
4476da:	e8 b8 01 00 00       	call   0x447897
4476df:	5e                   	pop    %esi
4476e0:	5d                   	pop    %ebp
4476e1:	c2 10 00             	ret    $0x10
4476e4:	8b ff                	mov    %edi,%edi
4476e6:	55                   	push   %ebp
4476e7:	8b ec                	mov    %esp,%ebp
4476e9:	83 ec 20             	sub    $0x20,%esp
4476ec:	53                   	push   %ebx
4476ed:	8b d9                	mov    %ecx,%ebx
4476ef:	33 c0                	xor    %eax,%eax
4476f1:	40                   	inc    %eax
4476f2:	56                   	push   %esi
4476f3:	57                   	push   %edi
4476f4:	89 43 08             	mov    %eax,0x8(%ebx)
4476f7:	33 ff                	xor    %edi,%edi
4476f9:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4476fc:	50                   	push   %eax
4476fd:	ff 15 00 30 45 00    	call   *0x453000
447703:	8b 45 10             	mov    0x10(%ebp),%eax
447706:	8d 4d f8             	lea    -0x8(%ebp),%ecx
447709:	21 7d f4             	and    %edi,-0xc(%ebp)
44770c:	21 7d f8             	and    %edi,-0x8(%ebp)
44770f:	51                   	push   %ecx
447710:	8b 30                	mov    (%eax),%esi
447712:	8d 4d f4             	lea    -0xc(%ebp),%ecx
447715:	51                   	push   %ecx
447716:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
447719:	51                   	push   %ecx
44771a:	8b 4e 10             	mov    0x10(%esi),%ecx
44771d:	57                   	push   %edi
44771e:	68 94 65 40 00       	push   $0x406594
447723:	50                   	push   %eax
447724:	ff 15 c4 12 45 00    	call   *0x4512c4
44772a:	ff 56 10             	call   *0x10(%esi)
44772d:	6a 0b                	push   $0xb
44772f:	83 c9 ff             	or     $0xffffffff,%ecx
447732:	5a                   	pop    %edx
447733:	85 c0                	test   %eax,%eax
447735:	78 27                	js     0x44775e
447737:	33 c0                	xor    %eax,%eax
447739:	66 39 55 e4          	cmp    %dx,-0x1c(%ebp)
44773d:	75 0c                	jne    0x44774b
44773f:	66 39 4d ec          	cmp    %cx,-0x14(%ebp)
447743:	0f 94 c0             	sete   %al
447746:	89 43 0c             	mov    %eax,0xc(%ebx)
447749:	eb 1c                	jmp    0x447767
44774b:	40                   	inc    %eax
44774c:	66 39 45 e4          	cmp    %ax,-0x1c(%ebp)
447750:	75 05                	jne    0x447757
447752:	21 7b 0c             	and    %edi,0xc(%ebx)
447755:	eb 10                	jmp    0x447767
447757:	bf 12 10 04 80       	mov    $0x80041012,%edi
44775c:	eb 09                	jmp    0x447767
44775e:	3d 02 10 04 80       	cmp    $0x80041002,%eax
447763:	74 02                	je     0x447767
447765:	8b f8                	mov    %eax,%edi
447767:	8d 45 e4             	lea    -0x1c(%ebp),%eax
44776a:	50                   	push   %eax
44776b:	ff 15 1c 30 45 00    	call   *0x45301c
447771:	85 ff                	test   %edi,%edi
447773:	78 7d                	js     0x4477f2
447775:	8d 45 e4             	lea    -0x1c(%ebp),%eax
447778:	50                   	push   %eax
447779:	ff 15 00 30 45 00    	call   *0x453000
44777f:	8b 45 10             	mov    0x10(%ebp),%eax
447782:	8d 4d f4             	lea    -0xc(%ebp),%ecx
447785:	51                   	push   %ecx
447786:	8d 4d f8             	lea    -0x8(%ebp),%ecx
447789:	33 d2                	xor    %edx,%edx
44778b:	51                   	push   %ecx
44778c:	8b 30                	mov    (%eax),%esi
44778e:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
447791:	51                   	push   %ecx
447792:	52                   	push   %edx
447793:	68 7c 65 40 00       	push   $0x40657c
447798:	8b 4e 10             	mov    0x10(%esi),%ecx
44779b:	50                   	push   %eax
44779c:	89 55 f8             	mov    %edx,-0x8(%ebp)
44779f:	89 55 f4             	mov    %edx,-0xc(%ebp)
4477a2:	ff 15 c4 12 45 00    	call   *0x4512c4
4477a8:	ff 56 10             	call   *0x10(%esi)
4477ab:	85 c0                	test   %eax,%eax
4477ad:	78 30                	js     0x4477df
4477af:	6a 0b                	push   $0xb
4477b1:	58                   	pop    %eax
4477b2:	66 39 45 e4          	cmp    %ax,-0x1c(%ebp)
4477b6:	75 11                	jne    0x4477c9
4477b8:	33 c0                	xor    %eax,%eax
4477ba:	83 c9 ff             	or     $0xffffffff,%ecx
4477bd:	66 39 4d ec          	cmp    %cx,-0x14(%ebp)
4477c1:	0f 94 c0             	sete   %al
4477c4:	89 43 10             	mov    %eax,0x10(%ebx)
4477c7:	eb 1f                	jmp    0x4477e8
4477c9:	33 c0                	xor    %eax,%eax
4477cb:	40                   	inc    %eax
4477cc:	66 39 45 e4          	cmp    %ax,-0x1c(%ebp)
4477d0:	75 06                	jne    0x4477d8
4477d2:	83 63 10 00          	andl   $0x0,0x10(%ebx)
4477d6:	eb 10                	jmp    0x4477e8
4477d8:	bf 12 10 04 80       	mov    $0x80041012,%edi
4477dd:	eb 09                	jmp    0x4477e8
4477df:	3d 02 10 04 80       	cmp    $0x80041002,%eax
4477e4:	74 02                	je     0x4477e8
4477e6:	8b f8                	mov    %eax,%edi
4477e8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4477eb:	50                   	push   %eax
4477ec:	ff 15 1c 30 45 00    	call   *0x45301c
4477f2:	8b c7                	mov    %edi,%eax
4477f4:	5f                   	pop    %edi
4477f5:	5e                   	pop    %esi
4477f6:	5b                   	pop    %ebx
4477f7:	c9                   	leave
4477f8:	c2 0c 00             	ret    $0xc
4477fb:	8b ff                	mov    %edi,%edi
4477fd:	55                   	push   %ebp
4477fe:	8b ec                	mov    %esp,%ebp
447800:	51                   	push   %ecx
447801:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
447805:	8d 45 fc             	lea    -0x4(%ebp),%eax
447808:	53                   	push   %ebx
447809:	56                   	push   %esi
44780a:	68 3c 66 40 00       	push   $0x40663c
44780f:	ff 75 14             	push   0x14(%ebp)
447812:	8b d9                	mov    %ecx,%ebx
447814:	68 40 66 40 00       	push   $0x406640
447819:	50                   	push   %eax
44781a:	6a 03                	push   $0x3
44781c:	e8 6f 7f fc ff       	call   0x40f790
447821:	8b f0                	mov    %eax,%esi
447823:	83 c4 14             	add    $0x14,%esp
447826:	85 f6                	test   %esi,%esi
447828:	78 65                	js     0x44788f
44782a:	57                   	push   %edi
44782b:	8d bb d0 06 00 00    	lea    0x6d0(%ebx),%edi
447831:	8b 0f                	mov    (%edi),%ecx
447833:	85 c9                	test   %ecx,%ecx
447835:	74 13                	je     0x44784a
447837:	8b 01                	mov    (%ecx),%eax
447839:	51                   	push   %ecx
44783a:	8b 70 08             	mov    0x8(%eax),%esi
44783d:	8b ce                	mov    %esi,%ecx
44783f:	ff 15 c4 12 45 00    	call   *0x4512c4
447845:	ff d6                	call   *%esi
447847:	83 27 00             	andl   $0x0,(%edi)
44784a:	8b 83 dc 06 00 00    	mov    0x6dc(%ebx),%eax
447850:	6a 00                	push   $0x0
447852:	57                   	push   %edi
447853:	ff b3 d4 06 00 00    	push   0x6d4(%ebx)
447859:	8b 30                	mov    (%eax),%esi
44785b:	6a 00                	push   $0x0
44785d:	ff 75 fc             	push   -0x4(%ebp)
447860:	8b 4e 18             	mov    0x18(%esi),%ecx
447863:	50                   	push   %eax
447864:	ff 15 c4 12 45 00    	call   *0x4512c4
44786a:	ff 56 18             	call   *0x18(%esi)
44786d:	8b f0                	mov    %eax,%esi
44786f:	85 f6                	test   %esi,%esi
447871:	78 12                	js     0x447885
447873:	ff 75 14             	push   0x14(%ebp)
447876:	8b cb                	mov    %ebx,%ecx