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)
415931:	42                   	inc    %edx
415932:	89 15 bc 67 43 00    	mov    %edx,0x4367bc
415938:	b3 01                	mov    $0x1,%bl
41593a:	84 db                	test   %bl,%bl
41593c:	75 9a                	jne    0x4158d8
41593e:	eb 8d                	jmp    0x4158cd
415940:	6a 14                	push   $0x14
415942:	6a 00                	push   $0x0
415944:	ff 15 34 a1 44 00    	call   *0x44a134
41594a:	50                   	push   %eax
41594b:	ff 15 28 a1 44 00    	call   *0x44a128
415951:	8b c8                	mov    %eax,%ecx
415953:	8b 15 bc 67 43 00    	mov    0x4367bc,%edx
415959:	89 0d b8 67 43 00    	mov    %ecx,0x4367b8
41595f:	eb c7                	jmp    0x415928
415961:	8d 04 95 04 00 00 00 	lea    0x4(,%edx,4),%eax
415968:	50                   	push   %eax
415969:	51                   	push   %ecx
41596a:	6a 00                	push   $0x0
41596c:	ff 15 34 a1 44 00    	call   *0x44a134
415972:	50                   	push   %eax
415973:	ff 15 30 a1 44 00    	call   *0x44a130
415979:	8b c8                	mov    %eax,%ecx
41597b:	85 c9                	test   %ecx,%ecx
41597d:	0f 84 88 bc 00 00    	je     0x42160b
415983:	ff 05 c0 67 43 00    	incl   0x4367c0
415989:	eb c8                	jmp    0x415953
41598b:	ff 75 10             	push   0x10(%ebp)
41598e:	57                   	push   %edi
41598f:	ff 15 d4 a0 44 00    	call   *0x44a0d4
415995:	85 c0                	test   %eax,%eax
415997:	74 1b                	je     0x4159b4
415999:	8b 3e                	mov    (%esi),%edi
41599b:	e9 28 ff ff ff       	jmp    0x4158c8
4159a0:	8b c8                	mov    %eax,%ecx
4159a2:	ff 15 c4 a4 44 00    	call   *0x44a4c4
4159a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4159ab:	ff d1                	call   *%ecx
4159ad:	8b 3e                	mov    (%esi),%edi
4159af:	e9 46 ff ff ff       	jmp    0x4158fa
4159b4:	ff 36                	push   (%esi)
4159b6:	ff 15 d8 a0 44 00    	call   *0x44a0d8
4159bc:	83 0e ff             	orl    $0xffffffff,(%esi)
4159bf:	83 cf ff             	or     $0xffffffff,%edi
4159c2:	e9 44 ff ff ff       	jmp    0x41590b
4159c7:	cc                   	int3
4159c8:	cc                   	int3
4159c9:	cc                   	int3
4159ca:	cc                   	int3
4159cb:	cc                   	int3
4159cc:	cc                   	int3
4159cd:	cc                   	int3
4159ce:	cc                   	int3
4159cf:	cc                   	int3
4159d0:	8b ff                	mov    %edi,%edi
4159d2:	55                   	push   %ebp
4159d3:	8b ec                	mov    %esp,%ebp
4159d5:	8b 45 08             	mov    0x8(%ebp),%eax
4159d8:	8a 4d 0c             	mov    0xc(%ebp),%cl
4159db:	f6 d1                	not    %cl
4159dd:	6a 00                	push   $0x0
4159df:	22 08                	and    (%eax),%cl
4159e1:	f6 c1 16             	test   $0x16,%cl
4159e4:	58                   	pop    %eax
4159e5:	0f 94 c0             	sete   %al
4159e8:	5d                   	pop    %ebp
4159e9:	c2 08 00             	ret    $0x8
4159ec:	cc                   	int3
4159ed:	cc                   	int3
4159ee:	cc                   	int3
4159ef:	cc                   	int3
4159f0:	33 c0                	xor    %eax,%eax
4159f2:	40                   	inc    %eax
4159f3:	c2 08 00             	ret    $0x8
4159f6:	8b ff                	mov    %edi,%edi
4159f8:	56                   	push   %esi
4159f9:	8b f1                	mov    %ecx,%esi
4159fb:	8b 16                	mov    (%esi),%edx
4159fd:	0f b7 02             	movzwl (%edx),%eax
415a00:	8b c8                	mov    %eax,%ecx
415a02:	66 85 c0             	test   %ax,%ax
415a05:	74 0a                	je     0x415a11
415a07:	57                   	push   %edi
415a08:	8b fa                	mov    %edx,%edi
415a0a:	66 83 f9 20          	cmp    $0x20,%cx
415a0e:	76 0b                	jbe    0x415a1b
415a10:	5f                   	pop    %edi
415a11:	33 c0                	xor    %eax,%eax
415a13:	66 39 02             	cmp    %ax,(%edx)
415a16:	5e                   	pop    %esi
415a17:	0f 95 c0             	setne  %al
415a1a:	c3                   	ret
415a1b:	8d 57 02             	lea    0x2(%edi),%edx
415a1e:	89 16                	mov    %edx,(%esi)
415a20:	8b fa                	mov    %edx,%edi
415a22:	0f b7 02             	movzwl (%edx),%eax
415a25:	8b c8                	mov    %eax,%ecx
415a27:	66 85 c0             	test   %ax,%ax
415a2a:	75 de                	jne    0x415a0a
415a2c:	eb e2                	jmp    0x415a10
415a2e:	8b ff                	mov    %edi,%edi
415a30:	56                   	push   %esi
415a31:	8b f1                	mov    %ecx,%esi
415a33:	b9 04 01 00 00       	mov    $0x104,%ecx
415a38:	83 a6 08 02 00 00 00 	andl   $0x0,0x208(%esi)
415a3f:	8b 86 08 02 00 00    	mov    0x208(%esi),%eax
415a45:	c6 86 0c 02 00 00 01 	movb   $0x1,0x20c(%esi)
415a4c:	89 8e 10 02 00 00    	mov    %ecx,0x210(%esi)
415a52:	75 02                	jne    0x415a56
415a54:	8b c6                	mov    %esi,%eax
415a56:	51                   	push   %ecx
415a57:	6a 00                	push   $0x0
415a59:	50                   	push   %eax
415a5a:	e8 5e 25 00 00       	call   0x417fbd
415a5f:	83 c4 0c             	add    $0xc,%esp
415a62:	8b c6                	mov    %esi,%eax
415a64:	5e                   	pop    %esi
415a65:	c3                   	ret
415a66:	cc                   	int3
415a67:	cc                   	int3
415a68:	cc                   	int3
415a69:	cc                   	int3
415a6a:	cc                   	int3
415a6b:	cc                   	int3
415a6c:	cc                   	int3
415a6d:	cc                   	int3
415a6e:	cc                   	int3
415a6f:	cc                   	int3
415a70:	8b ff                	mov    %edi,%edi
415a72:	55                   	push   %ebp
415a73:	8b ec                	mov    %esp,%ebp
415a75:	8b 4d 08             	mov    0x8(%ebp),%ecx
415a78:	8b 49 3c             	mov    0x3c(%ecx),%ecx
415a7b:	e8 06 00 00 00       	call   0x415a86
415a80:	5d                   	pop    %ebp
415a81:	c2 04 00             	ret    $0x4
415a84:	cc                   	int3
415a85:	cc                   	int3
415a86:	8b ff                	mov    %edi,%edi
415a88:	55                   	push   %ebp
415a89:	8b ec                	mov    %esp,%ebp
415a8b:	83 e4 f8             	and    $0xfffffff8,%esp
415a8e:	81 ec 9c 05 00 00    	sub    $0x59c,%esp
415a94:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
415a99:	33 c4                	xor    %esp,%eax
415a9b:	89 84 24 98 05 00 00 	mov    %eax,0x598(%esp)
415aa2:	53                   	push   %ebx
415aa3:	56                   	push   %esi
415aa4:	57                   	push   %edi
415aa5:	be 00 36 40 00       	mov    $0x403600,%esi
415aaa:	83 4c 24 4c ff       	orl    $0xffffffff,0x4c(%esp)
415aaf:	8d bc 24 88 03 00 00 	lea    0x388(%esp),%edi
415ab6:	89 4c 24 28          	mov    %ecx,0x28(%esp)
415aba:	33 c0                	xor    %eax,%eax
415abc:	c7 44 24 44 ff ff 00 	movl   $0xffff,0x44(%esp)
415ac3:	00
415ac4:	33 c9                	xor    %ecx,%ecx
415ac6:	33 db                	xor    %ebx,%ebx
415ac8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415ac9:	43                   	inc    %ebx
415aca:	6a 48                	push   $0x48
415acc:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
415ad0:	88 4c 24 1f          	mov    %cl,0x1f(%esp)
415ad4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415ad5:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
415ad9:	89 4c 24 64          	mov    %ecx,0x64(%esp)
415add:	89 4c 24 58          	mov    %ecx,0x58(%esp)
415ae1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415ae2:	89 4c 24 34          	mov    %ecx,0x34(%esp)
415ae6:	88 4c 24 1e          	mov    %cl,0x1e(%esp)
415aea:	88 4c 24 27          	mov    %cl,0x27(%esp)
415aee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415aef:	8d 7c 24 74          	lea    0x74(%esp),%edi
415af3:	88 4c 24 25          	mov    %cl,0x25(%esp)
415af7:	ab                   	stos   %eax,%es:(%edi)