415599:	d1 fa                	sar    $1,%edx
41559b:	6a 2f                	push   $0x2f
41559d:	89 55 d0             	mov    %edx,-0x30(%ebp)
4155a0:	33 d2                	xor    %edx,%edx
4155a2:	58                   	pop    %eax
4155a3:	88 55 e7             	mov    %dl,-0x19(%ebp)
4155a6:	66 3b c8             	cmp    %ax,%cx
4155a9:	75 4e                	jne    0x4155f9
4155ab:	8d 46 04             	lea    0x4(%esi),%eax
4155ae:	8b da                	mov    %edx,%ebx
4155b0:	66 83 38 2d          	cmpw   $0x2d,(%eax)
4155b4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4155b7:	0f 84 a9 bb 00 00    	je     0x421166
4155bd:	0f b7 c3             	movzwl %bx,%eax
4155c0:	89 45 dc             	mov    %eax,-0x24(%ebp)
4155c3:	0f b7 44 46 04       	movzwl 0x4(%esi,%eax,2),%eax
4155c8:	50                   	push   %eax
4155c9:	ff 15 18 a4 44 00    	call   *0x44a418
4155cf:	0f b7 c0             	movzwl %ax,%eax
4155d2:	59                   	pop    %ecx
4155d3:	83 e8 3f             	sub    $0x3f,%eax
4155d6:	0f 84 14 bc 00 00    	je     0x4211f0
4155dc:	83 e8 12             	sub    $0x12,%eax
4155df:	0f 85 56 ff ff ff    	jne    0x41553b
4155e5:	38 45 e7             	cmp    %al,-0x19(%ebp)
4155e8:	0f 85 8c bb 00 00    	jne    0x42117a
4155ee:	81 0f 00 20 00 00    	orl    $0x2000,(%edi)
4155f4:	e9 58 ff ff ff       	jmp    0x415551
4155f9:	8b de                	mov    %esi,%ebx
4155fb:	8d 4b 02             	lea    0x2(%ebx),%ecx
4155fe:	66 8b 03             	mov    (%ebx),%ax
415601:	83 c3 02             	add    $0x2,%ebx
415604:	66 3b c2             	cmp    %dx,%ax
415607:	75 f5                	jne    0x4155fe
415609:	2b d9                	sub    %ecx,%ebx
41560b:	8b ce                	mov    %esi,%ecx
41560d:	d1 fb                	sar    $1,%ebx
41560f:	e8 4c aa ff ff       	call   0x410060
415614:	50                   	push   %eax
415615:	8d 53 01             	lea    0x1(%ebx),%edx
415618:	8b ce                	mov    %esi,%ecx
41561a:	e8 81 9d ff ff       	call   0x40f3a0
41561f:	8b 47 48             	mov    0x48(%edi),%eax
415622:	85 c0                	test   %eax,%eax
415624:	0f 85 5b bb 00 00    	jne    0x421185
41562a:	8b 5d e0             	mov    -0x20(%ebp),%ebx
41562d:	40                   	inc    %eax
41562e:	8b ce                	mov    %esi,%ecx
415630:	89 47 48             	mov    %eax,0x48(%edi)
415633:	e8 13 af ff ff       	call   0x41054b
415638:	89 03                	mov    %eax,(%ebx)
41563a:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
41563e:	e9 21 ff ff ff       	jmp    0x415564
415643:	8b ff                	mov    %edi,%edi
415645:	55                   	push   %ebp
415646:	8b ec                	mov    %esp,%ebp
415648:	83 ec 0c             	sub    $0xc,%esp
41564b:	56                   	push   %esi
41564c:	33 f6                	xor    %esi,%esi
41564e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
415655:	57                   	push   %edi
415656:	89 75 f8             	mov    %esi,-0x8(%ebp)
415659:	c7 45 f4 0c 00 00 00 	movl   $0xc,-0xc(%ebp)
415660:	e8 fb a9 ff ff       	call   0x410060
415665:	56                   	push   %esi
415666:	68 80 00 00 08       	push   $0x8000080
41566b:	6a 04                	push   $0x4
41566d:	8d 4d f4             	lea    -0xc(%ebp),%ecx
415670:	51                   	push   %ecx
415671:	56                   	push   %esi
415672:	68 00 00 00 40       	push   $0x40000000
415677:	50                   	push   %eax
415678:	ff 15 ac a0 44 00    	call   *0x44a0ac
41567e:	8b f8                	mov    %eax,%edi
415680:	83 ff ff             	cmp    $0xffffffff,%edi
415683:	0f 84 a2 bb 00 00    	je     0x42122b
415689:	6a 08                	push   $0x8
41568b:	57                   	push   %edi
41568c:	ff 15 88 a3 44 00    	call   *0x44a388
415692:	8b f0                	mov    %eax,%esi
415694:	59                   	pop    %ecx
415695:	59                   	pop    %ecx
415696:	83 fe ff             	cmp    $0xffffffff,%esi
415699:	74 06                	je     0x4156a1
41569b:	5f                   	pop    %edi
41569c:	8b c6                	mov    %esi,%eax
41569e:	5e                   	pop    %esi
41569f:	c9                   	leave
4156a0:	c3                   	ret
4156a1:	57                   	push   %edi
4156a2:	ff 15 1c a1 44 00    	call   *0x44a11c
4156a8:	eb f1                	jmp    0x41569b
4156aa:	cc                   	int3
4156ab:	cc                   	int3
4156ac:	cc                   	int3
4156ad:	cc                   	int3
4156ae:	cc                   	int3
4156af:	cc                   	int3
4156b0:	8b ff                	mov    %edi,%edi
4156b2:	55                   	push   %ebp
4156b3:	8b ec                	mov    %esp,%ebp
4156b5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4156b8:	8b 49 3c             	mov    0x3c(%ecx),%ecx
4156bb:	e8 35 fc ff ff       	call   0x4152f5
4156c0:	5d                   	pop    %ebp
4156c1:	c2 04 00             	ret    $0x4
4156c4:	8b ff                	mov    %edi,%edi
4156c6:	55                   	push   %ebp
4156c7:	8b ec                	mov    %esp,%ebp
4156c9:	51                   	push   %ecx
4156ca:	51                   	push   %ecx
4156cb:	53                   	push   %ebx
4156cc:	56                   	push   %esi
4156cd:	57                   	push   %edi
4156ce:	8b f9                	mov    %ecx,%edi
4156d0:	33 db                	xor    %ebx,%ebx
4156d2:	8b f2                	mov    %edx,%esi
4156d4:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4156d7:	8b 07                	mov    (%edi),%eax
4156d9:	83 f8 37             	cmp    $0x37,%eax
4156dc:	0f 8f e8 bc 00 00    	jg     0x4213ca
4156e2:	83 f8 34             	cmp    $0x34,%eax
4156e5:	7d 08                	jge    0x4156ef
4156e7:	85 c0                	test   %eax,%eax
4156e9:	0f 85 5e bb 00 00    	jne    0x42124d
4156ef:	6a 01                	push   $0x1
4156f1:	ff 77 38             	push   0x38(%edi)
4156f4:	8b 55 08             	mov    0x8(%ebp),%edx
4156f7:	8b ce                	mov    %esi,%ecx
4156f9:	e8 28 00 00 00       	call   0x415726
4156fe:	39 5f 3c             	cmp    %ebx,0x3c(%edi)
415701:	74 0e                	je     0x415711
415703:	8b 55 08             	mov    0x8(%ebp),%edx
415706:	8b ce                	mov    %esi,%ecx
415708:	53                   	push   %ebx
415709:	ff 77 3c             	push   0x3c(%edi)
41570c:	e8 15 00 00 00       	call   0x415726
415711:	ff 75 08             	push   0x8(%ebp)
415714:	8b d6                	mov    %esi,%edx
415716:	8b cf                	mov    %edi,%ecx
415718:	e8 ac 00 00 00       	call   0x4157c9
41571d:	5f                   	pop    %edi
41571e:	5e                   	pop    %esi
41571f:	33 c0                	xor    %eax,%eax
415721:	5b                   	pop    %ebx
415722:	c9                   	leave
415723:	c2 04 00             	ret    $0x4
415726:	8b ff                	mov    %edi,%edi
415728:	55                   	push   %ebp
415729:	8b ec                	mov    %esp,%ebp
41572b:	51                   	push   %ecx
41572c:	51                   	push   %ecx
41572d:	53                   	push   %ebx
41572e:	56                   	push   %esi
41572f:	57                   	push   %edi
415730:	8b 7d 08             	mov    0x8(%ebp),%edi
415733:	8b da                	mov    %edx,%ebx
415735:	8b f1                	mov    %ecx,%esi
415737:	85 ff                	test   %edi,%edi
415739:	0f 84 49 be 00 00    	je     0x421588
41573f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415743:	8b d6                	mov    %esi,%edx
415745:	8d 4a 02             	lea    0x2(%edx),%ecx
415748:	66 8b 02             	mov    (%edx),%ax
41574b:	83 c2 02             	add    $0x2,%edx
41574e:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
415752:	75 f4                	jne    0x415748
415754:	2b d1                	sub    %ecx,%edx
415756:	8b cf                	mov    %edi,%ecx
415758:	d1 fa                	sar    $1,%edx
41575a:	8d 41 02             	lea    0x2(%ecx),%eax
41575d:	89 45 f8             	mov    %eax,-0x8(%ebp)
415760:	66 8b 01             	mov    (%ecx),%ax
415763:	83 c1 02             	add    $0x2,%ecx
415766:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
41576a:	75 f4                	jne    0x415760
41576c:	2b 4d f8             	sub    -0x8(%ebp),%ecx
41576f:	8d 42 01             	lea    0x1(%edx),%eax
415772:	d1 f9                	sar    $1,%ecx
415774:	03 c1                	add    %ecx,%eax
415776:	3d 00 20 00 00       	cmp    $0x2000,%eax
41577b:	0f 87 10 be 00 00    	ja     0x421591
415781:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
415785:	74 36                	je     0x4157bd
415787:	8b ce                	mov    %esi,%ecx
415789:	8d 51 02             	lea    0x2(%ecx),%edx
41578c:	66 8b 01             	mov    (%ecx),%ax
41578f:	83 c1 02             	add    $0x2,%ecx
415792:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
415796:	75 f4                	jne    0x41578c
415798:	2b ca                	sub    %edx,%ecx
41579a:	d1 f9                	sar    $1,%ecx
41579c:	6a 20                	push   $0x20
41579e:	58                   	pop    %eax
41579f:	66 39 44 4e fe       	cmp    %ax,-0x2(%esi,%ecx,2)
4157a4:	74 17                	je     0x4157bd
4157a6:	66 39 07             	cmp    %ax,(%edi)
4157a9:	74 12                	je     0x4157bd
4157ab:	57                   	push   %edi
4157ac:	56                   	push   %esi
4157ad:	8b d3                	mov    %ebx,%edx
4157af:	8b ce                	mov    %esi,%ecx
4157b1:	e8 98 c8 ff ff       	call   0x41204e
4157b6:	5f                   	pop    %edi
4157b7:	5e                   	pop    %esi
4157b8:	5b                   	pop    %ebx
4157b9:	c9                   	leave
4157ba:	c2 08 00             	ret    $0x8
4157bd:	57                   	push   %edi
4157be:	8b d3                	mov    %ebx,%edx
4157c0:	8b ce                	mov    %esi,%ecx
4157c2:	e8 79 a4 ff ff       	call   0x40fc40
4157c7:	eb ed                	jmp    0x4157b6
4157c9:	8b ff                	mov    %edi,%edi
4157cb:	55                   	push   %ebp
4157cc:	8b ec                	mov    %esp,%ebp
4157ce:	51                   	push   %ecx
4157cf:	56                   	push   %esi
4157d0:	8b 71 34             	mov    0x34(%ecx),%esi
4157d3:	33 c0                	xor    %eax,%eax
4157d5:	57                   	push   %edi
4157d6:	8b fa                	mov    %edx,%edi
4157d8:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
4157dc:	85 f6                	test   %esi,%esi
4157de:	0f 85 ca bd 00 00    	jne    0x4215ae
4157e4:	5f                   	pop    %edi
4157e5:	5e                   	pop    %esi
4157e6:	c9                   	leave
4157e7:	c2 04 00             	ret    $0x4
4157ea:	8b ff                	mov    %edi,%edi
4157ec:	55                   	push   %ebp
4157ed:	8b ec                	mov    %esp,%ebp
4157ef:	83 ec 10             	sub    $0x10,%esp
4157f2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4157f5:	8b c2                	mov    %edx,%eax
4157f7:	89 45 f8             	mov    %eax,-0x8(%ebp)
4157fa:	ba 00 20 00 00       	mov    $0x2000,%edx
4157ff:	89 55 fc             	mov    %edx,-0x4(%ebp)
415802:	56                   	push   %esi
415803:	85 c9                	test   %ecx,%ecx
415805:	74 45                	je     0x41584c
415807:	68 74 26 40 00       	push   $0x402674
41580c:	8b c8                	mov    %eax,%ecx
41580e:	e8 8d 9b ff ff       	call   0x40f3a0
415813:	6a 00                	push   $0x0
415815:	68 70 0a 44 00       	push   $0x440a70
41581a:	e8 92 27 00 00       	call   0x417fb1
41581f:	59                   	pop    %ecx
415820:	59                   	pop    %ecx
415821:	85 c0                	test   %eax,%eax
415823:	75 27                	jne    0x41584c
415825:	ff 75 fc             	push   -0x4(%ebp)
415828:	8b 55 f8             	mov    -0x8(%ebp),%edx
41582b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41582e:	e8 91 fe ff ff       	call   0x4156c4
415833:	8b 55 fc             	mov    -0x4(%ebp),%edx
415836:	8b f0                	mov    %eax,%esi
415838:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41583b:	68 30 24 40 00       	push   $0x402430
415840:	e8 fb a3 ff ff       	call   0x40fc40
415845:	8b c6                	mov    %esi,%eax
415847:	5e                   	pop    %esi
415848:	c9                   	leave
415849:	c2 04 00             	ret    $0x4
41584c:	33 c0                	xor    %eax,%eax
41584e:	40                   	inc    %eax
41584f:	eb f6                	jmp    0x415847
415851:	8b ff                	mov    %edi,%edi
415853:	55                   	push   %ebp
415854:	8b ec                	mov    %esp,%ebp
415856:	56                   	push   %esi
415857:	57                   	push   %edi
415858:	8b f2                	mov    %edx,%esi
41585a:	8b f9                	mov    %ecx,%edi
41585c:	56                   	push   %esi
41585d:	ff 75 0c             	push   0xc(%ebp)
415860:	ff 15 d4 a0 44 00    	call   *0x44a0d4
415866:	85 c0                	test   %eax,%eax
415868:	75 13                	jne    0x41587d
41586a:	ff 15 80 a0 44 00    	call   *0x44a080
415870:	a3 a8 67 43 00       	mov    %eax,0x4367a8
415875:	32 c0                	xor    %al,%al
415877:	5f                   	pop    %edi
415878:	5e                   	pop    %esi
415879:	5d                   	pop    %ebp
41587a:	c2 08 00             	ret    $0x8
41587d:	ff 75 08             	push   0x8(%ebp)
415880:	8b cf                	mov    %edi,%ecx
415882:	56                   	push   %esi
415883:	ff 15 c4 a4 44 00    	call   *0x44a4c4
415889:	ff d7                	call   *%edi
41588b:	85 c0                	test   %eax,%eax
41588d:	74 cd                	je     0x41585c
41588f:	83 25 a8 67 43 00 00 	andl   $0x0,0x4367a8
415896:	b0 01                	mov    $0x1,%al
415898:	eb dd                	jmp    0x415877
41589a:	8b ff                	mov    %edi,%edi
41589c:	55                   	push   %ebp
41589d:	8b ec                	mov    %esp,%ebp
41589f:	51                   	push   %ecx
4158a0:	53                   	push   %ebx
4158a1:	56                   	push   %esi
4158a2:	57                   	push   %edi
4158a3:	6a 02                	push   $0x2
4158a5:	6a 00                	push   $0x0
4158a7:	33 c0                	xor    %eax,%eax
4158a9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4158ac:	6a 00                	push   $0x0
4158ae:	ff 75 10             	push   0x10(%ebp)
4158b1:	32 db                	xor    %bl,%bl
4158b3:	39 45 0c             	cmp    %eax,0xc(%ebp)
4158b6:	0f 94 c0             	sete   %al
4158b9:	50                   	push   %eax
4158ba:	52                   	push   %edx
4158bb:	ff 15 b8 a0 44 00    	call   *0x44a0b8
4158c1:	8b 75 14             	mov    0x14(%ebp),%esi
4158c4:	8b f8                	mov    %eax,%edi
4158c6:	89 3e                	mov    %edi,(%esi)
4158c8:	83 ff ff             	cmp    $0xffffffff,%edi
4158cb:	75 14                	jne    0x4158e1
4158cd:	ff 15 80 a0 44 00    	call   *0x44a080
4158d3:	a3 a8 67 43 00       	mov    %eax,0x4367a8
4158d8:	8a c3                	mov    %bl,%al
4158da:	5f                   	pop    %edi
4158db:	5e                   	pop    %esi
4158dc:	5b                   	pop    %ebx
4158dd:	c9                   	leave
4158de:	c2 10 00             	ret    $0x10
4158e1:	ff 75 08             	push   0x8(%ebp)
4158e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4158e7:	ff 75 10             	push   0x10(%ebp)
4158ea:	3d d0 59 41 00       	cmp    $0x4159d0,%eax
4158ef:	0f 85 ab 00 00 00    	jne    0x4159a0
4158f5:	e8 d6 00 00 00       	call   0x4159d0
4158fa:	85 c0                	test   %eax,%eax
4158fc:	0f 84 89 00 00 00    	je     0x41598b
415902:	83 25 a8 67 43 00 00 	andl   $0x0,0x4367a8
415909:	b3 01                	mov    $0x1,%bl
41590b:	83 ff ff             	cmp    $0xffffffff,%edi
41590e:	74 2a                	je     0x41593a
415910:	8b 0d b8 67 43 00    	mov    0x4367b8,%ecx
415916:	85 c9                	test   %ecx,%ecx
415918:	74 26                	je     0x415940
41591a:	8b 15 bc 67 43 00    	mov    0x4367bc,%edx
415920:	3b 15 c0 67 43 00    	cmp    0x4367c0,%edx
415926:	7d 39                	jge    0x415961
415928:	85 c9                	test   %ecx,%ecx
41592a:	74 0c                	je     0x415938
41592c:	8b 06                	mov    (%esi),%eax
41592e:	89 04 91             	mov    %eax,(%ecx,%edx,4)