4115a9:	f6 c1 04             	test   $0x4,%cl
4115ac:	74 03                	je     0x4115b1
4115ae:	83 c8 08             	or     $0x8,%eax
4115b1:	f6 c1 02             	test   $0x2,%cl
4115b4:	74 03                	je     0x4115b9
4115b6:	83 c8 10             	or     $0x10,%eax
4115b9:	f6 c1 01             	test   $0x1,%cl
4115bc:	74 03                	je     0x4115c1
4115be:	83 c8 20             	or     $0x20,%eax
4115c1:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
4115c7:	74 03                	je     0x4115cc
4115c9:	83 c8 02             	or     $0x2,%eax
4115cc:	56                   	push   %esi
4115cd:	8b d1                	mov    %ecx,%edx
4115cf:	be 00 03 00 00       	mov    $0x300,%esi
4115d4:	57                   	push   %edi
4115d5:	bf 00 02 00 00       	mov    $0x200,%edi
4115da:	23 d6                	and    %esi,%edx
4115dc:	74 23                	je     0x411601
4115de:	81 fa 00 01 00 00    	cmp    $0x100,%edx
4115e4:	74 16                	je     0x4115fc
4115e6:	3b d7                	cmp    %edi,%edx
4115e8:	74 0b                	je     0x4115f5
4115ea:	3b d6                	cmp    %esi,%edx
4115ec:	75 13                	jne    0x411601
4115ee:	0d 00 0c 00 00       	or     $0xc00,%eax
4115f3:	eb 0c                	jmp    0x411601
4115f5:	0d 00 08 00 00       	or     $0x800,%eax
4115fa:	eb 05                	jmp    0x411601
4115fc:	0d 00 04 00 00       	or     $0x400,%eax
411601:	8b d1                	mov    %ecx,%edx
411603:	81 e2 00 00 03 00    	and    $0x30000,%edx
411609:	74 0c                	je     0x411617
41160b:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
411611:	75 06                	jne    0x411619
411613:	0b c7                	or     %edi,%eax
411615:	eb 02                	jmp    0x411619
411617:	0b c6                	or     %esi,%eax
411619:	5f                   	pop    %edi
41161a:	5e                   	pop    %esi
41161b:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
411621:	74 05                	je     0x411628
411623:	0d 00 10 00 00       	or     $0x1000,%eax
411628:	5d                   	pop    %ebp
411629:	c3                   	ret
41162a:	8b ff                	mov    %edi,%edi
41162c:	55                   	push   %ebp
41162d:	8b ec                	mov    %esp,%ebp
41162f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
411633:	75 15                	jne    0x41164a
411635:	e8 cd 66 ff ff       	call   0x407d07
41163a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
411640:	e8 e9 65 ff ff       	call   0x407c2e
411645:	83 c8 ff             	or     $0xffffffff,%eax
411648:	5d                   	pop    %ebp
411649:	c3                   	ret
41164a:	ff 75 08             	push   0x8(%ebp)
41164d:	6a 00                	push   $0x0
41164f:	ff 35 c4 46 42 00    	push   0x4246c4
411655:	ff 15 80 b0 41 00    	call   *0x41b080
41165b:	5d                   	pop    %ebp
41165c:	c3                   	ret
41165d:	8b ff                	mov    %edi,%edi
41165f:	55                   	push   %ebp
411660:	8b ec                	mov    %esp,%ebp
411662:	57                   	push   %edi
411663:	8b 7d 08             	mov    0x8(%ebp),%edi
411666:	85 ff                	test   %edi,%edi
411668:	75 0b                	jne    0x411675
41166a:	ff 75 0c             	push   0xc(%ebp)
41166d:	e8 ec 81 ff ff       	call   0x40985e
411672:	59                   	pop    %ecx
411673:	eb 24                	jmp    0x411699
411675:	56                   	push   %esi
411676:	8b 75 0c             	mov    0xc(%ebp),%esi
411679:	85 f6                	test   %esi,%esi
41167b:	75 09                	jne    0x411686
41167d:	57                   	push   %edi
41167e:	e8 a1 81 ff ff       	call   0x409824
411683:	59                   	pop    %ecx
411684:	eb 10                	jmp    0x411696
411686:	83 fe e0             	cmp    $0xffffffe0,%esi
411689:	76 25                	jbe    0x4116b0
41168b:	e8 77 66 ff ff       	call   0x407d07
411690:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
411696:	33 c0                	xor    %eax,%eax
411698:	5e                   	pop    %esi
411699:	5f                   	pop    %edi
41169a:	5d                   	pop    %ebp
41169b:	c3                   	ret
41169c:	e8 98 7f ff ff       	call   0x409639
4116a1:	85 c0                	test   %eax,%eax
4116a3:	74 e6                	je     0x41168b
4116a5:	56                   	push   %esi
4116a6:	e8 6f 7b ff ff       	call   0x40921a
4116ab:	59                   	pop    %ecx
4116ac:	85 c0                	test   %eax,%eax
4116ae:	74 db                	je     0x41168b
4116b0:	56                   	push   %esi
4116b1:	57                   	push   %edi
4116b2:	6a 00                	push   $0x0
4116b4:	ff 35 c4 46 42 00    	push   0x4246c4
4116ba:	ff 15 7c b0 41 00    	call   *0x41b07c
4116c0:	85 c0                	test   %eax,%eax
4116c2:	74 d8                	je     0x41169c
4116c4:	eb d2                	jmp    0x411698
4116c6:	8b ff                	mov    %edi,%edi
4116c8:	55                   	push   %ebp
4116c9:	8b ec                	mov    %esp,%ebp
4116cb:	51                   	push   %ecx
4116cc:	51                   	push   %ecx
4116cd:	66 8b 45 08          	mov    0x8(%ebp),%ax
4116d1:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4116d6:	66 3b c1             	cmp    %cx,%ax
4116d9:	75 04                	jne    0x4116df
4116db:	33 c0                	xor    %eax,%eax
4116dd:	eb 42                	jmp    0x411721
4116df:	b9 00 01 00 00       	mov    $0x100,%ecx
4116e4:	66 3b c1             	cmp    %cx,%ax
4116e7:	73 0e                	jae    0x4116f7
4116e9:	0f b7 c8             	movzwl %ax,%ecx
4116ec:	a1 c4 37 42 00       	mov    0x4237c4,%eax
4116f1:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4116f5:	eb 24                	jmp    0x41171b
4116f7:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
4116fb:	33 c0                	xor    %eax,%eax
4116fd:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
411701:	8d 45 fc             	lea    -0x4(%ebp),%eax
411704:	50                   	push   %eax
411705:	6a 01                	push   $0x1
411707:	8d 45 f8             	lea    -0x8(%ebp),%eax
41170a:	50                   	push   %eax
41170b:	6a 01                	push   $0x1
41170d:	ff 15 ec b0 41 00    	call   *0x41b0ec
411713:	85 c0                	test   %eax,%eax
411715:	74 c4                	je     0x4116db
411717:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
41171b:	0f b7 4d 0c          	movzwl 0xc(%ebp),%ecx
41171f:	23 c1                	and    %ecx,%eax
411721:	8b e5                	mov    %ebp,%esp
411723:	5d                   	pop    %ebp
411724:	c3                   	ret
411725:	8b ff                	mov    %edi,%edi
411727:	55                   	push   %ebp
411728:	8b ec                	mov    %esp,%ebp
41172a:	83 ec 24             	sub    $0x24,%esp
41172d:	a1 0c 30 42 00       	mov    0x42300c,%eax
411732:	33 c5                	xor    %ebp,%eax
411734:	89 45 fc             	mov    %eax,-0x4(%ebp)
411737:	53                   	push   %ebx
411738:	ff 75 10             	push   0x10(%ebp)
41173b:	8b 5d 08             	mov    0x8(%ebp),%ebx
41173e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
411741:	e8 6b 3f ff ff       	call   0x4056b1
411746:	8d 43 01             	lea    0x1(%ebx),%eax
411749:	3d 00 01 00 00       	cmp    $0x100,%eax
41174e:	77 0b                	ja     0x41175b
411750:	8b 45 e4             	mov    -0x1c(%ebp),%eax
411753:	8b 00                	mov    (%eax),%eax
411755:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
411759:	eb 7a                	jmp    0x4117d5
41175b:	8b c3                	mov    %ebx,%eax
41175d:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
411760:	c1 f8 08             	sar    $0x8,%eax
411763:	89 45 dc             	mov    %eax,-0x24(%ebp)
411766:	51                   	push   %ecx
411767:	0f b6 c0             	movzbl %al,%eax
41176a:	50                   	push   %eax
41176b:	e8 87 00 00 00       	call   0x4117f7
411770:	59                   	pop    %ecx
411771:	59                   	pop    %ecx
411772:	85 c0                	test   %eax,%eax
411774:	74 13                	je     0x411789
411776:	8b 45 dc             	mov    -0x24(%ebp),%eax
411779:	88 45 f0             	mov    %al,-0x10(%ebp)
41177c:	33 c0                	xor    %eax,%eax
41177e:	6a 02                	push   $0x2
411780:	88 5d f1             	mov    %bl,-0xf(%ebp)
411783:	88 45 f2             	mov    %al,-0xe(%ebp)
411786:	59                   	pop    %ecx
411787:	eb 0b                	jmp    0x411794
411789:	33 c0                	xor    %eax,%eax
41178b:	88 5d f0             	mov    %bl,-0x10(%ebp)
41178e:	33 c9                	xor    %ecx,%ecx
411790:	88 45 f1             	mov    %al,-0xf(%ebp)
411793:	41                   	inc    %ecx
411794:	89 45 f4             	mov    %eax,-0xc(%ebp)
411797:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
41179b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41179e:	6a 01                	push   $0x1
4117a0:	ff 70 08             	push   0x8(%eax)
4117a3:	8d 45 f4             	lea    -0xc(%ebp),%eax
4117a6:	50                   	push   %eax
4117a7:	51                   	push   %ecx
4117a8:	8d 45 f0             	lea    -0x10(%ebp),%eax
4117ab:	50                   	push   %eax
4117ac:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4117af:	6a 01                	push   $0x1
4117b1:	50                   	push   %eax
4117b2:	e8 81 f4 ff ff       	call   0x410c38
4117b7:	83 c4 1c             	add    $0x1c,%esp
4117ba:	85 c0                	test   %eax,%eax
4117bc:	75 13                	jne    0x4117d1
4117be:	38 45 ec             	cmp    %al,-0x14(%ebp)
4117c1:	74 0a                	je     0x4117cd
4117c3:	8b 45 e0             	mov    -0x20(%ebp),%eax
4117c6:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
4117cd:	33 c0                	xor    %eax,%eax
4117cf:	eb 17                	jmp    0x4117e8
4117d1:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
4117d5:	23 45 0c             	and    0xc(%ebp),%eax
4117d8:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
4117dc:	74 0a                	je     0x4117e8
4117de:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4117e1:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
4117e8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4117eb:	33 cd                	xor    %ebp,%ecx
4117ed:	5b                   	pop    %ebx
4117ee:	e8 63 17 ff ff       	call   0x402f56
4117f3:	8b e5                	mov    %ebp,%esp
4117f5:	5d                   	pop    %ebp
4117f6:	c3                   	ret
4117f7:	8b ff                	mov    %edi,%edi
4117f9:	55                   	push   %ebp
4117fa:	8b ec                	mov    %esp,%ebp
4117fc:	83 ec 10             	sub    $0x10,%esp
4117ff:	ff 75 0c             	push   0xc(%ebp)
411802:	8d 4d f0             	lea    -0x10(%ebp),%ecx
411805:	e8 a7 3e ff ff       	call   0x4056b1
41180a:	8b 45 f4             	mov    -0xc(%ebp),%eax
41180d:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
411811:	8b 00                	mov    (%eax),%eax
411813:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
411817:	25 00 80 00 00       	and    $0x8000,%eax
41181c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
411820:	74 0a                	je     0x41182c
411822:	8b 4d f0             	mov    -0x10(%ebp),%ecx
411825:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
41182c:	8b e5                	mov    %ebp,%esp
41182e:	5d                   	pop    %ebp
41182f:	c3                   	ret
411830:	8b ff                	mov    %edi,%edi
411832:	55                   	push   %ebp
411833:	8b ec                	mov    %esp,%ebp
411835:	51                   	push   %ecx
411836:	51                   	push   %ecx
411837:	a1 0c 30 42 00       	mov    0x42300c,%eax
41183c:	33 c5                	xor    %ebp,%eax
41183e:	89 45 fc             	mov    %eax,-0x4(%ebp)
411841:	53                   	push   %ebx
411842:	56                   	push   %esi
411843:	8b 75 18             	mov    0x18(%ebp),%esi
411846:	57                   	push   %edi
411847:	85 f6                	test   %esi,%esi
411849:	7e 14                	jle    0x41185f
41184b:	56                   	push   %esi
41184c:	ff 75 14             	push   0x14(%ebp)
41184f:	e8 0d 42 00 00       	call   0x415a61
411854:	59                   	pop    %ecx
411855:	3b c6                	cmp    %esi,%eax
411857:	59                   	pop    %ecx
411858:	8d 70 01             	lea    0x1(%eax),%esi
41185b:	7c 02                	jl     0x41185f
41185d:	8b f0                	mov    %eax,%esi
41185f:	8b 7d 24             	mov    0x24(%ebp),%edi
411862:	85 ff                	test   %edi,%edi
411864:	75 0b                	jne    0x411871
411866:	8b 45 08             	mov    0x8(%ebp),%eax
411869:	8b 00                	mov    (%eax),%eax
41186b:	8b 78 08             	mov    0x8(%eax),%edi
41186e:	89 7d 24             	mov    %edi,0x24(%ebp)
411871:	33 c0                	xor    %eax,%eax
411873:	39 45 28             	cmp    %eax,0x28(%ebp)
411876:	6a 00                	push   $0x0
411878:	6a 00                	push   $0x0
41187a:	56                   	push   %esi
41187b:	ff 75 14             	push   0x14(%ebp)
41187e:	0f 95 c0             	setne  %al
411881:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
411888:	50                   	push   %eax
411889:	57                   	push   %edi
41188a:	ff 15 2c b1 41 00    	call   *0x41b12c
411890:	89 45 f8             	mov    %eax,-0x8(%ebp)
411893:	85 c0                	test   %eax,%eax
411895:	0f 84 8d 01 00 00    	je     0x411a28
41189b:	8d 14 00             	lea    (%eax,%eax,1),%edx
41189e:	8d 4a 08             	lea    0x8(%edx),%ecx
4118a1:	3b d1                	cmp    %ecx,%edx
4118a3:	1b c0                	sbb    %eax,%eax
4118a5:	85 c1                	test   %eax,%ecx
4118a7:	74 52                	je     0x4118fb
4118a9:	8d 4a 08             	lea    0x8(%edx),%ecx
4118ac:	3b d1                	cmp    %ecx,%edx
4118ae:	1b c0                	sbb    %eax,%eax
4118b0:	23 c1                	and    %ecx,%eax
4118b2:	8d 4a 08             	lea    0x8(%edx),%ecx
4118b5:	3d 00 04 00 00       	cmp    $0x400,%eax
4118ba:	77 1d                	ja     0x4118d9
4118bc:	3b d1                	cmp    %ecx,%edx
4118be:	1b c0                	sbb    %eax,%eax
4118c0:	23 c1                	and    %ecx,%eax
4118c2:	e8 09 6b 00 00       	call   0x4183d0
4118c7:	8b dc                	mov    %esp,%ebx
4118c9:	85 db                	test   %ebx,%ebx
4118cb:	0f 84 4c 01 00 00    	je     0x411a1d
4118d1:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
4118d7:	eb 1d                	jmp    0x4118f6
4118d9:	3b d1                	cmp    %ecx,%edx
4118db:	1b c0                	sbb    %eax,%eax
4118dd:	23 c1                	and    %ecx,%eax
4118df:	50                   	push   %eax
4118e0:	e8 79 7f ff ff       	call   0x40985e
4118e5:	8b d8                	mov    %eax,%ebx
4118e7:	59                   	pop    %ecx
4118e8:	85 db                	test   %ebx,%ebx
4118ea:	0f 84 2d 01 00 00    	je     0x411a1d
4118f0:	c7 03 dd dd 00 00    	movl   $0xdddd,(%ebx)
4118f6:	83 c3 08             	add    $0x8,%ebx
4118f9:	eb 02                	jmp    0x4118fd
4118fb:	33 db                	xor    %ebx,%ebx
4118fd:	85 db                	test   %ebx,%ebx
4118ff:	0f 84 18 01 00 00    	je     0x411a1d
411905:	ff 75 f8             	push   -0x8(%ebp)
411908:	53                   	push   %ebx
411909:	56                   	push   %esi
41190a:	ff 75 14             	push   0x14(%ebp)
41190d:	6a 01                	push   $0x1
41190f:	57                   	push   %edi
411910:	ff 15 2c b1 41 00    	call   *0x41b12c
411916:	85 c0                	test   %eax,%eax
411918:	0f 84 ff 00 00 00    	je     0x411a1d
41191e:	8b 7d f8             	mov    -0x8(%ebp),%edi
411921:	33 c0                	xor    %eax,%eax
411923:	50                   	push   %eax
411924:	50                   	push   %eax
411925:	50                   	push   %eax
411926:	50                   	push   %eax
411927:	50                   	push   %eax
411928:	57                   	push   %edi
411929:	53                   	push   %ebx
41192a:	ff 75 10             	push   0x10(%ebp)
41192d:	ff 75 0c             	push   0xc(%ebp)
411930:	e8 75 a7 ff ff       	call   0x40c0aa
411935:	8b f0                	mov    %eax,%esi
411937:	85 f6                	test   %esi,%esi
411939:	0f 84 de 00 00 00    	je     0x411a1d
41193f:	f7 45 10 00 04 00 00 	testl  $0x400,0x10(%ebp)
411946:	74 38                	je     0x411980
411948:	8b 45 20             	mov    0x20(%ebp),%eax
41194b:	85 c0                	test   %eax,%eax