408741:	d1 e8                	shr    $1,%eax
408743:	41                   	inc    %ecx
408744:	84 c3                	test   %al,%bl
408746:	74 f9                	je     0x408741
408748:	ff 75 f0             	push   -0x10(%ebp)
40874b:	52                   	push   %edx
40874c:	51                   	push   %ecx
40874d:	68 79 01 00 00       	push   $0x179
408752:	6a 04                	push   $0x4
408754:	e8 91 5f 00 00       	call   0x40e6ea
408759:	83 c4 14             	add    $0x14,%esp
40875c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408760:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408763:	ff 15 44 32 42 00    	call   *0x423244
408769:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40876c:	ff 15 40 32 42 00    	call   *0x423240
408772:	c7 45 fc 36 00 00 00 	movl   $0x36,-0x4(%ebp)
408779:	8d 55 f0             	lea    -0x10(%ebp),%edx
40877c:	b9 cf 02 00 00       	mov    $0x2cf,%ecx
408781:	e8 bb 60 00 00       	call   0x40e841
408786:	ba 00 00 08 00       	mov    $0x80000,%edx
40878b:	8b ce                	mov    %esi,%ecx
40878d:	8b c2                	mov    %edx,%eax
40878f:	d1 e8                	shr    $1,%eax
408791:	41                   	inc    %ecx
408792:	84 c3                	test   %al,%bl
408794:	74 f9                	je     0x40878f
408796:	ff 75 f0             	push   -0x10(%ebp)
408799:	52                   	push   %edx
40879a:	51                   	push   %ecx
40879b:	68 79 01 00 00       	push   $0x179
4087a0:	6a 04                	push   $0x4
4087a2:	e8 43 5f 00 00       	call   0x40e6ea
4087a7:	83 c4 14             	add    $0x14,%esp
4087aa:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4087ae:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4087b1:	ff 15 44 32 42 00    	call   *0x423244
4087b7:	83 ff 02             	cmp    $0x2,%edi
4087ba:	75 4e                	jne    0x40880a
4087bc:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4087bf:	ff 15 40 32 42 00    	call   *0x423240
4087c5:	c7 45 fc 39 00 00 00 	movl   $0x39,-0x4(%ebp)
4087cc:	8d 55 f0             	lea    -0x10(%ebp),%edx
4087cf:	b9 d0 02 00 00       	mov    $0x2d0,%ecx
4087d4:	e8 68 60 00 00       	call   0x40e841
4087d9:	ba 00 00 10 00       	mov    $0x100000,%edx
4087de:	8b ce                	mov    %esi,%ecx
4087e0:	8b c2                	mov    %edx,%eax
4087e2:	d1 e8                	shr    $1,%eax
4087e4:	41                   	inc    %ecx
4087e5:	84 c3                	test   %al,%bl
4087e7:	74 f9                	je     0x4087e2
4087e9:	ff 75 f0             	push   -0x10(%ebp)
4087ec:	52                   	push   %edx
4087ed:	51                   	push   %ecx
4087ee:	68 79 01 00 00       	push   $0x179
4087f3:	6a 04                	push   $0x4
4087f5:	e8 f0 5e 00 00       	call   0x40e6ea
4087fa:	83 c4 14             	add    $0x14,%esp
4087fd:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408801:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408804:	ff 15 44 32 42 00    	call   *0x423244
40880a:	3b fb                	cmp    %ebx,%edi
40880c:	75 7a                	jne    0x408888
40880e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408811:	ff 15 40 32 42 00    	call   *0x423240
408817:	c7 45 fc 3c 00 00 00 	movl   $0x3c,-0x4(%ebp)
40881e:	8d 55 f0             	lea    -0x10(%ebp),%edx
408821:	b9 d1 02 00 00       	mov    $0x2d1,%ecx
408826:	e8 16 60 00 00       	call   0x40e841
40882b:	68 fc 43 40 00       	push   $0x4043fc
408830:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408833:	ff 15 14 34 42 00    	call   *0x423414
408839:	c6 45 fc 3e          	movb   $0x3e,-0x4(%ebp)
40883d:	8d 45 ec             	lea    -0x14(%ebp),%eax
408840:	50                   	push   %eax
408841:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408844:	ff 15 ec 33 42 00    	call   *0x4233ec
40884a:	c6 45 fc 3c          	movb   $0x3c,-0x4(%ebp)
40884e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408851:	ff 15 44 32 42 00    	call   *0x423244
408857:	ba 00 00 20 00       	mov    $0x200000,%edx
40885c:	8b ce                	mov    %esi,%ecx
40885e:	8b c2                	mov    %edx,%eax
408860:	d1 e8                	shr    $1,%eax
408862:	41                   	inc    %ecx
408863:	84 c3                	test   %al,%bl
408865:	74 f9                	je     0x408860
408867:	ff 75 f0             	push   -0x10(%ebp)
40886a:	52                   	push   %edx
40886b:	51                   	push   %ecx
40886c:	68 79 01 00 00       	push   $0x179
408871:	6a 04                	push   $0x4
408873:	e8 72 5e 00 00       	call   0x40e6ea
408878:	83 c4 14             	add    $0x14,%esp
40887b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40887f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408882:	ff 15 44 32 42 00    	call   *0x423244
408888:	83 ff 02             	cmp    $0x2,%edi
40888b:	75 4e                	jne    0x4088db
40888d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408890:	ff 15 40 32 42 00    	call   *0x423240
408896:	c7 45 fc 3f 00 00 00 	movl   $0x3f,-0x4(%ebp)
40889d:	8d 55 f0             	lea    -0x10(%ebp),%edx
4088a0:	b9 d2 02 00 00       	mov    $0x2d2,%ecx
4088a5:	e8 97 5f 00 00       	call   0x40e841
4088aa:	ba 00 00 40 00       	mov    $0x400000,%edx
4088af:	8b ce                	mov    %esi,%ecx
4088b1:	8b c2                	mov    %edx,%eax
4088b3:	d1 e8                	shr    $1,%eax
4088b5:	41                   	inc    %ecx
4088b6:	84 c3                	test   %al,%bl
4088b8:	74 f9                	je     0x4088b3
4088ba:	ff 75 f0             	push   -0x10(%ebp)
4088bd:	52                   	push   %edx
4088be:	51                   	push   %ecx
4088bf:	68 79 01 00 00       	push   $0x179
4088c4:	6a 04                	push   $0x4
4088c6:	e8 1f 5e 00 00       	call   0x40e6ea
4088cb:	83 c4 14             	add    $0x14,%esp
4088ce:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4088d2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4088d5:	ff 15 44 32 42 00    	call   *0x423244
4088db:	3b fb                	cmp    %ebx,%edi
4088dd:	0f 85 e1 00 00 00    	jne    0x4089c4
4088e3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4088e6:	ff 15 40 32 42 00    	call   *0x423240
4088ec:	c7 45 fc 42 00 00 00 	movl   $0x42,-0x4(%ebp)
4088f3:	8d 55 f0             	lea    -0x10(%ebp),%edx
4088f6:	b9 d3 02 00 00       	mov    $0x2d3,%ecx
4088fb:	e8 41 5f 00 00       	call   0x40e841
408900:	ba 00 00 80 00       	mov    $0x800000,%edx
408905:	8b ce                	mov    %esi,%ecx
408907:	8b c2                	mov    %edx,%eax
408909:	d1 e8                	shr    $1,%eax
40890b:	41                   	inc    %ecx
40890c:	84 c3                	test   %al,%bl
40890e:	74 f9                	je     0x408909
408910:	ff 75 f0             	push   -0x10(%ebp)
408913:	bf 79 01 00 00       	mov    $0x179,%edi
408918:	52                   	push   %edx
408919:	51                   	push   %ecx
40891a:	57                   	push   %edi
40891b:	6a 04                	push   $0x4
40891d:	e8 c8 5d 00 00       	call   0x40e6ea
408922:	83 c4 14             	add    $0x14,%esp
408925:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408929:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40892c:	ff 15 44 32 42 00    	call   *0x423244
408932:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408935:	ff 15 40 32 42 00    	call   *0x423240
40893b:	c7 45 fc 45 00 00 00 	movl   $0x45,-0x4(%ebp)
408942:	8d 55 f0             	lea    -0x10(%ebp),%edx
408945:	b9 d4 02 00 00       	mov    $0x2d4,%ecx
40894a:	e8 f2 5e 00 00       	call   0x40e841
40894f:	ba 00 00 00 01       	mov    $0x1000000,%edx
408954:	8b ce                	mov    %esi,%ecx
408956:	8b c2                	mov    %edx,%eax
408958:	d1 e8                	shr    $1,%eax
40895a:	41                   	inc    %ecx
40895b:	84 c3                	test   %al,%bl
40895d:	74 f9                	je     0x408958
40895f:	ff 75 f0             	push   -0x10(%ebp)
408962:	52                   	push   %edx
408963:	51                   	push   %ecx
408964:	57                   	push   %edi
408965:	6a 04                	push   $0x4
408967:	e8 7e 5d 00 00       	call   0x40e6ea
40896c:	83 c4 14             	add    $0x14,%esp
40896f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408973:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408976:	ff 15 44 32 42 00    	call   *0x423244
40897c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40897f:	ff 15 40 32 42 00    	call   *0x423240
408985:	c7 45 fc 48 00 00 00 	movl   $0x48,-0x4(%ebp)
40898c:	8d 55 f0             	lea    -0x10(%ebp),%edx
40898f:	b9 d5 02 00 00       	mov    $0x2d5,%ecx
408994:	e8 a8 5e 00 00       	call   0x40e841
408999:	b9 00 00 00 02       	mov    $0x2000000,%ecx
40899e:	8b c1                	mov    %ecx,%eax
4089a0:	d1 e8                	shr    $1,%eax
4089a2:	46                   	inc    %esi
4089a3:	84 c3                	test   %al,%bl
4089a5:	74 f9                	je     0x4089a0
4089a7:	ff 75 f0             	push   -0x10(%ebp)
4089aa:	51                   	push   %ecx
4089ab:	56                   	push   %esi
4089ac:	57                   	push   %edi
4089ad:	6a 04                	push   $0x4
4089af:	e8 36 5d 00 00       	call   0x40e6ea
4089b4:	83 c4 14             	add    $0x14,%esp
4089b7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4089bb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4089be:	ff 15 44 32 42 00    	call   *0x423244
4089c4:	e8 3d 3a 01 00       	call   0x41c406
4089c9:	c3                   	ret
4089ca:	8b ff                	mov    %edi,%edi
4089cc:	56                   	push   %esi
4089cd:	be 92 01 00 00       	mov    $0x192,%esi
4089d2:	33 c9                	xor    %ecx,%ecx
4089d4:	8b d6                	mov    %esi,%edx
4089d6:	e8 a9 5d 00 00       	call   0x40e784
4089db:	68 04 44 40 00       	push   $0x404404
4089e0:	ff 15 54 35 42 00    	call   *0x423554
4089e6:	59                   	pop    %ecx
4089e7:	8b d6                	mov    %esi,%edx
4089e9:	33 c9                	xor    %ecx,%ecx
4089eb:	e8 94 5d 00 00       	call   0x40e784
4089f0:	46                   	inc    %esi
4089f1:	81 fe 98 01 00 00    	cmp    $0x198,%esi
4089f7:	76 ee                	jbe    0x4089e7
4089f9:	ba 1b 02 00 00       	mov    $0x21b,%edx
4089fe:	33 c9                	xor    %ecx,%ecx
408a00:	e8 7f 5d 00 00       	call   0x40e784
408a05:	be 99 01 00 00       	mov    $0x199,%esi
408a0a:	8b d6                	mov    %esi,%edx
408a0c:	33 c9                	xor    %ecx,%ecx
408a0e:	e8 71 5d 00 00       	call   0x40e784
408a13:	46                   	inc    %esi
408a14:	81 fe b8 01 00 00    	cmp    $0x1b8,%esi
408a1a:	76 ee                	jbe    0x408a0a
408a1c:	be b9 01 00 00       	mov    $0x1b9,%esi
408a21:	8b d6                	mov    %esi,%edx
408a23:	33 c9                	xor    %ecx,%ecx
408a25:	e8 5a 5d 00 00       	call   0x40e784
408a2a:	46                   	inc    %esi
408a2b:	81 fe bc 01 00 00    	cmp    $0x1bc,%esi
408a31:	76 ee                	jbe    0x408a21
408a33:	33 c9                	xor    %ecx,%ecx
408a35:	e8 da f6 ff ff       	call   0x408114
408a3a:	be bd 01 00 00       	mov    $0x1bd,%esi
408a3f:	8b d6                	mov    %esi,%edx
408a41:	33 c9                	xor    %ecx,%ecx
408a43:	e8 3c 5d 00 00       	call   0x40e784
408a48:	46                   	inc    %esi
408a49:	81 fe c0 01 00 00    	cmp    $0x1c0,%esi
408a4f:	76 ee                	jbe    0x408a3f
408a51:	ba 13 02 00 00       	mov    $0x213,%edx
408a56:	33 c9                	xor    %ecx,%ecx
408a58:	e8 27 5d 00 00       	call   0x40e784
408a5d:	33 c9                	xor    %ecx,%ecx
408a5f:	41                   	inc    %ecx
408a60:	e8 af f6 ff ff       	call   0x408114
408a65:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
408a6c:	74 1f                	je     0x408a8d
408a6e:	be c1 01 00 00       	mov    $0x1c1,%esi
408a73:	8b d6                	mov    %esi,%edx
408a75:	33 c9                	xor    %ecx,%ecx
408a77:	e8 08 5d 00 00       	call   0x40e784
408a7c:	46                   	inc    %esi
408a7d:	81 fe c3 01 00 00    	cmp    $0x1c3,%esi
408a83:	76 ee                	jbe    0x408a73
408a85:	6a 02                	push   $0x2
408a87:	59                   	pop    %ecx
408a88:	e8 87 f6 ff ff       	call   0x408114
408a8d:	ba c4 01 00 00       	mov    $0x1c4,%edx
408a92:	33 c9                	xor    %ecx,%ecx
408a94:	e8 eb 5c 00 00       	call   0x40e784
408a99:	be 14 02 00 00       	mov    $0x214,%esi
408a9e:	8b d6                	mov    %esi,%edx
408aa0:	33 c9                	xor    %ecx,%ecx
408aa2:	e8 dd 5c 00 00       	call   0x40e784
408aa7:	46                   	inc    %esi
408aa8:	81 fe 1a 02 00 00    	cmp    $0x21a,%esi
408aae:	76 ee                	jbe    0x408a9e
408ab0:	be c5 01 00 00       	mov    $0x1c5,%esi
408ab5:	8b d6                	mov    %esi,%edx
408ab7:	33 c9                	xor    %ecx,%ecx
408ab9:	e8 c6 5c 00 00       	call   0x40e784
408abe:	46                   	inc    %esi
408abf:	81 fe d1 01 00 00    	cmp    $0x1d1,%esi
408ac5:	76 ee                	jbe    0x408ab5
408ac7:	be d3 01 00 00       	mov    $0x1d3,%esi
408acc:	8b d6                	mov    %esi,%edx
408ace:	33 c9                	xor    %ecx,%ecx
408ad0:	e8 af 5c 00 00       	call   0x40e784
408ad5:	46                   	inc    %esi
408ad6:	81 fe 0f 02 00 00    	cmp    $0x20f,%esi
408adc:	76 ee                	jbe    0x408acc
408ade:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
408ae5:	74 17                	je     0x408afe
408ae7:	be 10 02 00 00       	mov    $0x210,%esi
408aec:	8b d6                	mov    %esi,%edx
408aee:	33 c9                	xor    %ecx,%ecx
408af0:	e8 8f 5c 00 00       	call   0x40e784
408af5:	46                   	inc    %esi
408af6:	81 fe 12 02 00 00    	cmp    $0x212,%esi
408afc:	76 ee                	jbe    0x408aec
408afe:	5e                   	pop    %esi
408aff:	c3                   	ret
408b00:	8b ff                	mov    %edi,%edi
408b02:	55                   	push   %ebp
408b03:	8b ec                	mov    %esp,%ebp
408b05:	83 e4 f8             	and    $0xfffffff8,%esp
408b08:	83 ec 10             	sub    $0x10,%esp
408b0b:	56                   	push   %esi
408b0c:	57                   	push   %edi
408b0d:	8b f2                	mov    %edx,%esi
408b0f:	8d 44 24 10          	lea    0x10(%esp),%eax
408b13:	33 ff                	xor    %edi,%edi
408b15:	51                   	push   %ecx
408b16:	50                   	push   %eax
408b17:	89 3e                	mov    %edi,(%esi)
408b19:	89 7c 24 10          	mov    %edi,0x10(%esp)
408b1d:	89 7c 24 14          	mov    %edi,0x14(%esp)
408b21:	ff 15 e4 35 42 00    	call   *0x4235e4
408b27:	8d 44 24 08          	lea    0x8(%esp),%eax
408b2b:	50                   	push   %eax
408b2c:	57                   	push   %edi
408b2d:	6a ff                	push   $0xffffffff
408b2f:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
408b33:	e8 2f 00 00 00       	call   0x408b67
408b38:	85 c0                	test   %eax,%eax
408b3a:	74 25                	je     0x408b61
408b3c:	39 7c 24 0c          	cmp    %edi,0xc(%esp)
408b40:	77 0f                	ja     0x408b51
408b42:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408b46:	72 05                	jb     0x408b4d
408b48:	83 f9 ff             	cmp    $0xffffffff,%ecx
408b4b:	77 04                	ja     0x408b51
408b4d:	8b d7                	mov    %edi,%edx
408b4f:	eb 08                	jmp    0x408b59
408b51:	ba 95 00 00 c0       	mov    $0xc0000095,%edx
408b56:	83 c9 ff             	or     $0xffffffff,%ecx
408b59:	89 0e                	mov    %ecx,(%esi)
408b5b:	85 d2                	test   %edx,%edx
408b5d:	79 02                	jns    0x408b61
408b5f:	8b c7                	mov    %edi,%eax
408b61:	5f                   	pop    %edi
408b62:	5e                   	pop    %esi
408b63:	8b e5                	mov    %ebp,%esp
408b65:	5d                   	pop    %ebp
408b66:	c3                   	ret
408b67:	8b ff                	mov    %edi,%edi
408b69:	55                   	push   %ebp
408b6a:	8b ec                	mov    %esp,%ebp
408b6c:	83 ec 24             	sub    $0x24,%esp
408b6f:	53                   	push   %ebx
408b70:	56                   	push   %esi
408b71:	8b f1                	mov    %ecx,%esi
408b73:	33 c9                	xor    %ecx,%ecx
408b75:	57                   	push   %edi
408b76:	89 75 f0             	mov    %esi,-0x10(%ebp)
408b79:	8b d9                	mov    %ecx,%ebx
408b7b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408b7e:	0f b7 06             	movzwl (%esi),%eax
408b81:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408b84:	8b d0                	mov    %eax,%edx
408b86:	66 85 c0             	test   %ax,%ax
408b89:	0f 84 24 02 00 00    	je     0x408db3