42de49:	8b da                	mov    %edx,%ebx
42de4b:	85 db                	test   %ebx,%ebx
42de4d:	74 1a                	je     0x42de69
42de4f:	83 bb 84 00 00 00 00 	cmpl   $0x0,0x84(%ebx)
42de56:	75 11                	jne    0x42de69
42de58:	8b d3                	mov    %ebx,%edx
42de5a:	8b 40 04             	mov    0x4(%eax),%eax
42de5d:	e8 b6 60 fe ff       	call   0x413f18
42de62:	8b c3                	mov    %ebx,%eax
42de64:	e8 df 53 fd ff       	call   0x403248
42de69:	5b                   	pop    %ebx
42de6a:	c3                   	ret
42de6b:	90                   	nop
42de6c:	8b 40 04             	mov    0x4(%eax),%eax
42de6f:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
42de73:	0f 94 c0             	sete   %al
42de76:	c3                   	ret
42de77:	90                   	nop
42de78:	55                   	push   %ebp
42de79:	8b ec                	mov    %esp,%ebp
42de7b:	51                   	push   %ecx
42de7c:	53                   	push   %ebx
42de7d:	56                   	push   %esi
42de7e:	84 d2                	test   %dl,%dl
42de80:	74 08                	je     0x42de8a
42de82:	83 c4 f0             	add    $0xfffffff0,%esp
42de85:	e8 e2 56 fd ff       	call   0x40356c
42de8a:	88 55 ff             	mov    %dl,-0x1(%ebp)
42de8d:	8b d8                	mov    %eax,%ebx
42de8f:	33 d2                	xor    %edx,%edx
42de91:	8b c3                	mov    %ebx,%eax
42de93:	e8 80 53 fd ff       	call   0x403218
42de98:	b2 01                	mov    $0x1,%dl
42de9a:	a1 1c c3 41 00       	mov    0x41c31c,%eax
42de9f:	e8 b8 44 ff ff       	call   0x42235c
42dea4:	8b f0                	mov    %eax,%esi
42dea6:	89 73 04             	mov    %esi,0x4(%ebx)
42dea9:	89 5e 14             	mov    %ebx,0x14(%esi)
42deac:	c7 46 10 ac df 42 00 	movl   $0x42dfac,0x10(%esi)
42deb3:	c7 43 1c 80 80 00 00 	movl   $0x8080,0x1c(%ebx)
42deba:	c6 43 20 01          	movb   $0x1,0x20(%ebx)
42debe:	33 c0                	xor    %eax,%eax
42dec0:	33 d2                	xor    %edx,%edx
42dec2:	8a d0                	mov    %al,%dl
42dec4:	c7 44 93 0c ff ff ff 	movl   $0xffffffff,0xc(%ebx,%edx,4)
42decb:	ff
42decc:	40                   	inc    %eax
42decd:	3c 04                	cmp    $0x4,%al
42decf:	75 ef                	jne    0x42dec0
42ded1:	83 3d cc 39 46 00 00 	cmpl   $0x0,0x4639cc
42ded8:	75 11                	jne    0x42deeb
42deda:	b2 01                	mov    $0x1,%dl
42dedc:	a1 94 db 42 00       	mov    0x42db94,%eax
42dee1:	e8 8e fe ff ff       	call   0x42dd74
42dee6:	a3 cc 39 46 00       	mov    %eax,0x4639cc
42deeb:	8b c3                	mov    %ebx,%eax
42deed:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
42def1:	74 0f                	je     0x42df02
42def3:	e8 cc 56 fd ff       	call   0x4035c4
42def8:	64 8f 05 00 00 00 00 	pop    %fs:0x0
42deff:	83 c4 0c             	add    $0xc,%esp
42df02:	8b c3                	mov    %ebx,%eax
42df04:	5e                   	pop    %esi
42df05:	5b                   	pop    %ebx
42df06:	59                   	pop    %ecx
42df07:	5d                   	pop    %ebp
42df08:	c3                   	ret
42df09:	8d 40 00             	lea    0x0(%eax),%eax
42df0c:	53                   	push   %ebx
42df0d:	56                   	push   %esi
42df0e:	e8 c1 56 fd ff       	call   0x4035d4
42df13:	8b da                	mov    %edx,%ebx
42df15:	8b f0                	mov    %eax,%esi
42df17:	8b 46 04             	mov    0x4(%esi),%eax
42df1a:	e8 29 53 fd ff       	call   0x403248
42df1f:	8b c6                	mov    %esi,%eax
42df21:	e8 42 00 00 00       	call   0x42df68
42df26:	83 3d cc 39 46 00 00 	cmpl   $0x0,0x4639cc
42df2d:	74 1f                	je     0x42df4e
42df2f:	a1 cc 39 46 00       	mov    0x4639cc,%eax
42df34:	e8 33 ff ff ff       	call   0x42de6c
42df39:	84 c0                	test   %al,%al
42df3b:	74 11                	je     0x42df4e
42df3d:	a1 cc 39 46 00       	mov    0x4639cc,%eax
42df42:	e8 01 53 fd ff       	call   0x403248
42df47:	33 c0                	xor    %eax,%eax
42df49:	a3 cc 39 46 00       	mov    %eax,0x4639cc
42df4e:	8b d3                	mov    %ebx,%edx
42df50:	80 e2 fc             	and    $0xfc,%dl
42df53:	8b c6                	mov    %esi,%eax
42df55:	e8 de 52 fd ff       	call   0x403238
42df5a:	84 db                	test   %bl,%bl
42df5c:	7e 07                	jle    0x42df65
42df5e:	8b c6                	mov    %esi,%eax
42df60:	e8 57 56 fd ff       	call   0x4035bc
42df65:	5e                   	pop    %esi
42df66:	5b                   	pop    %ebx
42df67:	c3                   	ret
42df68:	53                   	push   %ebx
42df69:	56                   	push   %esi
42df6a:	57                   	push   %edi
42df6b:	8b f0                	mov    %eax,%esi
42df6d:	33 db                	xor    %ebx,%ebx
42df6f:	8b fb                	mov    %ebx,%edi
42df71:	83 e7 7f             	and    $0x7f,%edi
42df74:	8b 44 be 0c          	mov    0xc(%esi,%edi,4),%eax
42df78:	83 f8 ff             	cmp    $0xffffffff,%eax
42df7b:	74 0a                	je     0x42df87
42df7d:	8b d0                	mov    %eax,%edx
42df7f:	8b 46 08             	mov    0x8(%esi),%eax
42df82:	e8 bd fd ff ff       	call   0x42dd44
42df87:	c7 44 be 0c ff ff ff 	movl   $0xffffffff,0xc(%esi,%edi,4)
42df8e:	ff
42df8f:	43                   	inc    %ebx
42df90:	80 fb 04             	cmp    $0x4,%bl
42df93:	75 da                	jne    0x42df6f
42df95:	8b 56 08             	mov    0x8(%esi),%edx
42df98:	a1 cc 39 46 00       	mov    0x4639cc,%eax
42df9d:	e8 a6 fe ff ff       	call   0x42de48
42dfa2:	33 c0                	xor    %eax,%eax
42dfa4:	89 46 08             	mov    %eax,0x8(%esi)
42dfa7:	5f                   	pop    %edi
42dfa8:	5e                   	pop    %esi
42dfa9:	5b                   	pop    %ebx
42dfaa:	c3                   	ret
42dfab:	90                   	nop
42dfac:	53                   	push   %ebx
42dfad:	56                   	push   %esi
42dfae:	8b d8                	mov    %eax,%ebx
42dfb0:	8b 73 04             	mov    0x4(%ebx),%esi
42dfb3:	3b d6                	cmp    %esi,%edx
42dfb5:	75 20                	jne    0x42dfd7
42dfb7:	8b c6                	mov    %esi,%eax
42dfb9:	e8 52 4a ff ff       	call   0x422a10
42dfbe:	89 43 1c             	mov    %eax,0x1c(%ebx)
42dfc1:	8b c3                	mov    %ebx,%eax
42dfc3:	e8 a0 ff ff ff       	call   0x42df68
42dfc8:	66 83 7b 2a 00       	cmpw   $0x0,0x2a(%ebx)
42dfcd:	74 08                	je     0x42dfd7
42dfcf:	8b d3                	mov    %ebx,%edx
42dfd1:	8b 43 2c             	mov    0x2c(%ebx),%eax
42dfd4:	ff 53 28             	call   *0x28(%ebx)
42dfd7:	5e                   	pop    %esi
42dfd8:	5b                   	pop    %ebx
42dfd9:	c3                   	ret
42dfda:	8b c0                	mov    %eax,%eax
42dfdc:	53                   	push   %ebx
42dfdd:	56                   	push   %esi
42dfde:	8b da                	mov    %edx,%ebx
42dfe0:	8b f0                	mov    %eax,%esi
42dfe2:	8b c6                	mov    %esi,%eax
42dfe4:	e8 7f ff ff ff       	call   0x42df68
42dfe9:	8b d3                	mov    %ebx,%edx
42dfeb:	8b 46 04             	mov    0x4(%esi),%eax
42dfee:	8b 08                	mov    (%eax),%ecx
42dff0:	ff 51 08             	call   *0x8(%ecx)
42dff3:	85 db                	test   %ebx,%ebx
42dff5:	74 58                	je     0x42e04f
42dff7:	8b c3                	mov    %ebx,%eax
42dff9:	8b 10                	mov    (%eax),%edx
42dffb:	ff 52 20             	call   *0x20(%edx)
42dffe:	85 c0                	test   %eax,%eax
42e000:	7e 4d                	jle    0x42e04f
42e002:	8b c3                	mov    %ebx,%eax
42e004:	e8 07 4a ff ff       	call   0x422a10
42e009:	89 46 1c             	mov    %eax,0x1c(%esi)
42e00c:	8b c3                	mov    %ebx,%eax
42e00e:	8b 10                	mov    (%eax),%edx
42e010:	ff 52 2c             	call   *0x2c(%edx)
42e013:	50                   	push   %eax
42e014:	8b c3                	mov    %ebx,%eax
42e016:	8b 10                	mov    (%eax),%edx
42e018:	ff 52 20             	call   *0x20(%edx)
42e01b:	5a                   	pop    %edx
42e01c:	92                   	xchg   %eax,%edx
42e01d:	8b ca                	mov    %edx,%ecx
42e01f:	99                   	cltd
42e020:	f7 f9                	idiv   %ecx
42e022:	85 d2                	test   %edx,%edx
42e024:	75 29                	jne    0x42e04f
42e026:	8b c3                	mov    %ebx,%eax
42e028:	8b 10                	mov    (%eax),%edx
42e02a:	ff 52 2c             	call   *0x2c(%edx)
42e02d:	50                   	push   %eax
42e02e:	8b c3                	mov    %ebx,%eax
42e030:	8b 10                	mov    (%eax),%edx
42e032:	ff 52 20             	call   *0x20(%edx)
42e035:	5a                   	pop    %edx
42e036:	92                   	xchg   %eax,%edx
42e037:	8b ca                	mov    %edx,%ecx
42e039:	99                   	cltd
42e03a:	f7 f9                	idiv   %ecx
42e03c:	83 f8 04             	cmp    $0x4,%eax
42e03f:	7e 05                	jle    0x42e046
42e041:	b8 01 00 00 00       	mov    $0x1,%eax
42e046:	8b d0                	mov    %eax,%edx
42e048:	8b c6                	mov    %esi,%eax
42e04a:	e8 05 00 00 00       	call   0x42e054
42e04f:	5e                   	pop    %esi
42e050:	5b                   	pop    %ebx
42e051:	c3                   	ret
42e052:	8b c0                	mov    %eax,%eax
42e054:	53                   	push   %ebx
42e055:	56                   	push   %esi
42e056:	8b da                	mov    %edx,%ebx
42e058:	8b f0                	mov    %eax,%esi
42e05a:	3a 5e 20             	cmp    0x20(%esi),%bl
42e05d:	74 18                	je     0x42e077
42e05f:	84 db                	test   %bl,%bl
42e061:	76 14                	jbe    0x42e077
42e063:	8b c6                	mov    %esi,%eax
42e065:	e8 fe fe ff ff       	call   0x42df68
42e06a:	88 5e 20             	mov    %bl,0x20(%esi)
42e06d:	8b 56 04             	mov    0x4(%esi),%edx
42e070:	8b c6                	mov    %esi,%eax
42e072:	e8 35 ff ff ff       	call   0x42dfac
42e077:	5e                   	pop    %esi
42e078:	5b                   	pop    %ebx
42e079:	c3                   	ret
42e07a:	8b c0                	mov    %eax,%eax
42e07c:	55                   	push   %ebp
42e07d:	8b ec                	mov    %esp,%ebp
42e07f:	83 c4 c8             	add    $0xffffffc8,%esp
42e082:	53                   	push   %ebx
42e083:	56                   	push   %esi
42e084:	57                   	push   %edi
42e085:	88 55 fb             	mov    %dl,-0x5(%ebp)
42e088:	89 45 fc             	mov    %eax,-0x4(%ebp)
42e08b:	80 7d fb 02          	cmpb   $0x2,-0x5(%ebp)
42e08f:	75 0d                	jne    0x42e09e
42e091:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e094:	80 78 20 03          	cmpb   $0x3,0x20(%eax)
42e098:	73 04                	jae    0x42e09e
42e09a:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
42e09e:	33 c0                	xor    %eax,%eax
42e0a0:	8a 45 fb             	mov    -0x5(%ebp),%al
42e0a3:	8b 55 fc             	mov    -0x4(%ebp),%edx
42e0a6:	8b 5c 82 0c          	mov    0xc(%edx,%eax,4),%ebx
42e0aa:	83 fb ff             	cmp    $0xffffffff,%ebx
42e0ad:	0f 85 96 05 00 00    	jne    0x42e649
42e0b3:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e0b6:	8b 40 04             	mov    0x4(%eax),%eax
42e0b9:	8b 10                	mov    (%eax),%edx
42e0bb:	ff 52 2c             	call   *0x2c(%edx)
42e0be:	8b f0                	mov    %eax,%esi
42e0c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e0c3:	8b 40 04             	mov    0x4(%eax),%eax
42e0c6:	8b 10                	mov    (%eax),%edx
42e0c8:	ff 52 20             	call   *0x20(%edx)
42e0cb:	0b f0                	or     %eax,%esi
42e0cd:	0f 84 76 05 00 00    	je     0x42e649
42e0d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e0d6:	8b 40 04             	mov    0x4(%eax),%eax
42e0d9:	8b 10                	mov    (%eax),%edx
42e0db:	ff 52 2c             	call   *0x2c(%edx)
42e0de:	8b 55 fc             	mov    -0x4(%ebp),%edx
42e0e1:	0f b6 52 20          	movzbl 0x20(%edx),%edx
42e0e5:	8b ca                	mov    %edx,%ecx
42e0e7:	99                   	cltd
42e0e8:	f7 f9                	idiv   %ecx
42e0ea:	8b f8                	mov    %eax,%edi
42e0ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e0ef:	8b 40 04             	mov    0x4(%eax),%eax
42e0f2:	8b 10                	mov    (%eax),%edx
42e0f4:	ff 52 20             	call   *0x20(%edx)
42e0f7:	8b f0                	mov    %eax,%esi
42e0f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e0fc:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
42e100:	75 2e                	jne    0x42e130
42e102:	83 3d cc 39 46 00 00 	cmpl   $0x0,0x4639cc
42e109:	75 11                	jne    0x42e11c
42e10b:	b2 01                	mov    $0x1,%dl
42e10d:	a1 94 db 42 00       	mov    0x42db94,%eax
42e112:	e8 5d fc ff ff       	call   0x42dd74
42e117:	a3 cc 39 46 00       	mov    %eax,0x4639cc
42e11c:	8b ce                	mov    %esi,%ecx
42e11e:	8b d7                	mov    %edi,%edx
42e120:	a1 cc 39 46 00       	mov    0x4639cc,%eax
42e125:	e8 be fc ff ff       	call   0x42dde8
42e12a:	8b 55 fc             	mov    -0x4(%ebp),%edx
42e12d:	89 42 08             	mov    %eax,0x8(%edx)
42e130:	b2 01                	mov    $0x1,%dl
42e132:	a1 1c c3 41 00       	mov    0x41c31c,%eax
42e137:	e8 20 42 ff ff       	call   0x42235c
42e13c:	89 45 f4             	mov    %eax,-0xc(%ebp)
42e13f:	33 c0                	xor    %eax,%eax
42e141:	55                   	push   %ebp
42e142:	68 2b e6 42 00       	push   $0x42e62b
42e147:	64 ff 30             	push   %fs:(%eax)
42e14a:	64 89 20             	mov    %esp,%fs:(%eax)
42e14d:	8b d7                	mov    %edi,%edx
42e14f:	8b 45 f4             	mov    -0xc(%ebp),%eax
42e152:	8b 08                	mov    (%eax),%ecx
42e154:	ff 51 40             	call   *0x40(%ecx)
42e157:	8b d6                	mov    %esi,%edx
42e159:	8b 45 f4             	mov    -0xc(%ebp),%eax
42e15c:	8b 08                	mov    (%eax),%ecx
42e15e:	ff 51 34             	call   *0x34(%ecx)
42e161:	56                   	push   %esi
42e162:	8d 45 d8             	lea    -0x28(%ebp),%eax
42e165:	50                   	push   %eax
42e166:	8b cf                	mov    %edi,%ecx
42e168:	33 d2                	xor    %edx,%edx
42e16a:	33 c0                	xor    %eax,%eax
42e16c:	e8 d7 47 fe ff       	call   0x412948
42e171:	8b 45 f4             	mov    -0xc(%ebp),%eax
42e174:	e8 ab 47 ff ff       	call   0x422924
42e179:	8b 40 14             	mov    0x14(%eax),%eax
42e17c:	ba 0f 00 00 ff       	mov    $0xff00000f,%edx
42e181:	e8 0e f9 fe ff       	call   0x41da94
42e186:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e189:	8b 40 04             	mov    0x4(%eax),%eax
42e18c:	8b 10                	mov    (%eax),%edx
42e18e:	ff 52 24             	call   *0x24(%edx)
42e191:	e8 56 3f ff ff       	call   0x4220ec
42e196:	8b d0                	mov    %eax,%edx
42e198:	8b 45 f4             	mov    -0xc(%ebp),%eax
42e19b:	8b 08                	mov    (%eax),%ecx
42e19d:	ff 51 38             	call   *0x38(%ecx)
42e1a0:	8a 5d fb             	mov    -0x5(%ebp),%bl
42e1a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e1a6:	3a 58 20             	cmp    0x20(%eax),%bl
42e1a9:	7c 02                	jl     0x42e1ad
42e1ab:	33 db                	xor    %ebx,%ebx
42e1ad:	56                   	push   %esi
42e1ae:	8d 45 c8             	lea    -0x38(%ebp),%eax
42e1b1:	50                   	push   %eax
42e1b2:	33 c9                	xor    %ecx,%ecx
42e1b4:	8a cb                	mov    %bl,%cl
42e1b6:	41                   	inc    %ecx
42e1b7:	0f af cf             	imul   %edi,%ecx
42e1ba:	33 c0                	xor    %eax,%eax
42e1bc:	8a c3                	mov    %bl,%al
42e1be:	f7 ef                	imul   %edi
42e1c0:	33 d2                	xor    %edx,%edx
42e1c2:	e8 81 47 fe ff       	call   0x412948
42e1c7:	8a 45 fb             	mov    -0x5(%ebp),%al
42e1ca:	2c 01                	sub    $0x1,%al
42e1cc:	72 0b                	jb     0x42e1d9
42e1ce:	74 7f                	je     0x42e24f
42e1d0:	48                   	dec    %eax
42e1d1:	2c 02                	sub    $0x2,%al
42e1d3:	0f 83 3c 04 00 00    	jae    0x42e615
42e1d9:	8d 45 c8             	lea    -0x38(%ebp),%eax
42e1dc:	50                   	push   %eax
42e1dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e1e0:	8b 40 04             	mov    0x4(%eax),%eax
42e1e3:	e8 3c 47 ff ff       	call   0x422924
42e1e8:	50                   	push   %eax
42e1e9:	8b 45 f4             	mov    -0xc(%ebp),%eax