41dd3a:	53                   	push   %ebx
41dd3b:	56                   	push   %esi
41dd3c:	57                   	push   %edi
41dd3d:	33 c9                	xor    %ecx,%ecx
41dd3f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41dd42:	89 55 f8             	mov    %edx,-0x8(%ebp)
41dd45:	89 45 fc             	mov    %eax,-0x4(%ebp)
41dd48:	33 c0                	xor    %eax,%eax
41dd4a:	55                   	push   %ebp
41dd4b:	68 aa dd 41 00       	push   $0x41ddaa
41dd50:	64 ff 30             	push   %fs:(%eax)
41dd53:	64 89 20             	mov    %esp,%fs:(%eax)
41dd56:	8b 45 f8             	mov    -0x8(%ebp),%eax
41dd59:	e8 ea 4a 00 00       	call   0x422848
41dd5e:	8b 45 fc             	mov    -0x4(%ebp),%eax
41dd61:	8b 10                	mov    (%eax),%edx
41dd63:	ff 52 14             	call   *0x14(%edx)
41dd66:	8b d8                	mov    %eax,%ebx
41dd68:	4b                   	dec    %ebx
41dd69:	85 db                	test   %ebx,%ebx
41dd6b:	7c 1f                	jl     0x41dd8c
41dd6d:	43                   	inc    %ebx
41dd6e:	33 f6                	xor    %esi,%esi
41dd70:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41dd73:	8b d6                	mov    %esi,%edx
41dd75:	8b 45 fc             	mov    -0x4(%ebp),%eax
41dd78:	8b 38                	mov    (%eax),%edi
41dd7a:	ff 57 0c             	call   *0xc(%edi)
41dd7d:	8b 55 f4             	mov    -0xc(%ebp),%edx
41dd80:	8b 45 f8             	mov    -0x8(%ebp),%eax
41dd83:	e8 24 62 00 00       	call   0x423fac
41dd88:	46                   	inc    %esi
41dd89:	4b                   	dec    %ebx
41dd8a:	75 e4                	jne    0x41dd70
41dd8c:	8b 45 f8             	mov    -0x8(%ebp),%eax
41dd8f:	e8 bc 4a 00 00       	call   0x422850
41dd94:	33 c0                	xor    %eax,%eax
41dd96:	5a                   	pop    %edx
41dd97:	59                   	pop    %ecx
41dd98:	59                   	pop    %ecx
41dd99:	64 89 10             	mov    %edx,%fs:(%eax)
41dd9c:	68 b1 dd 41 00       	push   $0x41ddb1
41dda1:	8d 45 f4             	lea    -0xc(%ebp),%eax
41dda4:	e8 bb 63 fe ff       	call   0x404164
41dda9:	c3                   	ret
41ddaa:	e9 b9 5d fe ff       	jmp    0x403b68
41ddaf:	eb f0                	jmp    0x41dda1
41ddb1:	5f                   	pop    %edi
41ddb2:	5e                   	pop    %esi
41ddb3:	5b                   	pop    %ebx
41ddb4:	8b e5                	mov    %ebp,%esp
41ddb6:	5d                   	pop    %ebp
41ddb7:	c3                   	ret
41ddb8:	8b c2                	mov    %edx,%eax
41ddba:	8b d1                	mov    %ecx,%edx
41ddbc:	e8 7b a7 fe ff       	call   0x40853c
41ddc1:	c3                   	ret
41ddc2:	8b c0                	mov    %eax,%eax
41ddc4:	53                   	push   %ebx
41ddc5:	8b d8                	mov    %eax,%ebx
41ddc7:	f6 43 04 04          	testb  $0x4,0x4(%ebx)
41ddcb:	75 09                	jne    0x41ddd6
41ddcd:	b2 3d                	mov    $0x3d,%dl
41ddcf:	8b c3                	mov    %ebx,%eax
41ddd1:	e8 06 00 00 00       	call   0x41dddc
41ddd6:	8a 43 07             	mov    0x7(%ebx),%al
41ddd9:	5b                   	pop    %ebx
41ddda:	c3                   	ret
41dddb:	90                   	nop
41dddc:	53                   	push   %ebx
41dddd:	56                   	push   %esi
41ddde:	8b da                	mov    %edx,%ebx
41dde0:	8b f0                	mov    %eax,%esi
41dde2:	3a 5e 07             	cmp    0x7(%esi),%bl
41dde5:	75 06                	jne    0x41dded
41dde7:	f6 46 04 04          	testb  $0x4,0x4(%esi)
41ddeb:	75 07                	jne    0x41ddf4
41dded:	80 4e 04 04          	orb    $0x4,0x4(%esi)
41ddf1:	88 5e 07             	mov    %bl,0x7(%esi)
41ddf4:	5e                   	pop    %esi
41ddf5:	5b                   	pop    %ebx
41ddf6:	c3                   	ret
41ddf7:	90                   	nop
41ddf8:	53                   	push   %ebx
41ddf9:	56                   	push   %esi
41ddfa:	e8 a1 59 fe ff       	call   0x4037a0
41ddff:	8b da                	mov    %edx,%ebx
41de01:	8b f0                	mov    %eax,%esi
41de03:	33 c0                	xor    %eax,%eax
41de05:	89 46 20             	mov    %eax,0x20(%esi)
41de08:	89 46 24             	mov    %eax,0x24(%esi)
41de0b:	33 c0                	xor    %eax,%eax
41de0d:	89 46 28             	mov    %eax,0x28(%esi)
41de10:	89 46 2c             	mov    %eax,0x2c(%esi)
41de13:	8b d3                	mov    %ebx,%edx
41de15:	80 e2 fc             	and    $0xfc,%dl
41de18:	8b c6                	mov    %esi,%eax
41de1a:	e8 61 f0 ff ff       	call   0x41ce80
41de1f:	8b 46 14             	mov    0x14(%esi),%eax
41de22:	85 c0                	test   %eax,%eax
41de24:	74 10                	je     0x41de36
41de26:	8b c8                	mov    %eax,%ecx
41de28:	8b 46 10             	mov    0x10(%esi),%eax
41de2b:	8b 15 fc 9b 41 00    	mov    0x419bfc,%edx
41de31:	e8 e2 6d fe ff       	call   0x404c18
41de36:	33 c0                	xor    %eax,%eax
41de38:	89 46 14             	mov    %eax,0x14(%esi)
41de3b:	33 d2                	xor    %edx,%edx
41de3d:	8b c6                	mov    %esi,%eax
41de3f:	8b 08                	mov    (%eax),%ecx
41de41:	ff 51 28             	call   *0x28(%ecx)
41de44:	84 db                	test   %bl,%bl
41de46:	7e 07                	jle    0x41de4f
41de48:	8b c6                	mov    %esi,%eax
41de4a:	e8 39 59 fe ff       	call   0x403788
41de4f:	5e                   	pop    %esi
41de50:	5b                   	pop    %ebx
41de51:	c3                   	ret
41de52:	8b c0                	mov    %eax,%eax
41de54:	53                   	push   %ebx
41de55:	33 c9                	xor    %ecx,%ecx
41de57:	8b 18                	mov    (%eax),%ebx
41de59:	ff 53 3c             	call   *0x3c(%ebx)
41de5c:	5b                   	pop    %ebx
41de5d:	c3                   	ret
41de5e:	8b c0                	mov    %eax,%eax
41de60:	53                   	push   %ebx
41de61:	56                   	push   %esi
41de62:	57                   	push   %edi
41de63:	55                   	push   %ebp
41de64:	51                   	push   %ecx
41de65:	8b f9                	mov    %ecx,%edi
41de67:	8b f2                	mov    %edx,%esi
41de69:	8b d8                	mov    %eax,%ebx
41de6b:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41de6f:	75 08                	jne    0x41de79
41de71:	8b 43 14             	mov    0x14(%ebx),%eax
41de74:	89 04 24             	mov    %eax,(%esp)
41de77:	eb 2e                	jmp    0x41dea7
41de79:	8b cc                	mov    %esp,%ecx
41de7b:	8b d6                	mov    %esi,%edx
41de7d:	8b c3                	mov    %ebx,%eax
41de7f:	8b 28                	mov    (%eax),%ebp
41de81:	ff 95 8c 00 00 00    	call   *0x8c(%ebp)
41de87:	84 c0                	test   %al,%al
41de89:	74 1c                	je     0x41dea7
41de8b:	8a 43 1d             	mov    0x1d(%ebx),%al
41de8e:	2c 01                	sub    $0x1,%al
41de90:	72 26                	jb     0x41deb8
41de92:	fe c8                	dec    %al
41de94:	74 02                	je     0x41de98
41de96:	eb 0f                	jmp    0x41dea7
41de98:	8b 15 70 b0 49 00    	mov    0x49b070,%edx
41de9e:	33 c9                	xor    %ecx,%ecx
41dea0:	8b c3                	mov    %ebx,%eax
41dea2:	e8 55 f3 ff ff       	call   0x41d1fc
41dea7:	57                   	push   %edi
41dea8:	8b ce                	mov    %esi,%ecx
41deaa:	8b 54 24 04          	mov    0x4(%esp),%edx
41deae:	8b c3                	mov    %ebx,%eax
41deb0:	8b 18                	mov    (%eax),%ebx
41deb2:	ff 93 88 00 00 00    	call   *0x88(%ebx)
41deb8:	8b 04 24             	mov    (%esp),%eax
41debb:	5a                   	pop    %edx
41debc:	5d                   	pop    %ebp
41debd:	5f                   	pop    %edi
41debe:	5e                   	pop    %esi
41debf:	5b                   	pop    %ebx
41dec0:	c3                   	ret
41dec1:	8d 40 00             	lea    0x0(%eax),%eax
41dec4:	53                   	push   %ebx
41dec5:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
41dec9:	75 11                	jne    0x41dedc
41decb:	66 83 78 22 00       	cmpw   $0x0,0x22(%eax)
41ded0:	74 0a                	je     0x41dedc
41ded2:	8b d8                	mov    %eax,%ebx
41ded4:	8b d0                	mov    %eax,%edx
41ded6:	8b 43 24             	mov    0x24(%ebx),%eax
41ded9:	ff 53 20             	call   *0x20(%ebx)
41dedc:	5b                   	pop    %ebx
41dedd:	c3                   	ret
41dede:	8b c0                	mov    %eax,%eax
41dee0:	53                   	push   %ebx
41dee1:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
41dee5:	75 11                	jne    0x41def8
41dee7:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
41deec:	74 0a                	je     0x41def8
41deee:	8b d8                	mov    %eax,%ebx
41def0:	8b d0                	mov    %eax,%edx
41def2:	8b 43 2c             	mov    0x2c(%ebx),%eax
41def5:	ff 53 28             	call   *0x28(%ebx)
41def8:	5b                   	pop    %ebx
41def9:	c3                   	ret
41defa:	8b c0                	mov    %eax,%eax
41defc:	53                   	push   %ebx
41defd:	8b d8                	mov    %eax,%ebx
41deff:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
41df03:	74 33                	je     0x41df38
41df05:	8b c3                	mov    %ebx,%eax
41df07:	8b 10                	mov    (%eax),%edx
41df09:	ff 92 84 00 00 00    	call   *0x84(%edx)
41df0f:	8b 43 10             	mov    0x10(%ebx),%eax
41df12:	8b 4b 14             	mov    0x14(%ebx),%ecx
41df15:	8b 15 fc 9b 41 00    	mov    0x419bfc,%edx
41df1b:	e8 f8 6c fe ff       	call   0x404c18
41df20:	33 c0                	xor    %eax,%eax
41df22:	89 43 14             	mov    %eax,0x14(%ebx)
41df25:	33 d2                	xor    %edx,%edx
41df27:	8b c3                	mov    %ebx,%eax
41df29:	8b 08                	mov    (%eax),%ecx
41df2b:	ff 51 28             	call   *0x28(%ecx)
41df2e:	8b c3                	mov    %ebx,%eax
41df30:	8b 10                	mov    (%eax),%edx
41df32:	ff 92 80 00 00 00    	call   *0x80(%edx)
41df38:	5b                   	pop    %ebx
41df39:	c3                   	ret
41df3a:	8b c0                	mov    %eax,%eax
41df3c:	53                   	push   %ebx
41df3d:	56                   	push   %esi
41df3e:	8b f2                	mov    %edx,%esi
41df40:	8b d8                	mov    %eax,%ebx
41df42:	85 f6                	test   %esi,%esi
41df44:	7c 05                	jl     0x41df4b
41df46:	3b 73 14             	cmp    0x14(%ebx),%esi
41df49:	7c 0f                	jl     0x41df5a
41df4b:	8b 15 c0 b3 49 00    	mov    0x49b3c0,%edx
41df51:	8b ce                	mov    %esi,%ecx
41df53:	8b c3                	mov    %ebx,%eax
41df55:	e8 a2 f2 ff ff       	call   0x41d1fc
41df5a:	8b c3                	mov    %ebx,%eax
41df5c:	8b 10                	mov    (%eax),%edx
41df5e:	ff 92 84 00 00 00    	call   *0x84(%edx)
41df64:	8b 43 10             	mov    0x10(%ebx),%eax
41df67:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41df6a:	8b 15 fc 9b 41 00    	mov    0x419bfc,%edx
41df70:	e8 8f 6d fe ff       	call   0x404d04
41df75:	ff 4b 14             	decl   0x14(%ebx)
41df78:	8b 43 14             	mov    0x14(%ebx),%eax
41df7b:	3b f0                	cmp    %eax,%esi
41df7d:	7d 19                	jge    0x41df98
41df7f:	2b c6                	sub    %esi,%eax
41df81:	8b c8                	mov    %eax,%ecx
41df83:	c1 e1 03             	shl    $0x3,%ecx
41df86:	8b 43 10             	mov    0x10(%ebx),%eax
41df89:	8d 14 f0             	lea    (%eax,%esi,8),%edx
41df8c:	8b 43 10             	mov    0x10(%ebx),%eax
41df8f:	8d 44 f0 08          	lea    0x8(%eax,%esi,8),%eax
41df93:	e8 dc 49 fe ff       	call   0x402974
41df98:	8b c3                	mov    %ebx,%eax
41df9a:	8b 10                	mov    (%eax),%edx
41df9c:	ff 92 80 00 00 00    	call   *0x80(%edx)
41dfa2:	5e                   	pop    %esi
41dfa3:	5b                   	pop    %ebx
41dfa4:	c3                   	ret
41dfa5:	8d 40 00             	lea    0x0(%eax),%eax
41dfa8:	53                   	push   %ebx
41dfa9:	56                   	push   %esi
41dfaa:	57                   	push   %edi
41dfab:	8b f9                	mov    %ecx,%edi
41dfad:	8b f2                	mov    %edx,%esi
41dfaf:	8b d8                	mov    %eax,%ebx
41dfb1:	85 f6                	test   %esi,%esi
41dfb3:	7c 05                	jl     0x41dfba
41dfb5:	3b 73 14             	cmp    0x14(%ebx),%esi
41dfb8:	7c 0f                	jl     0x41dfc9
41dfba:	8b 15 c0 b3 49 00    	mov    0x49b3c0,%edx
41dfc0:	8b ce                	mov    %esi,%ecx
41dfc2:	8b c3                	mov    %ebx,%eax
41dfc4:	e8 33 f2 ff ff       	call   0x41d1fc
41dfc9:	85 ff                	test   %edi,%edi
41dfcb:	7c 05                	jl     0x41dfd2
41dfcd:	3b 7b 14             	cmp    0x14(%ebx),%edi
41dfd0:	7c 0f                	jl     0x41dfe1
41dfd2:	8b 15 c0 b3 49 00    	mov    0x49b3c0,%edx
41dfd8:	8b cf                	mov    %edi,%ecx
41dfda:	8b c3                	mov    %ebx,%eax
41dfdc:	e8 1b f2 ff ff       	call   0x41d1fc
41dfe1:	8b c3                	mov    %ebx,%eax
41dfe3:	8b 10                	mov    (%eax),%edx
41dfe5:	ff 92 84 00 00 00    	call   *0x84(%edx)
41dfeb:	8b cf                	mov    %edi,%ecx
41dfed:	8b d6                	mov    %esi,%edx
41dfef:	8b c3                	mov    %ebx,%eax
41dff1:	e8 0e 00 00 00       	call   0x41e004
41dff6:	8b c3                	mov    %ebx,%eax
41dff8:	8b 10                	mov    (%eax),%edx
41dffa:	ff 92 80 00 00 00    	call   *0x80(%edx)
41e000:	5f                   	pop    %edi
41e001:	5e                   	pop    %esi
41e002:	5b                   	pop    %ebx
41e003:	c3                   	ret
41e004:	53                   	push   %ebx
41e005:	8b 58 10             	mov    0x10(%eax),%ebx
41e008:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
41e00b:	8b 40 10             	mov    0x10(%eax),%eax
41e00e:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
41e011:	8b 0a                	mov    (%edx),%ecx
41e013:	8b 18                	mov    (%eax),%ebx
41e015:	89 1a                	mov    %ebx,(%edx)
41e017:	89 08                	mov    %ecx,(%eax)
41e019:	8b 4a 04             	mov    0x4(%edx),%ecx
41e01c:	8b 58 04             	mov    0x4(%eax),%ebx
41e01f:	89 5a 04             	mov    %ebx,0x4(%edx)
41e022:	89 48 04             	mov    %ecx,0x4(%eax)
41e025:	5b                   	pop    %ebx
41e026:	c3                   	ret
41e027:	90                   	nop
41e028:	53                   	push   %ebx
41e029:	56                   	push   %esi
41e02a:	57                   	push   %edi
41e02b:	55                   	push   %ebp
41e02c:	83 c4 f0             	add    $0xfffffff0,%esp
41e02f:	89 4c 24 04          	mov    %ecx,0x4(%esp)
41e033:	89 14 24             	mov    %edx,(%esp)
41e036:	8b f8                	mov    %eax,%edi
41e038:	c6 44 24 08 00       	movb   $0x0,0x8(%esp)
41e03d:	33 f6                	xor    %esi,%esi
41e03f:	8b 47 14             	mov    0x14(%edi),%eax
41e042:	48                   	dec    %eax
41e043:	89 44 24 0c          	mov    %eax,0xc(%esp)
41e047:	3b 74 24 0c          	cmp    0xc(%esp),%esi
41e04b:	7f 3f                	jg     0x41e08c
41e04d:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
41e051:	03 de                	add    %esi,%ebx
41e053:	d1 eb                	shr    $1,%ebx
41e055:	8b 47 10             	mov    0x10(%edi),%eax
41e058:	8b 14 d8             	mov    (%eax,%ebx,8),%edx
41e05b:	8b 0c 24             	mov    (%esp),%ecx
41e05e:	8b c7                	mov    %edi,%eax
41e060:	8b 28                	mov    (%eax),%ebp
41e062:	ff 55 34             	call   *0x34(%ebp)
41e065:	85 c0                	test   %eax,%eax
41e067:	7d 05                	jge    0x41e06e
41e069:	8d 73 01             	lea    0x1(%ebx),%esi
41e06c:	eb 18                	jmp    0x41e086
41e06e:	8b d3                	mov    %ebx,%edx
41e070:	4a                   	dec    %edx
41e071:	89 54 24 0c          	mov    %edx,0xc(%esp)
41e075:	85 c0                	test   %eax,%eax
41e077:	75 0d                	jne    0x41e086
41e079:	c6 44 24 08 01       	movb   $0x1,0x8(%esp)
41e07e:	80 7f 1d 01          	cmpb   $0x1,0x1d(%edi)
41e082:	74 02                	je     0x41e086
41e084:	8b f3                	mov    %ebx,%esi
41e086:	3b 74 24 0c          	cmp    0xc(%esp),%esi
41e08a:	7e c1                	jle    0x41e04d
41e08c:	8b 44 24 04          	mov    0x4(%esp),%eax
41e090:	89 30                	mov    %esi,(%eax)
41e092:	8a 44 24 08          	mov    0x8(%esp),%al
41e096:	83 c4 10             	add    $0x10,%esp