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
40bc8a:	2c 41                	sub    $0x41,%al
40bc8c:	3c 1a                	cmp    $0x1a,%al
40bc8e:	1a c9                	sbb    %cl,%cl
40bc90:	80 e1 20             	and    $0x20,%cl
40bc93:	02 c1                	add    %cl,%al
40bc95:	04 41                	add    $0x41,%al
40bc97:	86 e0                	xchg   %ah,%al
40bc99:	2c 41                	sub    $0x41,%al
40bc9b:	3c 1a                	cmp    $0x1a,%al
40bc9d:	1a c9                	sbb    %cl,%cl
40bc9f:	80 e1 20             	and    $0x20,%cl
40bca2:	02 c1                	add    %cl,%al
40bca4:	04 41                	add    $0x41,%al
40bca6:	38 e0                	cmp    %ah,%al
40bca8:	74 d2                	je     0x40bc7c
40bcaa:	1a c0                	sbb    %al,%al
40bcac:	1c ff                	sbb    $0xff,%al
40bcae:	0f be c0             	movsbl %al,%eax
40bcb1:	eb 78                	jmp    0x40bd2b
40bcb3:	f0 ff 05 dc 1e 41 00 	lock incl 0x411edc
40bcba:	83 3d d8 1e 41 00 00 	cmpl   $0x0,0x411ed8
40bcc1:	7f 04                	jg     0x40bcc7
40bcc3:	6a 00                	push   $0x0
40bcc5:	eb 15                	jmp    0x40bcdc
40bcc7:	f0 ff 0d dc 1e 41 00 	lock decl 0x411edc
40bcce:	6a 13                	push   $0x13
40bcd0:	e8 20 b3 ff ff       	call   0x406ff5
40bcd5:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
40bcdc:	b8 ff 00 00 00       	mov    $0xff,%eax
40bce1:	33 db                	xor    %ebx,%ebx
40bce3:	90                   	nop
40bce4:	0a c0                	or     %al,%al
40bce6:	74 27                	je     0x40bd0f
40bce8:	8a 06                	mov    (%esi),%al
40bcea:	46                   	inc    %esi
40bceb:	8a 1f                	mov    (%edi),%bl
40bced:	47                   	inc    %edi
40bcee:	38 d8                	cmp    %bl,%al
40bcf0:	74 f2                	je     0x40bce4
40bcf2:	50                   	push   %eax
40bcf3:	53                   	push   %ebx
40bcf4:	e8 84 05 00 00       	call   0x40c27d
40bcf9:	8b d8                	mov    %eax,%ebx
40bcfb:	83 c4 04             	add    $0x4,%esp
40bcfe:	e8 7a 05 00 00       	call   0x40c27d
40bd03:	83 c4 04             	add    $0x4,%esp
40bd06:	38 c3                	cmp    %al,%bl
40bd08:	74 da                	je     0x40bce4
40bd0a:	1b c0                	sbb    %eax,%eax
40bd0c:	83 d8 ff             	sbb    $0xffffffff,%eax
40bd0f:	8b d8                	mov    %eax,%ebx
40bd11:	58                   	pop    %eax
40bd12:	0b c0                	or     %eax,%eax
40bd14:	75 09                	jne    0x40bd1f
40bd16:	f0 ff 0d dc 1e 41 00 	lock decl 0x411edc
40bd1d:	eb 0a                	jmp    0x40bd29
40bd1f:	6a 13                	push   $0x13
40bd21:	e8 30 b3 ff ff       	call   0x407056
40bd26:	83 c4 04             	add    $0x4,%esp
40bd29:	8b c3                	mov    %ebx,%eax
40bd2b:	5b                   	pop    %ebx
40bd2c:	5e                   	pop    %esi
40bd2d:	5f                   	pop    %edi
40bd2e:	c9                   	leave
40bd2f:	c3                   	ret
40bd30:	55                   	push   %ebp
40bd31:	8b ec                	mov    %esp,%ebp
40bd33:	57                   	push   %edi
40bd34:	56                   	push   %esi
40bd35:	53                   	push   %ebx
40bd36:	8b 4d 10             	mov    0x10(%ebp),%ecx
40bd39:	0b c9                	or     %ecx,%ecx
40bd3b:	0f 84 e9 00 00 00    	je     0x40be2a
40bd41:	8b 75 08             	mov    0x8(%ebp),%esi
40bd44:	8b 7d 0c             	mov    0xc(%ebp),%edi
40bd47:	8d 05 64 18 41 00    	lea    0x411864,%eax
40bd4d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
40bd51:	75 4e                	jne    0x40bda1
40bd53:	b7 41                	mov    $0x41,%bh
40bd55:	b3 5a                	mov    $0x5a,%bl
40bd57:	b6 20                	mov    $0x20,%dh
40bd59:	8d 49 00             	lea    0x0(%ecx),%ecx
40bd5c:	8a 26                	mov    (%esi),%ah
40bd5e:	0a e4                	or     %ah,%ah
40bd60:	8a 07                	mov    (%edi),%al
40bd62:	74 21                	je     0x40bd85
40bd64:	0a c0                	or     %al,%al
40bd66:	74 1d                	je     0x40bd85
40bd68:	46                   	inc    %esi
40bd69:	47                   	inc    %edi
40bd6a:	38 fc                	cmp    %bh,%ah
40bd6c:	72 06                	jb     0x40bd74
40bd6e:	38 dc                	cmp    %bl,%ah
40bd70:	77 02                	ja     0x40bd74
40bd72:	02 e6                	add    %dh,%ah
40bd74:	38 f8                	cmp    %bh,%al
40bd76:	72 06                	jb     0x40bd7e
40bd78:	38 d8                	cmp    %bl,%al
40bd7a:	77 02                	ja     0x40bd7e
40bd7c:	02 c6                	add    %dh,%al
40bd7e:	38 c4                	cmp    %al,%ah
40bd80:	75 0d                	jne    0x40bd8f
40bd82:	49                   	dec    %ecx
40bd83:	75 d7                	jne    0x40bd5c
40bd85:	33 c9                	xor    %ecx,%ecx
40bd87:	38 c4                	cmp    %al,%ah
40bd89:	0f 84 9b 00 00 00    	je     0x40be2a
40bd8f:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40bd94:	0f 82 90 00 00 00    	jb     0x40be2a
40bd9a:	f7 d9                	neg    %ecx
40bd9c:	e9 89 00 00 00       	jmp    0x40be2a
40bda1:	f0 ff 05 dc 1e 41 00 	lock incl 0x411edc
40bda8:	83 3d d8 1e 41 00 00 	cmpl   $0x0,0x411ed8
40bdaf:	7f 04                	jg     0x40bdb5
40bdb1:	6a 00                	push   $0x0
40bdb3:	eb 19                	jmp    0x40bdce
40bdb5:	f0 ff 0d dc 1e 41 00 	lock decl 0x411edc
40bdbc:	8b d9                	mov    %ecx,%ebx
40bdbe:	6a 13                	push   $0x13
40bdc0:	e8 30 b2 ff ff       	call   0x406ff5
40bdc5:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
40bdcc:	8b cb                	mov    %ebx,%ecx
40bdce:	33 c0                	xor    %eax,%eax
40bdd0:	33 db                	xor    %ebx,%ebx
40bdd2:	8b ff                	mov    %edi,%edi
40bdd4:	8a 06                	mov    (%esi),%al
40bdd6:	0b c0                	or     %eax,%eax
40bdd8:	8a 1f                	mov    (%edi),%bl
40bdda:	74 23                	je     0x40bdff
40bddc:	0b db                	or     %ebx,%ebx
40bdde:	74 1f                	je     0x40bdff
40bde0:	46                   	inc    %esi
40bde1:	47                   	inc    %edi
40bde2:	51                   	push   %ecx
40bde3:	50                   	push   %eax
40bde4:	53                   	push   %ebx
40bde5:	e8 93 04 00 00       	call   0x40c27d
40bdea:	8b d8                	mov    %eax,%ebx
40bdec:	83 c4 04             	add    $0x4,%esp
40bdef:	e8 89 04 00 00       	call   0x40c27d
40bdf4:	83 c4 04             	add    $0x4,%esp
40bdf7:	59                   	pop    %ecx
40bdf8:	3b c3                	cmp    %ebx,%eax
40bdfa:	75 09                	jne    0x40be05
40bdfc:	49                   	dec    %ecx
40bdfd:	75 d5                	jne    0x40bdd4
40bdff:	33 c9                	xor    %ecx,%ecx
40be01:	3b c3                	cmp    %ebx,%eax
40be03:	74 09                	je     0x40be0e
40be05:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40be0a:	72 02                	jb     0x40be0e
40be0c:	f7 d9                	neg    %ecx
40be0e:	58                   	pop    %eax
40be0f:	0b c0                	or     %eax,%eax
40be11:	75 09                	jne    0x40be1c
40be13:	f0 ff 0d dc 1e 41 00 	lock decl 0x411edc
40be1a:	eb 0e                	jmp    0x40be2a
40be1c:	8b d9                	mov    %ecx,%ebx
40be1e:	6a 13                	push   $0x13
40be20:	e8 31 b2 ff ff       	call   0x407056
40be25:	83 c4 04             	add    $0x4,%esp
40be28:	8b cb                	mov    %ebx,%ecx
40be2a:	8b c1                	mov    %ecx,%eax
40be2c:	5b                   	pop    %ebx
40be2d:	5e                   	pop    %esi
40be2e:	5f                   	pop    %edi
40be2f:	c9                   	leave
40be30:	c3                   	ret
40be31:	6a 02                	push   $0x2
40be33:	e8 44 99 ff ff       	call   0x40577c
40be38:	59                   	pop    %ecx
40be39:	c3                   	ret
40be3a:	cc                   	int3
40be3b:	cc                   	int3
40be3c:	cc                   	int3