40b8d2:	e8 1e b7 ff ff       	call   0x406ff5
40b8d7:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40b8db:	59                   	pop    %ecx
40b8dc:	75 0d                	jne    0x40b8eb
40b8de:	8d 46 0c             	lea    0xc(%esi),%eax
40b8e1:	50                   	push   %eax
40b8e2:	ff 15 bc d0 40 00    	call   *0x40d0bc
40b8e8:	ff 46 08             	incl   0x8(%esi)
40b8eb:	6a 11                	push   $0x11
40b8ed:	e8 64 b7 ff ff       	call   0x407056
40b8f2:	59                   	pop    %ecx
40b8f3:	8b 03                	mov    (%ebx),%eax
40b8f5:	8d 44 38 0c          	lea    0xc(%eax,%edi,1),%eax
40b8f9:	50                   	push   %eax
40b8fa:	ff 15 b4 d0 40 00    	call   *0x40d0b4
40b900:	5f                   	pop    %edi
40b901:	5e                   	pop    %esi
40b902:	5b                   	pop    %ebx
40b903:	c3                   	ret
40b904:	8b 44 24 04          	mov    0x4(%esp),%eax
40b908:	8b c8                	mov    %eax,%ecx
40b90a:	83 e0 1f             	and    $0x1f,%eax
40b90d:	c1 f9 05             	sar    $0x5,%ecx
40b910:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b913:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b91a:	8d 44 81 0c          	lea    0xc(%ecx,%eax,4),%eax
40b91e:	50                   	push   %eax
40b91f:	ff 15 c8 d0 40 00    	call   *0x40d0c8
40b925:	c3                   	ret
40b926:	56                   	push   %esi
40b927:	8b 74 24 08          	mov    0x8(%esp),%esi
40b92b:	3b 35 c0 1e 41 00    	cmp    0x411ec0,%esi
40b931:	73 40                	jae    0x40b973
40b933:	8b ce                	mov    %esi,%ecx
40b935:	8b c6                	mov    %esi,%eax
40b937:	c1 f9 05             	sar    $0x5,%ecx
40b93a:	83 e0 1f             	and    $0x1f,%eax
40b93d:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b944:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b947:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
40b94c:	74 25                	je     0x40b973
40b94e:	57                   	push   %edi
40b94f:	56                   	push   %esi
40b950:	e8 50 ff ff ff       	call   0x40b8a5
40b955:	ff 74 24 18          	push   0x18(%esp)
40b959:	ff 74 24 18          	push   0x18(%esp)
40b95d:	56                   	push   %esi
40b95e:	e8 28 00 00 00       	call   0x40b98b
40b963:	56                   	push   %esi
40b964:	8b f8                	mov    %eax,%edi
40b966:	e8 99 ff ff ff       	call   0x40b904
40b96b:	83 c4 14             	add    $0x14,%esp
40b96e:	8b c7                	mov    %edi,%eax
40b970:	5f                   	pop    %edi
40b971:	5e                   	pop    %esi
40b972:	c3                   	ret
40b973:	e8 66 b7 ff ff       	call   0x4070de
40b978:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b97e:	e8 64 b7 ff ff       	call   0x4070e7
40b983:	83 20 00             	andl   $0x0,(%eax)
40b986:	83 c8 ff             	or     $0xffffffff,%eax
40b989:	5e                   	pop    %esi
40b98a:	c3                   	ret
40b98b:	55                   	push   %ebp
40b98c:	8b ec                	mov    %esp,%ebp
40b98e:	83 ec 0c             	sub    $0xc,%esp
40b991:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40b995:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40b999:	53                   	push   %ebx
40b99a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b99d:	56                   	push   %esi
40b99e:	57                   	push   %edi
40b99f:	8b d3                	mov    %ebx,%edx
40b9a1:	0f 84 b6 01 00 00    	je     0x40bb5d
40b9a7:	8b 45 08             	mov    0x8(%ebp),%eax
40b9aa:	8b c8                	mov    %eax,%ecx
40b9ac:	83 e0 1f             	and    $0x1f,%eax
40b9af:	c1 f9 05             	sar    $0x5,%ecx
40b9b2:	8d 34 c0             	lea    (%eax,%eax,8),%esi
40b9b5:	8b 04 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%eax
40b9bc:	8d 3c 8d c0 1d 41 00 	lea    0x411dc0(,%ecx,4),%edi
40b9c3:	c1 e6 02             	shl    $0x2,%esi
40b9c6:	03 c6                	add    %esi,%eax
40b9c8:	8a 48 04             	mov    0x4(%eax),%cl
40b9cb:	f6 c1 02             	test   $0x2,%cl
40b9ce:	0f 85 89 01 00 00    	jne    0x40bb5d
40b9d4:	f6 c1 48             	test   $0x48,%cl
40b9d7:	74 1d                	je     0x40b9f6
40b9d9:	8a 40 05             	mov    0x5(%eax),%al
40b9dc:	3c 0a                	cmp    $0xa,%al
40b9de:	74 16                	je     0x40b9f6
40b9e0:	ff 4d 10             	decl   0x10(%ebp)
40b9e3:	88 03                	mov    %al,(%ebx)
40b9e5:	8b 07                	mov    (%edi),%eax
40b9e7:	8d 53 01             	lea    0x1(%ebx),%edx
40b9ea:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40b9f1:	c6 44 30 05 0a       	movb   $0xa,0x5(%eax,%esi,1)
40b9f6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b9f9:	6a 00                	push   $0x0
40b9fb:	50                   	push   %eax
40b9fc:	8b 07                	mov    (%edi),%eax
40b9fe:	ff 75 10             	push   0x10(%ebp)
40ba01:	52                   	push   %edx
40ba02:	ff 34 30             	push   (%eax,%esi,1)
40ba05:	ff 15 3c d0 40 00    	call   *0x40d03c
40ba0b:	85 c0                	test   %eax,%eax
40ba0d:	75 39                	jne    0x40ba48
40ba0f:	ff 15 9c d0 40 00    	call   *0x40d09c
40ba15:	6a 05                	push   $0x5
40ba17:	5e                   	pop    %esi
40ba18:	3b c6                	cmp    %esi,%eax
40ba1a:	75 14                	jne    0x40ba30
40ba1c:	e8 bd b6 ff ff       	call   0x4070de
40ba21:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40ba27:	e8 bb b6 ff ff       	call   0x4070e7
40ba2c:	89 30                	mov    %esi,(%eax)
40ba2e:	eb 10                	jmp    0x40ba40
40ba30:	83 f8 6d             	cmp    $0x6d,%eax
40ba33:	0f 84 24 01 00 00    	je     0x40bb5d
40ba39:	50                   	push   %eax
40ba3a:	e8 2c b6 ff ff       	call   0x40706b
40ba3f:	59                   	pop    %ecx
40ba40:	83 c8 ff             	or     $0xffffffff,%eax
40ba43:	e9 17 01 00 00       	jmp    0x40bb5f
40ba48:	8b 07                	mov    (%edi),%eax
40ba4a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40ba4d:	01 55 f8             	add    %edx,-0x8(%ebp)
40ba50:	8d 4c 30 04          	lea    0x4(%eax,%esi,1),%ecx
40ba54:	8a 44 30 04          	mov    0x4(%eax,%esi,1),%al
40ba58:	a8 80                	test   $0x80,%al
40ba5a:	0f 84 f8 00 00 00    	je     0x40bb58
40ba60:	85 d2                	test   %edx,%edx
40ba62:	74 09                	je     0x40ba6d
40ba64:	80 3b 0a             	cmpb   $0xa,(%ebx)
40ba67:	75 04                	jne    0x40ba6d
40ba69:	0c 04                	or     $0x4,%al
40ba6b:	eb 02                	jmp    0x40ba6f
40ba6d:	24 fb                	and    $0xfb,%al
40ba6f:	88 01                	mov    %al,(%ecx)
40ba71:	8b 45 0c             	mov    0xc(%ebp),%eax
40ba74:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ba77:	89 45 10             	mov    %eax,0x10(%ebp)
40ba7a:	03 c8                	add    %eax,%ecx
40ba7c:	3b c1                	cmp    %ecx,%eax
40ba7e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40ba81:	0f 83 cb 00 00 00    	jae    0x40bb52
40ba87:	8b 45 10             	mov    0x10(%ebp),%eax
40ba8a:	8a 00                	mov    (%eax),%al
40ba8c:	3c 1a                	cmp    $0x1a,%al
40ba8e:	0f 84 ae 00 00 00    	je     0x40bb42
40ba94:	3c 0d                	cmp    $0xd,%al
40ba96:	74 0b                	je     0x40baa3
40ba98:	88 03                	mov    %al,(%ebx)
40ba9a:	43                   	inc    %ebx
40ba9b:	ff 45 10             	incl   0x10(%ebp)
40ba9e:	e9 91 00 00 00       	jmp    0x40bb34
40baa3:	49                   	dec    %ecx
40baa4:	39 4d 10             	cmp    %ecx,0x10(%ebp)
40baa7:	73 18                	jae    0x40bac1
40baa9:	8b 45 10             	mov    0x10(%ebp),%eax
40baac:	40                   	inc    %eax
40baad:	80 38 0a             	cmpb   $0xa,(%eax)
40bab0:	75 06                	jne    0x40bab8
40bab2:	83 45 10 02          	addl   $0x2,0x10(%ebp)
40bab6:	eb 5e                	jmp    0x40bb16
40bab8:	c6 03 0d             	movb   $0xd,(%ebx)
40babb:	43                   	inc    %ebx
40babc:	89 45 10             	mov    %eax,0x10(%ebp)
40babf:	eb 73                	jmp    0x40bb34
40bac1:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bac4:	6a 00                	push   $0x0
40bac6:	50                   	push   %eax
40bac7:	ff 45 10             	incl   0x10(%ebp)
40baca:	8d 45 ff             	lea    -0x1(%ebp),%eax
40bacd:	6a 01                	push   $0x1
40bacf:	50                   	push   %eax
40bad0:	8b 07                	mov    (%edi),%eax
40bad2:	ff 34 30             	push   (%eax,%esi,1)
40bad5:	ff 15 3c d0 40 00    	call   *0x40d03c
40badb:	85 c0                	test   %eax,%eax
40badd:	75 0a                	jne    0x40bae9
40badf:	ff 15 9c d0 40 00    	call   *0x40d09c
40bae5:	85 c0                	test   %eax,%eax
40bae7:	75 47                	jne    0x40bb30
40bae9:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40baed:	74 41                	je     0x40bb30
40baef:	8b 07                	mov    (%edi),%eax
40baf1:	f6 44 30 04 48       	testb  $0x48,0x4(%eax,%esi,1)
40baf6:	74 13                	je     0x40bb0b
40baf8:	8a 45 ff             	mov    -0x1(%ebp),%al
40bafb:	3c 0a                	cmp    $0xa,%al
40bafd:	74 17                	je     0x40bb16
40baff:	c6 03 0d             	movb   $0xd,(%ebx)
40bb02:	8b 0f                	mov    (%edi),%ecx
40bb04:	43                   	inc    %ebx
40bb05:	88 44 31 05          	mov    %al,0x5(%ecx,%esi,1)
40bb09:	eb 29                	jmp    0x40bb34
40bb0b:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40bb0e:	75 0b                	jne    0x40bb1b
40bb10:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
40bb14:	75 05                	jne    0x40bb1b
40bb16:	c6 03 0a             	movb   $0xa,(%ebx)
40bb19:	eb 18                	jmp    0x40bb33
40bb1b:	6a 01                	push   $0x1
40bb1d:	6a ff                	push   $0xffffffff
40bb1f:	ff 75 08             	push   0x8(%ebp)
40bb22:	e8 99 de ff ff       	call   0x4099c0
40bb27:	83 c4 0c             	add    $0xc,%esp
40bb2a:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
40bb2e:	74 04                	je     0x40bb34
40bb30:	c6 03 0d             	movb   $0xd,(%ebx)
40bb33:	43                   	inc    %ebx
40bb34:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40bb37:	39 4d 10             	cmp    %ecx,0x10(%ebp)
40bb3a:	0f 82 47 ff ff ff    	jb     0x40ba87
40bb40:	eb 10                	jmp    0x40bb52
40bb42:	8b 07                	mov    (%edi),%eax
40bb44:	8d 74 30 04          	lea    0x4(%eax,%esi,1),%esi
40bb48:	8a 06                	mov    (%esi),%al
40bb4a:	a8 40                	test   $0x40,%al
40bb4c:	75 04                	jne    0x40bb52
40bb4e:	0c 02                	or     $0x2,%al
40bb50:	88 06                	mov    %al,(%esi)
40bb52:	2b 5d 0c             	sub    0xc(%ebp),%ebx
40bb55:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40bb58:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bb5b:	eb 02                	jmp    0x40bb5f
40bb5d:	33 c0                	xor    %eax,%eax
40bb5f:	5f                   	pop    %edi
40bb60:	5e                   	pop    %esi
40bb61:	5b                   	pop    %ebx
40bb62:	c9                   	leave
40bb63:	c3                   	ret
40bb64:	56                   	push   %esi
40bb65:	8b 74 24 08          	mov    0x8(%esp),%esi
40bb69:	3b 35 c0 1e 41 00    	cmp    0x411ec0,%esi
40bb6f:	73 4a                	jae    0x40bbbb
40bb71:	8b ce                	mov    %esi,%ecx
40bb73:	8b c6                	mov    %esi,%eax
40bb75:	c1 f9 05             	sar    $0x5,%ecx
40bb78:	83 e0 1f             	and    $0x1f,%eax
40bb7b:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40bb82:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40bb85:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
40bb8a:	74 2f                	je     0x40bbbb
40bb8c:	53                   	push   %ebx
40bb8d:	57                   	push   %edi
40bb8e:	56                   	push   %esi
40bb8f:	e8 11 fd ff ff       	call   0x40b8a5
40bb94:	ff 74 24 20          	push   0x20(%esp)
40bb98:	ff 74 24 20          	push   0x20(%esp)
40bb9c:	ff 74 24 20          	push   0x20(%esp)
40bba0:	56                   	push   %esi
40bba1:	e8 2f 00 00 00       	call   0x40bbd5
40bba6:	56                   	push   %esi
40bba7:	8b f8                	mov    %eax,%edi
40bba9:	8b da                	mov    %edx,%ebx
40bbab:	e8 54 fd ff ff       	call   0x40b904
40bbb0:	83 c4 18             	add    $0x18,%esp
40bbb3:	8b c7                	mov    %edi,%eax
40bbb5:	8b d3                	mov    %ebx,%edx
40bbb7:	5f                   	pop    %edi
40bbb8:	5b                   	pop    %ebx
40bbb9:	5e                   	pop    %esi
40bbba:	c3                   	ret
40bbbb:	e8 1e b5 ff ff       	call   0x4070de
40bbc0:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40bbc6:	e8 1c b5 ff ff       	call   0x4070e7
40bbcb:	83 20 00             	andl   $0x0,(%eax)
40bbce:	83 ca ff             	or     $0xffffffff,%edx
40bbd1:	8b c2                	mov    %edx,%eax
40bbd3:	5e                   	pop    %esi
40bbd4:	c3                   	ret
40bbd5:	55                   	push   %ebp
40bbd6:	8b ec                	mov    %esp,%ebp
40bbd8:	51                   	push   %ecx
40bbd9:	51                   	push   %ecx
40bbda:	8b 45 0c             	mov    0xc(%ebp),%eax
40bbdd:	56                   	push   %esi
40bbde:	8b 75 08             	mov    0x8(%ebp),%esi
40bbe1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bbe4:	8b 45 10             	mov    0x10(%ebp),%eax
40bbe7:	57                   	push   %edi
40bbe8:	56                   	push   %esi
40bbe9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bbec:	e8 72 fc ff ff       	call   0x40b863
40bbf1:	83 cf ff             	or     $0xffffffff,%edi
40bbf4:	59                   	pop    %ecx
40bbf5:	3b c7                	cmp    %edi,%eax
40bbf7:	75 0d                	jne    0x40bc06
40bbf9:	e8 e0 b4 ff ff       	call   0x4070de
40bbfe:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40bc04:	eb 29                	jmp    0x40bc2f
40bc06:	ff 75 14             	push   0x14(%ebp)
40bc09:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40bc0c:	51                   	push   %ecx
40bc0d:	ff 75 f8             	push   -0x8(%ebp)
40bc10:	50                   	push   %eax
40bc11:	ff 15 7c d0 40 00    	call   *0x40d07c
40bc17:	3b c7                	cmp    %edi,%eax
40bc19:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bc1c:	75 17                	jne    0x40bc35
40bc1e:	ff 15 9c d0 40 00    	call   *0x40d09c
40bc24:	85 c0                	test   %eax,%eax
40bc26:	74 0d                	je     0x40bc35
40bc28:	50                   	push   %eax
40bc29:	e8 3d b4 ff ff       	call   0x40706b
40bc2e:	59                   	pop    %ecx
40bc2f:	8b c7                	mov    %edi,%eax
40bc31:	8b d7                	mov    %edi,%edx
40bc33:	eb 21                	jmp    0x40bc56
40bc35:	8b c6                	mov    %esi,%eax
40bc37:	83 e6 1f             	and    $0x1f,%esi
40bc3a:	c1 f8 05             	sar    $0x5,%eax
40bc3d:	8d 0c f6             	lea    (%esi,%esi,8),%ecx
40bc40:	8b 04 85 c0 1d 41 00 	mov    0x411dc0(,%eax,4),%eax
40bc47:	80 64 88 04 fd       	andb   $0xfd,0x4(%eax,%ecx,4)
40bc4c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bc4f:	8d 44 88 04          	lea    0x4(%eax,%ecx,4),%eax
40bc53:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bc56:	5f                   	pop    %edi
40bc57:	5e                   	pop    %esi
40bc58:	c9                   	leave
40bc59:	c3                   	ret
40bc5a:	cc                   	int3
40bc5b:	cc                   	int3
40bc5c:	cc                   	int3
40bc5d:	cc                   	int3
40bc5e:	cc                   	int3
40bc5f:	cc                   	int3
40bc60:	55                   	push   %ebp
40bc61:	8b ec                	mov    %esp,%ebp
40bc63:	57                   	push   %edi
40bc64:	56                   	push   %esi
40bc65:	53                   	push   %ebx
40bc66:	8b 75 0c             	mov    0xc(%ebp),%esi
40bc69:	8b 7d 08             	mov    0x8(%ebp),%edi
40bc6c:	8d 05 64 18 41 00    	lea    0x411864,%eax
40bc72:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
40bc76:	75 3b                	jne    0x40bcb3
40bc78:	b0 ff                	mov    $0xff,%al
40bc7a:	8b ff                	mov    %edi,%edi
40bc7c:	0a c0                	or     %al,%al
40bc7e:	74 2e                	je     0x40bcae
40bc80:	8a 06                	mov    (%esi),%al
40bc82:	46                   	inc    %esi
40bc83:	8a 27                	mov    (%edi),%ah
40bc85:	47                   	inc    %edi
40bc86:	38 c4                	cmp    %al,%ah
40bc88:	74 f2                	je     0x40bc7c