42fbcd:	88 04 32             	mov    %al,(%edx,%esi,1)
42fbd0:	66 8b 01             	mov    (%ecx),%ax
42fbd3:	83 c1 02             	add    $0x2,%ecx
42fbd6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
42fbd9:	66 85 c0             	test   %ax,%ax
42fbdc:	74 0a                	je     0x42fbe8
42fbde:	46                   	inc    %esi
42fbdf:	b8 ff 00 00 00       	mov    $0xff,%eax
42fbe4:	3b f3                	cmp    %ebx,%esi
42fbe6:	72 da                	jb     0x42fbc2
42fbe8:	8b c6                	mov    %esi,%eax
42fbea:	e9 a4 01 00 00       	jmp    0x42fd93
42fbef:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
42fbf3:	75 56                	jne    0x42fc4b
42fbf5:	85 db                	test   %ebx,%ebx
42fbf7:	74 1c                	je     0x42fc15
42fbf9:	8b c1                	mov    %ecx,%eax
42fbfb:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
42fbfe:	66 39 30             	cmp    %si,(%eax)
42fc01:	74 0b                	je     0x42fc0e
42fc03:	83 c0 02             	add    $0x2,%eax
42fc06:	83 6d e4 01          	subl   $0x1,-0x1c(%ebp)
42fc0a:	75 f2                	jne    0x42fbfe
42fc0c:	eb 07                	jmp    0x42fc15
42fc0e:	8b d8                	mov    %eax,%ebx
42fc10:	2b d9                	sub    %ecx,%ebx
42fc12:	d1 fb                	sar    $1,%ebx
42fc14:	43                   	inc    %ebx
42fc15:	8d 45 f0             	lea    -0x10(%ebp),%eax
42fc18:	50                   	push   %eax
42fc19:	56                   	push   %esi
42fc1a:	53                   	push   %ebx
42fc1b:	52                   	push   %edx
42fc1c:	53                   	push   %ebx
42fc1d:	51                   	push   %ecx
42fc1e:	56                   	push   %esi
42fc1f:	ff 75 ec             	push   -0x14(%ebp)
42fc22:	e8 c3 31 ff ff       	call   0x422dea
42fc27:	83 c4 20             	add    $0x20,%esp
42fc2a:	85 c0                	test   %eax,%eax
42fc2c:	0f 84 53 01 00 00    	je     0x42fd85
42fc32:	39 75 f0             	cmp    %esi,-0x10(%ebp)
42fc35:	0f 85 4a 01 00 00    	jne    0x42fd85
42fc3b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
42fc3e:	80 7c 01 ff 00       	cmpb   $0x0,-0x1(%ecx,%eax,1)
42fc43:	0f 85 4a 01 00 00    	jne    0x42fd93
42fc49:	eb 26                	jmp    0x42fc71
42fc4b:	8d 45 f0             	lea    -0x10(%ebp),%eax
42fc4e:	50                   	push   %eax
42fc4f:	56                   	push   %esi
42fc50:	53                   	push   %ebx
42fc51:	52                   	push   %edx
42fc52:	6a ff                	push   $0xffffffff
42fc54:	51                   	push   %ecx
42fc55:	56                   	push   %esi
42fc56:	ff 75 ec             	push   -0x14(%ebp)
42fc59:	e8 8c 31 ff ff       	call   0x422dea
42fc5e:	83 c4 20             	add    $0x20,%esp
42fc61:	89 45 ec             	mov    %eax,-0x14(%ebp)
42fc64:	39 75 f0             	cmp    %esi,-0x10(%ebp)
42fc67:	0f 85 18 01 00 00    	jne    0x42fd85
42fc6d:	85 c0                	test   %eax,%eax
42fc6f:	74 06                	je     0x42fc77
42fc71:	48                   	dec    %eax
42fc72:	e9 1c 01 00 00       	jmp    0x42fd93
42fc77:	ff 15 08 11 43 00    	call   *0x431108
42fc7d:	83 f8 7a             	cmp    $0x7a,%eax
42fc80:	0f 85 ff 00 00 00    	jne    0x42fd85
42fc86:	85 db                	test   %ebx,%ebx
42fc88:	0f 84 9a 00 00 00    	je     0x42fd28
42fc8e:	8b 45 e8             	mov    -0x18(%ebp),%eax
42fc91:	8b 57 0c             	mov    0xc(%edi),%edx
42fc94:	8b 4a 04             	mov    0x4(%edx),%ecx
42fc97:	83 f9 05             	cmp    $0x5,%ecx
42fc9a:	7e 03                	jle    0x42fc9f
42fc9c:	6a 05                	push   $0x5
42fc9e:	59                   	pop    %ecx
42fc9f:	8d 5d f0             	lea    -0x10(%ebp),%ebx
42fca2:	53                   	push   %ebx
42fca3:	56                   	push   %esi
42fca4:	51                   	push   %ecx
42fca5:	8d 4d f4             	lea    -0xc(%ebp),%ecx
42fca8:	51                   	push   %ecx
42fca9:	6a 01                	push   $0x1
42fcab:	50                   	push   %eax
42fcac:	56                   	push   %esi
42fcad:	ff 72 08             	push   0x8(%edx)
42fcb0:	e8 35 31 ff ff       	call   0x422dea
42fcb5:	8b 5d 10             	mov    0x10(%ebp),%ebx
42fcb8:	8b d0                	mov    %eax,%edx
42fcba:	83 c4 20             	add    $0x20,%esp
42fcbd:	89 55 dc             	mov    %edx,-0x24(%ebp)
42fcc0:	85 d2                	test   %edx,%edx
42fcc2:	0f 84 bd 00 00 00    	je     0x42fd85
42fcc8:	39 75 f0             	cmp    %esi,-0x10(%ebp)
42fccb:	0f 85 b4 00 00 00    	jne    0x42fd85
42fcd1:	85 d2                	test   %edx,%edx
42fcd3:	0f 88 ac 00 00 00    	js     0x42fd85
42fcd9:	83 fa 05             	cmp    $0x5,%edx
42fcdc:	0f 87 a3 00 00 00    	ja     0x42fd85
42fce2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
42fce5:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
42fce8:	3b c3                	cmp    %ebx,%eax
42fcea:	77 38                	ja     0x42fd24
42fcec:	8b c6                	mov    %esi,%eax
42fcee:	89 45 e4             	mov    %eax,-0x1c(%ebp)
42fcf1:	85 d2                	test   %edx,%edx
42fcf3:	7e 1e                	jle    0x42fd13
42fcf5:	8b 55 e0             	mov    -0x20(%ebp),%edx
42fcf8:	8a 44 05 f4          	mov    -0xc(%ebp,%eax,1),%al
42fcfc:	88 04 0a             	mov    %al,(%edx,%ecx,1)
42fcff:	84 c0                	test   %al,%al
42fd01:	74 21                	je     0x42fd24
42fd03:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42fd06:	40                   	inc    %eax
42fd07:	41                   	inc    %ecx
42fd08:	89 45 e4             	mov    %eax,-0x1c(%ebp)
42fd0b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
42fd0e:	3b 45 dc             	cmp    -0x24(%ebp),%eax
42fd11:	7c e5                	jl     0x42fcf8
42fd13:	8b 45 e8             	mov    -0x18(%ebp),%eax
42fd16:	83 c0 02             	add    $0x2,%eax
42fd19:	89 45 e8             	mov    %eax,-0x18(%ebp)
42fd1c:	3b cb                	cmp    %ebx,%ecx
42fd1e:	0f 82 6d ff ff ff    	jb     0x42fc91
42fd24:	8b c1                	mov    %ecx,%eax
42fd26:	eb 6b                	jmp    0x42fd93
42fd28:	8b 4d ec             	mov    -0x14(%ebp),%ecx
42fd2b:	eb f7                	jmp    0x42fd24
42fd2d:	39 75 dc             	cmp    %esi,-0x24(%ebp)
42fd30:	75 30                	jne    0x42fd62
42fd32:	0f b7 01             	movzwl (%ecx),%eax
42fd35:	66 85 c0             	test   %ax,%ax
42fd38:	0f 84 aa fe ff ff    	je     0x42fbe8
42fd3e:	8b d0                	mov    %eax,%edx
42fd40:	b8 ff 00 00 00       	mov    $0xff,%eax
42fd45:	66 3b d0             	cmp    %ax,%dx
42fd48:	77 3b                	ja     0x42fd85
42fd4a:	83 c1 02             	add    $0x2,%ecx
42fd4d:	46                   	inc    %esi
42fd4e:	0f b7 01             	movzwl (%ecx),%eax
42fd51:	8b d0                	mov    %eax,%edx
42fd53:	66 85 c0             	test   %ax,%ax
42fd56:	b8 ff 00 00 00       	mov    $0xff,%eax
42fd5b:	75 e8                	jne    0x42fd45
42fd5d:	e9 86 fe ff ff       	jmp    0x42fbe8
42fd62:	8d 45 f0             	lea    -0x10(%ebp),%eax
42fd65:	50                   	push   %eax
42fd66:	56                   	push   %esi
42fd67:	56                   	push   %esi
42fd68:	56                   	push   %esi
42fd69:	6a ff                	push   $0xffffffff
42fd6b:	51                   	push   %ecx
42fd6c:	56                   	push   %esi
42fd6d:	ff 75 ec             	push   -0x14(%ebp)
42fd70:	e8 75 30 ff ff       	call   0x422dea
42fd75:	83 c4 20             	add    $0x20,%esp
42fd78:	85 c0                	test   %eax,%eax
42fd7a:	74 09                	je     0x42fd85
42fd7c:	39 75 f0             	cmp    %esi,-0x10(%ebp)
42fd7f:	0f 84 ec fe ff ff    	je     0x42fc71
42fd85:	c7 47 18 2a 00 00 00 	movl   $0x2a,0x18(%edi)
42fd8c:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
42fd90:	83 c8 ff             	or     $0xffffffff,%eax
42fd93:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42fd96:	5f                   	pop    %edi
42fd97:	5e                   	pop    %esi
42fd98:	33 cd                	xor    %ebp,%ecx
42fd9a:	5b                   	pop    %ebx
42fd9b:	e8 07 9f fd ff       	call   0x409ca7
42fda0:	c9                   	leave
42fda1:	c3                   	ret
42fda2:	8b ff                	mov    %edi,%edi
42fda4:	55                   	push   %ebp
42fda5:	8b ec                	mov    %esp,%ebp
42fda7:	83 ec 28             	sub    $0x28,%esp
42fdaa:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42fdad:	56                   	push   %esi
42fdae:	ff 75 1c             	push   0x1c(%ebp)
42fdb1:	e8 2c d3 fd ff       	call   0x40d0e2
42fdb6:	8d 45 d8             	lea    -0x28(%ebp),%eax
42fdb9:	50                   	push   %eax
42fdba:	ff 75 18             	push   0x18(%ebp)
42fdbd:	ff 75 14             	push   0x14(%ebp)
42fdc0:	ff 75 10             	push   0x10(%ebp)
42fdc3:	ff 75 0c             	push   0xc(%ebp)
42fdc6:	ff 75 08             	push   0x8(%ebp)
42fdc9:	e8 58 fc ff ff       	call   0x42fa26
42fdce:	83 c4 18             	add    $0x18,%esp
42fdd1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42fdd4:	8b f0                	mov    %eax,%esi
42fdd6:	e8 4f d3 fd ff       	call   0x40d12a
42fddb:	8b c6                	mov    %esi,%eax
42fddd:	5e                   	pop    %esi
42fdde:	c9                   	leave
42fddf:	c3                   	ret
42fde0:	8b ff                	mov    %edi,%edi
42fde2:	55                   	push   %ebp
42fde3:	8b ec                	mov    %esp,%ebp
42fde5:	83 ec 24             	sub    $0x24,%esp
42fde8:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
42fded:	33 c5                	xor    %ebp,%eax
42fdef:	89 45 fc             	mov    %eax,-0x4(%ebp)
42fdf2:	8b 45 0c             	mov    0xc(%ebp),%eax
42fdf5:	8b 4d 08             	mov    0x8(%ebp),%ecx
42fdf8:	8b 55 18             	mov    0x18(%ebp),%edx
42fdfb:	89 4d dc             	mov    %ecx,-0x24(%ebp)
42fdfe:	89 45 e8             	mov    %eax,-0x18(%ebp)
42fe01:	89 55 e4             	mov    %edx,-0x1c(%ebp)
42fe04:	53                   	push   %ebx
42fe05:	8b 5d 14             	mov    0x14(%ebp),%ebx
42fe08:	89 5d e0             	mov    %ebx,-0x20(%ebp)
42fe0b:	56                   	push   %esi
42fe0c:	57                   	push   %edi
42fe0d:	8b 38                	mov    (%eax),%edi
42fe0f:	85 c9                	test   %ecx,%ecx
42fe11:	0f 84 96 00 00 00    	je     0x42fead
42fe17:	8b 45 10             	mov    0x10(%ebp),%eax
42fe1a:	8b f1                	mov    %ecx,%esi
42fe1c:	89 7d f0             	mov    %edi,-0x10(%ebp)
42fe1f:	83 f8 04             	cmp    $0x4,%eax
42fe22:	73 08                	jae    0x42fe2c
42fe24:	8d 4d f4             	lea    -0xc(%ebp),%ecx
42fe27:	89 4d ec             	mov    %ecx,-0x14(%ebp)
42fe2a:	eb 05                	jmp    0x42fe31
42fe2c:	8b ce                	mov    %esi,%ecx
42fe2e:	89 75 ec             	mov    %esi,-0x14(%ebp)
42fe31:	0f b7 07             	movzwl (%edi),%eax
42fe34:	52                   	push   %edx
42fe35:	53                   	push   %ebx
42fe36:	50                   	push   %eax
42fe37:	51                   	push   %ecx
42fe38:	e8 b2 00 00 00       	call   0x42feef
42fe3d:	8b d8                	mov    %eax,%ebx
42fe3f:	83 c4 10             	add    $0x10,%esp
42fe42:	83 fb ff             	cmp    $0xffffffff,%ebx
42fe45:	74 59                	je     0x42fea0
42fe47:	8b 45 ec             	mov    -0x14(%ebp),%eax
42fe4a:	3b c6                	cmp    %esi,%eax
42fe4c:	74 10                	je     0x42fe5e
42fe4e:	39 5d 10             	cmp    %ebx,0x10(%ebp)
42fe51:	72 48                	jb     0x42fe9b
42fe53:	53                   	push   %ebx
42fe54:	50                   	push   %eax
42fe55:	56                   	push   %esi
42fe56:	e8 e5 af fd ff       	call   0x40ae40
42fe5b:	83 c4 0c             	add    $0xc,%esp
42fe5e:	85 db                	test   %ebx,%ebx
42fe60:	74 1d                	je     0x42fe7f
42fe62:	8d 04 33             	lea    (%ebx,%esi,1),%eax
42fe65:	8d 48 ff             	lea    -0x1(%eax),%ecx
42fe68:	8b f0                	mov    %eax,%esi
42fe6a:	80 39 00             	cmpb   $0x0,(%ecx)
42fe6d:	75 12                	jne    0x42fe81
42fe6f:	33 c0                	xor    %eax,%eax
42fe71:	8b f1                	mov    %ecx,%esi
42fe73:	8b 55 e8             	mov    -0x18(%ebp),%edx
42fe76:	2b 75 dc             	sub    -0x24(%ebp),%esi
42fe79:	89 02                	mov    %eax,(%edx)
42fe7b:	8b c6                	mov    %esi,%eax
42fe7d:	eb 61                	jmp    0x42fee0
42fe7f:	03 f3                	add    %ebx,%esi
42fe81:	83 c7 02             	add    $0x2,%edi
42fe84:	85 db                	test   %ebx,%ebx
42fe86:	74 03                	je     0x42fe8b
42fe88:	89 7d f0             	mov    %edi,-0x10(%ebp)
42fe8b:	8b 45 10             	mov    0x10(%ebp),%eax
42fe8e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
42fe91:	2b c3                	sub    %ebx,%eax
42fe93:	8b 5d e0             	mov    -0x20(%ebp),%ebx
42fe96:	89 45 10             	mov    %eax,0x10(%ebp)
42fe99:	eb 84                	jmp    0x42fe1f
42fe9b:	8b 45 f0             	mov    -0x10(%ebp),%eax
42fe9e:	eb d3                	jmp    0x42fe73
42fea0:	8b 55 e8             	mov    -0x18(%ebp),%edx
42fea3:	83 c8 ff             	or     $0xffffffff,%eax
42fea6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42fea9:	89 0a                	mov    %ecx,(%edx)
42feab:	eb 33                	jmp    0x42fee0
42fead:	33 f6                	xor    %esi,%esi
42feaf:	52                   	push   %edx
42feb0:	eb 13                	jmp    0x42fec5
42feb2:	85 c0                	test   %eax,%eax
42feb4:	74 07                	je     0x42febd
42feb6:	80 7c 05 f3 00       	cmpb   $0x0,-0xd(%ebp,%eax,1)
42febb:	74 20                	je     0x42fedd
42febd:	ff 75 e4             	push   -0x1c(%ebp)
42fec0:	03 f0                	add    %eax,%esi
42fec2:	83 c7 02             	add    $0x2,%edi
42fec5:	0f b7 07             	movzwl (%edi),%eax
42fec8:	53                   	push   %ebx
42fec9:	50                   	push   %eax
42feca:	8d 45 f4             	lea    -0xc(%ebp),%eax
42fecd:	50                   	push   %eax
42fece:	e8 1c 00 00 00       	call   0x42feef
42fed3:	83 c4 10             	add    $0x10,%esp
42fed6:	83 f8 ff             	cmp    $0xffffffff,%eax
42fed9:	75 d7                	jne    0x42feb2
42fedb:	eb 03                	jmp    0x42fee0
42fedd:	48                   	dec    %eax
42fede:	03 c6                	add    %esi,%eax
42fee0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42fee3:	5f                   	pop    %edi
42fee4:	5e                   	pop    %esi
42fee5:	33 cd                	xor    %ebp,%ecx
42fee7:	5b                   	pop    %ebx
42fee8:	e8 ba 9d fd ff       	call   0x409ca7
42feed:	c9                   	leave
42feee:	c3                   	ret
42feef:	8b ff                	mov    %edi,%edi
42fef1:	55                   	push   %ebp
42fef2:	8b ec                	mov    %esp,%ebp
42fef4:	51                   	push   %ecx
42fef5:	51                   	push   %ecx
42fef6:	8b 55 0c             	mov    0xc(%ebp),%edx
42fef9:	56                   	push   %esi
42fefa:	8b 75 10             	mov    0x10(%ebp),%esi
42fefd:	0f b7 ca             	movzwl %dx,%ecx
42ff00:	57                   	push   %edi
42ff01:	85 f6                	test   %esi,%esi
42ff03:	75 05                	jne    0x42ff0a
42ff05:	be 80 ff 43 00       	mov    $0x43ff80,%esi
42ff0a:	83 3e 00             	cmpl   $0x0,(%esi)
42ff0d:	8d 81 00 24 00 00    	lea    0x2400(%ecx),%eax
42ff13:	0f b7 c0             	movzwl %ax,%eax
42ff16:	75 47                	jne    0x42ff5f
42ff18:	bf ff 03 00 00       	mov    $0x3ff,%edi
42ff1d:	66 3b c7             	cmp    %di,%ax
42ff20:	77 0d                	ja     0x42ff2f
42ff22:	ff 75 14             	push   0x14(%ebp)
42ff25:	56                   	push   %esi
42ff26:	e8 26 b1 ff ff       	call   0x42b051
42ff2b:	59                   	pop    %ecx
42ff2c:	59                   	pop    %ecx
42ff2d:	eb 66                	jmp    0x42ff95
42ff2f:	8d 82 00 28 00 00    	lea    0x2800(%edx),%eax
42ff35:	66 3b c7             	cmp    %di,%ax
42ff38:	8b c1                	mov    %ecx,%eax
42ff3a:	77 11                	ja     0x42ff4d
42ff3c:	25 ff 27 ff ff       	and    $0xffff27ff,%eax
42ff41:	83 c0 40             	add    $0x40,%eax
42ff44:	c1 e0 0a             	shl    $0xa,%eax
42ff47:	89 06                	mov    %eax,(%esi)
42ff49:	33 c0                	xor    %eax,%eax
42ff4b:	eb 48                	jmp    0x42ff95
42ff4d:	ff 75 14             	push   0x14(%ebp)
42ff50:	56                   	push   %esi
42ff51:	50                   	push   %eax
42ff52:	ff 75 08             	push   0x8(%ebp)
42ff55:	e8 54 7d ff ff       	call   0x427cae