40654c:	5e                   	pop    %esi
40654d:	5b                   	pop    %ebx
40654e:	c9                   	leave
40654f:	c3                   	ret
406550:	55                   	push   %ebp
406551:	8b ec                	mov    %esp,%ebp
406553:	51                   	push   %ecx
406554:	53                   	push   %ebx
406555:	56                   	push   %esi
406556:	57                   	push   %edi
406557:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40655d:	8b 75 0c             	mov    0xc(%ebp),%esi
406560:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406564:	85 f6                	test   %esi,%esi
406566:	8b d8                	mov    %eax,%ebx
406568:	74 73                	je     0x4065dd
40656a:	8b 7d 08             	mov    0x8(%ebp),%edi
40656d:	85 ff                	test   %edi,%edi
40656f:	74 6c                	je     0x4065dd
406571:	53                   	push   %ebx
406572:	6a 20                	push   $0x20
406574:	56                   	push   %esi
406575:	57                   	push   %edi
406576:	e8 74 fe ff ff       	call   0x4063ef
40657b:	6a 26                	push   $0x26
40657d:	8d 46 40             	lea    0x40(%esi),%eax
406580:	50                   	push   %eax
406581:	8d 47 20             	lea    0x20(%edi),%eax
406584:	50                   	push   %eax
406585:	e8 e6 12 01 00       	call   0x417870
40658a:	83 c4 0c             	add    $0xc,%esp
40658d:	53                   	push   %ebx
40658e:	6a 20                	push   $0x20
406590:	8d 46 66             	lea    0x66(%esi),%eax
406593:	50                   	push   %eax
406594:	8d 47 46             	lea    0x46(%edi),%eax
406597:	50                   	push   %eax
406598:	e8 52 fe ff ff       	call   0x4063ef
40659d:	6a 36                	push   $0x36
40659f:	8d 86 a6 00 00 00    	lea    0xa6(%esi),%eax
4065a5:	50                   	push   %eax
4065a6:	8d 47 66             	lea    0x66(%edi),%eax
4065a9:	50                   	push   %eax
4065aa:	e8 c1 12 01 00       	call   0x417870
4065af:	66 8b 46 46          	mov    0x46(%esi),%ax
4065b3:	83 c4 0c             	add    $0xc,%esp
4065b6:	66 85 c0             	test   %ax,%ax
4065b9:	74 1a                	je     0x4065d5
4065bb:	0f b7 c0             	movzwl %ax,%eax
4065be:	50                   	push   %eax
4065bf:	81 c6 dc 00 00 00    	add    $0xdc,%esi
4065c5:	8d 87 9c 00 00 00    	lea    0x9c(%edi),%eax
4065cb:	56                   	push   %esi
4065cc:	50                   	push   %eax
4065cd:	e8 9e 12 01 00       	call   0x417870
4065d2:	83 c4 0c             	add    $0xc,%esp
4065d5:	66 c7 47 24 9c 00    	movw   $0x9c,0x24(%edi)
4065db:	eb 02                	jmp    0x4065df
4065dd:	33 ff                	xor    %edi,%edi
4065df:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4065e2:	e8 20 ad ff ff       	call   0x401307
4065e7:	8b c7                	mov    %edi,%eax
4065e9:	5f                   	pop    %edi
4065ea:	5e                   	pop    %esi
4065eb:	5b                   	pop    %ebx
4065ec:	c9                   	leave
4065ed:	c2 08 00             	ret    $0x8
4065f0:	56                   	push   %esi
4065f1:	8b f1                	mov    %ecx,%esi
4065f3:	e8 14 00 00 00       	call   0x40660c
4065f8:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4065fd:	74 07                	je     0x406606
4065ff:	56                   	push   %esi
406600:	e8 7b 9a 03 00       	call   0x440080
406605:	59                   	pop    %ecx
406606:	8b c6                	mov    %esi,%eax
406608:	5e                   	pop    %esi
406609:	c2 04 00             	ret    $0x4
40660c:	c7 01 d4 9b 48 00    	movl   $0x489bd4,(%ecx)
406612:	c3                   	ret
406613:	53                   	push   %ebx
406614:	56                   	push   %esi
406615:	57                   	push   %edi
406616:	8b f9                	mov    %ecx,%edi
406618:	8b 07                	mov    (%edi),%eax
40661a:	8b 70 f4             	mov    -0xc(%eax),%esi
40661d:	8d 5e 01             	lea    0x1(%esi),%ebx
406620:	53                   	push   %ebx
406621:	e8 6a ab ff ff       	call   0x401190
406626:	8a 4c 24 10          	mov    0x10(%esp),%cl
40662a:	88 0c 30             	mov    %cl,(%eax,%esi,1)
40662d:	53                   	push   %ebx
40662e:	8b cf                	mov    %edi,%ecx
406630:	e8 60 ab ff ff       	call   0x401195
406635:	5f                   	pop    %edi
406636:	5e                   	pop    %esi
406637:	5b                   	pop    %ebx
406638:	c2 04 00             	ret    $0x4
40663b:	55                   	push   %ebp
40663c:	8b ec                	mov    %esp,%ebp
40663e:	51                   	push   %ecx
40663f:	53                   	push   %ebx
406640:	56                   	push   %esi
406641:	8b 75 08             	mov    0x8(%ebp),%esi
406644:	8b d9                	mov    %ecx,%ebx
406646:	8b 03                	mov    (%ebx),%eax
406648:	57                   	push   %edi
406649:	8b 78 f4             	mov    -0xc(%eax),%edi
40664c:	2b f0                	sub    %eax,%esi
40664e:	8b 45 0c             	mov    0xc(%ebp),%eax
406651:	03 c7                	add    %edi,%eax
406653:	50                   	push   %eax
406654:	89 45 fc             	mov    %eax,-0x4(%ebp)
406657:	e8 34 ab ff ff       	call   0x401190
40665c:	3b f7                	cmp    %edi,%esi
40665e:	77 04                	ja     0x406664
406660:	03 f0                	add    %eax,%esi
406662:	eb 03                	jmp    0x406667
406664:	8b 75 08             	mov    0x8(%ebp),%esi
406667:	ff 75 0c             	push   0xc(%ebp)
40666a:	03 c7                	add    %edi,%eax
40666c:	56                   	push   %esi
40666d:	50                   	push   %eax
40666e:	e8 fd 11 01 00       	call   0x417870
406673:	83 c4 0c             	add    $0xc,%esp
406676:	ff 75 fc             	push   -0x4(%ebp)
406679:	8b cb                	mov    %ebx,%ecx
40667b:	e8 15 ab ff ff       	call   0x401195
406680:	5f                   	pop    %edi
406681:	5e                   	pop    %esi
406682:	5b                   	pop    %ebx
406683:	c9                   	leave
406684:	c2 08 00             	ret    $0x8
406687:	56                   	push   %esi
406688:	ff 74 24 08          	push   0x8(%esp)
40668c:	8b f1                	mov    %ecx,%esi
40668e:	e8 80 ff ff ff       	call   0x406613
406693:	8b c6                	mov    %esi,%eax
406695:	5e                   	pop    %esi
406696:	c2 04 00             	ret    $0x4
406699:	56                   	push   %esi
40669a:	ff 74 24 08          	push   0x8(%esp)
40669e:	8b f1                	mov    %ecx,%esi
4066a0:	e8 6e ff ff ff       	call   0x406613
4066a5:	8b c6                	mov    %esi,%eax
4066a7:	5e                   	pop    %esi
4066a8:	c2 04 00             	ret    $0x4
4066ab:	c3                   	ret
4066ac:	c7 01 b4 9c 48 00    	movl   $0x489cb4,(%ecx)
4066b2:	c3                   	ret
4066b3:	c7 01 cc 9c 48 00    	movl   $0x489ccc,(%ecx)
4066b9:	c3                   	ret
4066ba:	c7 01 e4 9c 48 00    	movl   $0x489ce4,(%ecx)
4066c0:	c3                   	ret
4066c1:	ff 74 24 04          	push   0x4(%esp)
4066c5:	8b d1                	mov    %ecx,%edx
4066c7:	e8 f4 98 03 00       	call   0x43ffc0
4066cc:	83 62 0c 00          	andl   $0x0,0xc(%edx)
4066d0:	83 62 10 00          	andl   $0x0,0x10(%edx)
4066d4:	8b c2                	mov    %edx,%eax
4066d6:	c2 04 00             	ret    $0x4
4066d9:	56                   	push   %esi
4066da:	8b f1                	mov    %ecx,%esi
4066dc:	e8 cb ff ff ff       	call   0x4066ac
4066e1:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4066e6:	74 07                	je     0x4066ef
4066e8:	56                   	push   %esi
4066e9:	e8 92 99 03 00       	call   0x440080
4066ee:	59                   	pop    %ecx
4066ef:	8b c6                	mov    %esi,%eax
4066f1:	5e                   	pop    %esi
4066f2:	c2 04 00             	ret    $0x4
4066f5:	56                   	push   %esi
4066f6:	ff 74 24 08          	push   0x8(%esp)
4066fa:	8b f1                	mov    %ecx,%esi
4066fc:	e8 c0 ff ff ff       	call   0x4066c1
406701:	8b 44 24 0c          	mov    0xc(%esp),%eax
406705:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
40670b:	c7 06 b4 9c 48 00    	movl   $0x489cb4,(%esi)
406711:	8b c6                	mov    %esi,%eax
406713:	5e                   	pop    %esi
406714:	c2 08 00             	ret    $0x8
406717:	56                   	push   %esi
406718:	8b f1                	mov    %ecx,%esi
40671a:	e8 94 ff ff ff       	call   0x4066b3
40671f:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
406724:	74 07                	je     0x40672d
406726:	56                   	push   %esi
406727:	e8 54 99 03 00       	call   0x440080
40672c:	59                   	pop    %ecx
40672d:	8b c6                	mov    %esi,%eax
40672f:	5e                   	pop    %esi
406730:	c2 04 00             	ret    $0x4
406733:	56                   	push   %esi
406734:	ff 74 24 08          	push   0x8(%esp)
406738:	8b f1                	mov    %ecx,%esi
40673a:	e8 82 ff ff ff       	call   0x4066c1
40673f:	8b 44 24 0c          	mov    0xc(%esp),%eax
406743:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
406749:	c7 06 cc 9c 48 00    	movl   $0x489ccc,(%esi)
40674f:	8b c6                	mov    %esi,%eax
406751:	5e                   	pop    %esi
406752:	c2 08 00             	ret    $0x8
406755:	56                   	push   %esi
406756:	8b f1                	mov    %ecx,%esi
406758:	e8 5d ff ff ff       	call   0x4066ba
40675d:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
406762:	74 07                	je     0x40676b
406764:	56                   	push   %esi
406765:	e8 16 99 03 00       	call   0x440080
40676a:	59                   	pop    %ecx
40676b:	8b c6                	mov    %esi,%eax
40676d:	5e                   	pop    %esi
40676e:	c2 04 00             	ret    $0x4
406771:	56                   	push   %esi
406772:	ff 74 24 08          	push   0x8(%esp)
406776:	8b f1                	mov    %ecx,%esi
406778:	e8 44 ff ff ff       	call   0x4066c1
40677d:	8b 44 24 0c          	mov    0xc(%esp),%eax
406781:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
406787:	c7 06 e4 9c 48 00    	movl   $0x489ce4,(%esi)
40678d:	8b c6                	mov    %esi,%eax
40678f:	5e                   	pop    %esi
406790:	c2 08 00             	ret    $0x8
406793:	e9 1f 16 01 00       	jmp    0x417db7
406798:	e9 41 16 01 00       	jmp    0x417dde
40679d:	55                   	push   %ebp
40679e:	8b ec                	mov    %esp,%ebp
4067a0:	83 ec 24             	sub    $0x24,%esp
4067a3:	8b 45 1c             	mov    0x1c(%ebp),%eax
4067a6:	89 45 dc             	mov    %eax,-0x24(%ebp)
4067a9:	8b 45 18             	mov    0x18(%ebp),%eax
4067ac:	89 45 e0             	mov    %eax,-0x20(%ebp)
4067af:	8b 45 14             	mov    0x14(%ebp),%eax
4067b2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4067b5:	8b 45 10             	mov    0x10(%ebp),%eax
4067b8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4067bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4067be:	48                   	dec    %eax
4067bf:	89 45 ec             	mov    %eax,-0x14(%ebp)
4067c2:	8b 45 08             	mov    0x8(%ebp),%eax
4067c5:	05 94 f8 ff ff       	add    $0xfffff894,%eax
4067ca:	89 45 f0             	mov    %eax,-0x10(%ebp)
4067cd:	8b 45 20             	mov    0x20(%ebp),%eax
4067d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4067d3:	56                   	push   %esi
4067d4:	8d 45 dc             	lea    -0x24(%ebp),%eax
4067d7:	50                   	push   %eax
4067d8:	8b f1                	mov    %ecx,%esi
4067da:	e8 ee 19 01 00       	call   0x4181cd
4067df:	89 06                	mov    %eax,(%esi)
4067e1:	23 c2                	and    %edx,%eax
4067e3:	83 f8 ff             	cmp    $0xffffffff,%eax
4067e6:	59                   	pop    %ecx
4067e7:	89 56 04             	mov    %edx,0x4(%esi)
4067ea:	75 0a                	jne    0x4067f6
4067ec:	68 57 00 07 80       	push   $0x80070057
4067f1:	e8 f4 a9 ff ff       	call   0x4011ea
4067f6:	8b c6                	mov    %esi,%eax
4067f8:	5e                   	pop    %esi
4067f9:	c9                   	leave
4067fa:	c2 1c 00             	ret    $0x1c
4067fd:	55                   	push   %ebp
4067fe:	8b ec                	mov    %esp,%ebp
406800:	51                   	push   %ecx
406801:	51                   	push   %ecx
406802:	8b 45 08             	mov    0x8(%ebp),%eax
406805:	56                   	push   %esi
406806:	8b f1                	mov    %ecx,%esi
406808:	66 8b 08             	mov    (%eax),%cx
40680b:	66 81 f9 6c 07       	cmp    $0x76c,%cx
406810:	73 09                	jae    0x40681b
406812:	83 26 00             	andl   $0x0,(%esi)
406815:	83 66 04 00          	andl   $0x0,0x4(%esi)
406819:	eb 33                	jmp    0x40684e
40681b:	ff 75 0c             	push   0xc(%ebp)
40681e:	0f b7 50 0c          	movzwl 0xc(%eax),%edx
406822:	52                   	push   %edx
406823:	0f b7 50 0a          	movzwl 0xa(%eax),%edx
406827:	52                   	push   %edx
406828:	0f b7 50 08          	movzwl 0x8(%eax),%edx
40682c:	52                   	push   %edx
40682d:	0f b7 50 06          	movzwl 0x6(%eax),%edx
406831:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406835:	52                   	push   %edx
406836:	50                   	push   %eax
406837:	0f b7 c1             	movzwl %cx,%eax
40683a:	50                   	push   %eax
40683b:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40683e:	e8 5a ff ff ff       	call   0x40679d
406843:	8b 45 f8             	mov    -0x8(%ebp),%eax
406846:	89 06                	mov    %eax,(%esi)
406848:	8b 45 fc             	mov    -0x4(%ebp),%eax
40684b:	89 46 04             	mov    %eax,0x4(%esi)
40684e:	8b c6                	mov    %esi,%eax
406850:	5e                   	pop    %esi
406851:	c9                   	leave
406852:	c2 08 00             	ret    $0x8
406855:	55                   	push   %ebp
406856:	8b ec                	mov    %esp,%ebp
406858:	83 ec 20             	sub    $0x20,%esp
40685b:	56                   	push   %esi
40685c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40685f:	50                   	push   %eax
406860:	ff 75 08             	push   0x8(%ebp)
406863:	8b f1                	mov    %ecx,%esi
406865:	ff 15 28 03 4b 00    	call   *0x4b0328
40686b:	85 c0                	test   %eax,%eax
40686d:	74 12                	je     0x406881
40686f:	8d 45 e0             	lea    -0x20(%ebp),%eax
406872:	50                   	push   %eax
406873:	8d 45 f0             	lea    -0x10(%ebp),%eax
406876:	50                   	push   %eax
406877:	ff 15 2c 03 4b 00    	call   *0x4b032c
40687d:	85 c0                	test   %eax,%eax
40687f:	75 11                	jne    0x406892
406881:	83 26 00             	andl   $0x0,(%esi)
406884:	83 66 04 00          	andl   $0x0,0x4(%esi)
406888:	68 57 00 07 80       	push   $0x80070057
40688d:	e8 58 a9 ff ff       	call   0x4011ea
406892:	ff 75 0c             	push   0xc(%ebp)
406895:	8d 45 e0             	lea    -0x20(%ebp),%eax
406898:	50                   	push   %eax
406899:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40689c:	e8 5c ff ff ff       	call   0x4067fd
4068a1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4068a4:	89 06                	mov    %eax,(%esi)
4068a6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4068a9:	89 46 04             	mov    %eax,0x4(%esi)
4068ac:	8b c6                	mov    %esi,%eax
4068ae:	5e                   	pop    %esi
4068af:	c9                   	leave
4068b0:	c2 08 00             	ret    $0x8
4068b3:	ff 74 24 04          	push   0x4(%esp)
4068b7:	e8 a9 80 03 00       	call   0x43e965
4068bc:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4068c0:	89 08                	mov    %ecx,(%eax)
4068c2:	c2 08 00             	ret    $0x8
4068c5:	6a 08                	push   $0x8
4068c7:	68 08 a0 48 00       	push   $0x48a008
4068cc:	e8 17 19 01 00       	call   0x4181e8
4068d1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4068d5:	83 c1 08             	add    $0x8,%ecx
4068d8:	51                   	push   %ecx
4068d9:	ff 15 18 03 4b 00    	call   *0x4b0318
4068df:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4068e3:	33 c0                	xor    %eax,%eax
4068e5:	40                   	inc    %eax
4068e6:	eb 0d                	jmp    0x4068f5
4068e8:	33 c0                	xor    %eax,%eax