456e5d:	33 f6                	xor    %esi,%esi
456e5f:	33 c0                	xor    %eax,%eax
456e61:	89 45 f4             	mov    %eax,-0xc(%ebp)
456e64:	33 c0                	xor    %eax,%eax
456e66:	89 45 f0             	mov    %eax,-0x10(%ebp)
456e69:	33 ff                	xor    %edi,%edi
456e6b:	85 f6                	test   %esi,%esi
456e6d:	0f 8e 9b 00 00 00    	jle    0x456f0e
456e73:	e8 b8 fa fa ff       	call   0x406930
456e78:	8b d8                	mov    %eax,%ebx
456e7a:	8b c3                	mov    %ebx,%eax
456e7c:	2b c7                	sub    %edi,%eax
456e7e:	8b 55 fc             	mov    -0x4(%ebp),%edx
456e81:	8b 52 20             	mov    0x20(%edx),%edx
456e84:	3b c2                	cmp    %edx,%eax
456e86:	7d 08                	jge    0x456e90
456e88:	2b d0                	sub    %eax,%edx
456e8a:	52                   	push   %edx
456e8b:	e8 58 5b fb ff       	call   0x40c9e8
456e90:	8b fb                	mov    %ebx,%edi
456e92:	8b 45 f8             	mov    -0x8(%ebp),%eax
456e95:	66 8b 40 04          	mov    0x4(%eax),%ax
456e99:	66 83 e8 01          	sub    $0x1,%ax
456e9d:	72 0e                	jb     0x456ead
456e9f:	74 1f                	je     0x456ec0
456ea1:	66 ff c8             	dec    %ax
456ea4:	74 2d                	je     0x456ed3
456ea6:	66 ff c8             	dec    %ax
456ea9:	74 3b                	je     0x456ee6
456eab:	eb 4a                	jmp    0x456ef7
456ead:	8b 45 fc             	mov    -0x4(%ebp),%eax
456eb0:	8b 50 0c             	mov    0xc(%eax),%edx
456eb3:	2b 55 f4             	sub    -0xc(%ebp),%edx
456eb6:	8b 45 fc             	mov    -0x4(%ebp),%eax
456eb9:	e8 86 02 00 00       	call   0x457144
456ebe:	eb 37                	jmp    0x456ef7
456ec0:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ec3:	8b 50 0c             	mov    0xc(%eax),%edx
456ec6:	03 55 f4             	add    -0xc(%ebp),%edx
456ec9:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ecc:	e8 73 02 00 00       	call   0x457144
456ed1:	eb 24                	jmp    0x456ef7
456ed3:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ed6:	8b 50 0c             	mov    0xc(%eax),%edx
456ed9:	2b 55 f4             	sub    -0xc(%ebp),%edx
456edc:	8b 45 fc             	mov    -0x4(%ebp),%eax
456edf:	e8 60 02 00 00       	call   0x457144
456ee4:	eb 11                	jmp    0x456ef7
456ee6:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ee9:	8b 50 0c             	mov    0xc(%eax),%edx
456eec:	03 55 f4             	add    -0xc(%ebp),%edx
456eef:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ef2:	e8 4d 02 00 00       	call   0x457144
456ef7:	8b 45 fc             	mov    -0x4(%ebp),%eax
456efa:	8b 40 04             	mov    0x4(%eax),%eax
456efd:	8b 10                	mov    (%eax),%edx
456eff:	ff 92 88 00 00 00    	call   *0x88(%edx)
456f05:	4e                   	dec    %esi
456f06:	85 f6                	test   %esi,%esi
456f08:	0f 8f 65 ff ff ff    	jg     0x456e73
456f0e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
456f12:	0f 8e aa 01 00 00    	jle    0x4570c2
456f18:	8b 45 f8             	mov    -0x8(%ebp),%eax
456f1b:	66 8b 40 04          	mov    0x4(%eax),%ax
456f1f:	66 83 e8 01          	sub    $0x1,%ax
456f23:	72 11                	jb     0x456f36
456f25:	74 25                	je     0x456f4c
456f27:	66 ff c8             	dec    %ax
456f2a:	74 36                	je     0x456f62
456f2c:	66 ff c8             	dec    %ax
456f2f:	74 47                	je     0x456f78
456f31:	e9 8c 01 00 00       	jmp    0x4570c2
456f36:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f39:	8b 50 0c             	mov    0xc(%eax),%edx
456f3c:	2b 55 f0             	sub    -0x10(%ebp),%edx
456f3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f42:	e8 fd 01 00 00       	call   0x457144
456f47:	e9 76 01 00 00       	jmp    0x4570c2
456f4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f4f:	8b 50 0c             	mov    0xc(%eax),%edx
456f52:	03 55 f0             	add    -0x10(%ebp),%edx
456f55:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f58:	e8 e7 01 00 00       	call   0x457144
456f5d:	e9 60 01 00 00       	jmp    0x4570c2
456f62:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f65:	8b 50 0c             	mov    0xc(%eax),%edx
456f68:	2b 55 f0             	sub    -0x10(%ebp),%edx
456f6b:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f6e:	e8 d1 01 00 00       	call   0x457144
456f73:	e9 4a 01 00 00       	jmp    0x4570c2
456f78:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f7b:	8b 50 0c             	mov    0xc(%eax),%edx
456f7e:	03 55 f0             	add    -0x10(%ebp),%edx
456f81:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f84:	e8 bb 01 00 00       	call   0x457144
456f89:	e9 34 01 00 00       	jmp    0x4570c2
456f8e:	8b 45 f8             	mov    -0x8(%ebp),%eax
456f91:	0f bf 40 04          	movswl 0x4(%eax),%eax
456f95:	83 f8 07             	cmp    $0x7,%eax
456f98:	0f 87 24 01 00 00    	ja     0x4570c2
456f9e:	ff 24 85 a5 6f 45 00 	jmp    *0x456fa5(,%eax,4)
456fa5:	c5 6f 45             	lds    0x45(%edi),%ebp
456fa8:	00 e1                	add    %ah,%cl
456faa:	6f                   	outsl  %ds:(%esi),(%dx)
456fab:	45                   	inc    %ebp
456fac:	00 fd                	add    %bh,%ch
456fae:	6f                   	outsl  %ds:(%esi),(%dx)
456faf:	45                   	inc    %ebp
456fb0:	00 1e                	add    %bl,(%esi)
456fb2:	70 45                	jo     0x456ff9
456fb4:	00 3f                	add    %bh,(%edi)
456fb6:	70 45                	jo     0x456ffd
456fb8:	00 6f 70             	add    %ch,0x70(%edi)
456fbb:	45                   	inc    %ebp
456fbc:	00 a8 70 45 00 b4    	add    %ch,-0x4bffba90(%eax)
456fc2:	70 45                	jo     0x457009
456fc4:	00 8b 45 fc 8b 50    	add    %cl,0x508bfc45(%ebx)
456fca:	0c 8b                	or     $0x8b,%al
456fcc:	45                   	inc    %ebp
456fcd:	fc                   	cld
456fce:	0f b7 40 08          	movzwl 0x8(%eax),%eax
456fd2:	2b d0                	sub    %eax,%edx
456fd4:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fd7:	e8 68 01 00 00       	call   0x457144
456fdc:	e9 e1 00 00 00       	jmp    0x4570c2
456fe1:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fe4:	8b 50 0c             	mov    0xc(%eax),%edx
456fe7:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fea:	0f b7 40 08          	movzwl 0x8(%eax),%eax
456fee:	03 d0                	add    %eax,%edx
456ff0:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ff3:	e8 4c 01 00 00       	call   0x457144
456ff8:	e9 c5 00 00 00       	jmp    0x4570c2
456ffd:	33 c9                	xor    %ecx,%ecx
456fff:	b2 01                	mov    $0x1,%dl
457001:	8b 45 fc             	mov    -0x4(%ebp),%eax
457004:	e8 d3 fc ff ff       	call   0x456cdc
457009:	8b 55 fc             	mov    -0x4(%ebp),%edx
45700c:	8b 52 0c             	mov    0xc(%edx),%edx
45700f:	2b d0                	sub    %eax,%edx
457011:	8b 45 fc             	mov    -0x4(%ebp),%eax
457014:	e8 2b 01 00 00       	call   0x457144
457019:	e9 a4 00 00 00       	jmp    0x4570c2
45701e:	33 c9                	xor    %ecx,%ecx
457020:	b2 01                	mov    $0x1,%dl
457022:	8b 45 fc             	mov    -0x4(%ebp),%eax
457025:	e8 b2 fc ff ff       	call   0x456cdc
45702a:	8b d0                	mov    %eax,%edx
45702c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45702f:	03 50 0c             	add    0xc(%eax),%edx
457032:	8b 45 fc             	mov    -0x4(%ebp),%eax
457035:	e8 0a 01 00 00       	call   0x457144
45703a:	e9 83 00 00 00       	jmp    0x4570c2
45703f:	8b 45 fc             	mov    -0x4(%ebp),%eax
457042:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
457049:	7e 13                	jle    0x45705e
45704b:	55                   	push   %ebp
45704c:	e8 23 fd ff ff       	call   0x456d74
457051:	59                   	pop    %ecx
457052:	8b d0                	mov    %eax,%edx
457054:	8b 45 fc             	mov    -0x4(%ebp),%eax
457057:	e8 e8 00 00 00       	call   0x457144
45705c:	eb 64                	jmp    0x4570c2
45705e:	8b 55 f8             	mov    -0x8(%ebp),%edx
457061:	0f bf 52 06          	movswl 0x6(%edx),%edx
457065:	8b 45 fc             	mov    -0x4(%ebp),%eax
457068:	e8 d7 00 00 00       	call   0x457144
45706d:	eb 53                	jmp    0x4570c2
45706f:	8b 45 fc             	mov    -0x4(%ebp),%eax
457072:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
457076:	74 4a                	je     0x4570c2
457078:	8b 45 fc             	mov    -0x4(%ebp),%eax
45707b:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
457082:	7e 13                	jle    0x457097
457084:	55                   	push   %ebp
457085:	e8 ea fc ff ff       	call   0x456d74
45708a:	59                   	pop    %ecx
45708b:	8b d0                	mov    %eax,%edx
45708d:	8b 45 fc             	mov    -0x4(%ebp),%eax
457090:	e8 af 00 00 00       	call   0x457144
457095:	eb 2b                	jmp    0x4570c2
457097:	8b 55 f8             	mov    -0x8(%ebp),%edx
45709a:	0f bf 52 06          	movswl 0x6(%edx),%edx
45709e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570a1:	e8 9e 00 00 00       	call   0x457144
4570a6:	eb 1a                	jmp    0x4570c2
4570a8:	33 d2                	xor    %edx,%edx
4570aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570ad:	e8 92 00 00 00       	call   0x457144
4570b2:	eb 0e                	jmp    0x4570c2
4570b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570b7:	8b 50 14             	mov    0x14(%eax),%edx
4570ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570bd:	e8 82 00 00 00       	call   0x457144
4570c2:	5f                   	pop    %edi
4570c3:	5e                   	pop    %esi
4570c4:	5b                   	pop    %ebx
4570c5:	8b e5                	mov    %ebp,%esp
4570c7:	5d                   	pop    %ebp
4570c8:	c3                   	ret
4570c9:	8d 40 00             	lea    0x0(%eax),%eax
4570cc:	53                   	push   %ebx
4570cd:	56                   	push   %esi
4570ce:	8b d8                	mov    %eax,%ebx
4570d0:	3b 53 24             	cmp    0x24(%ebx),%edx
4570d3:	74 36                	je     0x45710b
4570d5:	8b f2                	mov    %edx,%esi
4570d7:	85 f6                	test   %esi,%esi
4570d9:	75 18                	jne    0x4570f3
4570db:	33 c0                	xor    %eax,%eax
4570dd:	8a 43 18             	mov    0x18(%ebx),%al
4570e0:	8b 04 85 ac 3d 46 00 	mov    0x463dac(,%eax,4),%eax
4570e7:	50                   	push   %eax
4570e8:	a1 44 db 46 00       	mov    0x46db44,%eax
4570ed:	8b 00                	mov    (%eax),%eax
4570ef:	ff d0                	call   *%eax
4570f1:	8b d0                	mov    %eax,%edx
4570f3:	89 53 24             	mov    %edx,0x24(%ebx)
4570f6:	c6 43 44 01          	movb   $0x1,0x44(%ebx)
4570fa:	8b 43 04             	mov    0x4(%ebx),%eax
4570fd:	e8 ba 06 00 00       	call   0x4577bc
457102:	85 f6                	test   %esi,%esi
457104:	75 05                	jne    0x45710b
457106:	33 c0                	xor    %eax,%eax
457108:	89 43 24             	mov    %eax,0x24(%ebx)
45710b:	5e                   	pop    %esi
45710c:	5b                   	pop    %ebx
45710d:	c3                   	ret
45710e:	8b c0                	mov    %eax,%eax
457110:	3b 50 28             	cmp    0x28(%eax),%edx
457113:	74 13                	je     0x457128
457115:	89 50 28             	mov    %edx,0x28(%eax)
457118:	c6 40 2c 00          	movb   $0x0,0x2c(%eax)
45711c:	c6 40 44 01          	movb   $0x1,0x44(%eax)
457120:	8b 40 04             	mov    0x4(%eax),%eax
457123:	e8 94 06 00 00       	call   0x4577bc
457128:	c3                   	ret
457129:	8d 40 00             	lea    0x0(%eax),%eax
45712c:	3a 50 2c             	cmp    0x2c(%eax),%dl
45712f:	74 11                	je     0x457142
457131:	88 50 2c             	mov    %dl,0x2c(%eax)
457134:	84 d2                	test   %dl,%dl
457136:	74 0a                	je     0x457142
457138:	ba 14 00 00 ff       	mov    $0xff000014,%edx
45713d:	e8 ce ff ff ff       	call   0x457110
457142:	c3                   	ret
457143:	90                   	nop
457144:	53                   	push   %ebx
457145:	56                   	push   %esi
457146:	57                   	push   %edi
457147:	8b d8                	mov    %eax,%ebx
457149:	8b 43 04             	mov    0x4(%ebx),%eax
45714c:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
457150:	74 08                	je     0x45715a
457152:	89 53 0c             	mov    %edx,0xc(%ebx)
457155:	e9 a7 00 00 00       	jmp    0x457201
45715a:	8b 43 14             	mov    0x14(%ebx),%eax
45715d:	3b d0                	cmp    %eax,%edx
45715f:	7e 04                	jle    0x457165
457161:	8b d0                	mov    %eax,%edx
457163:	eb 06                	jmp    0x45716b
457165:	85 d2                	test   %edx,%edx
457167:	7d 02                	jge    0x45716b
457169:	33 d2                	xor    %edx,%edx
45716b:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
45716f:	75 04                	jne    0x457175
457171:	33 f6                	xor    %esi,%esi
457173:	eb 04                	jmp    0x457179
457175:	66 be 01 00          	mov    $0x1,%si
457179:	8b 43 0c             	mov    0xc(%ebx),%eax
45717c:	3b d0                	cmp    %eax,%edx
45717e:	74 4d                	je     0x4571cd
457180:	89 53 0c             	mov    %edx,0xc(%ebx)
457183:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
457187:	75 10                	jne    0x457199
457189:	2b c2                	sub    %edx,%eax
45718b:	8b d0                	mov    %eax,%edx
45718d:	33 c9                	xor    %ecx,%ecx
45718f:	8b 43 04             	mov    0x4(%ebx),%eax
457192:	e8 11 eb fe ff       	call   0x445ca8
457197:	eb 0e                	jmp    0x4571a7
457199:	8b c8                	mov    %eax,%ecx
45719b:	2b ca                	sub    %edx,%ecx
45719d:	8b 43 04             	mov    0x4(%ebx),%eax
4571a0:	33 d2                	xor    %edx,%edx
4571a2:	e8 01 eb fe ff       	call   0x445ca8
4571a7:	8b 43 04             	mov    0x4(%ebx),%eax
4571aa:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
4571ae:	74 1d                	je     0x4571cd
4571b0:	e8 ff f6 ff ff       	call   0x4568b4
4571b5:	85 c0                	test   %eax,%eax
4571b7:	74 14                	je     0x4571cd
4571b9:	83 b8 50 02 00 00 00 	cmpl   $0x0,0x250(%eax)
4571c0:	74 0b                	je     0x4571cd
4571c2:	8b 80 50 02 00 00    	mov    0x250(%eax),%eax
4571c8:	8b 10                	mov    (%eax),%edx
4571ca:	ff 52 0c             	call   *0xc(%edx)
4571cd:	0f b7 fe             	movzwl %si,%edi
4571d0:	57                   	push   %edi
4571d1:	8b 43 04             	mov    0x4(%ebx),%eax
4571d4:	e8 17 ef fe ff       	call   0x4460f0
4571d9:	50                   	push   %eax
4571da:	a1 b4 db 46 00       	mov    0x46dbb4,%eax
4571df:	8b 00                	mov    (%eax),%eax
4571e1:	ff d0                	call   *%eax
4571e3:	3b 43 0c             	cmp    0xc(%ebx),%eax
4571e6:	74 19                	je     0x457201
4571e8:	6a ff                	push   $0xffffffff
4571ea:	8b 43 0c             	mov    0xc(%ebx),%eax
4571ed:	50                   	push   %eax
4571ee:	57                   	push   %edi
4571ef:	8b 43 04             	mov    0x4(%ebx),%eax
4571f2:	e8 f9 ee fe ff       	call   0x4460f0
4571f7:	50                   	push   %eax
4571f8:	a1 dc dd 46 00       	mov    0x46dddc,%eax
4571fd:	8b 00                	mov    (%eax),%eax
4571ff:	ff d0                	call   *%eax
457201:	5f                   	pop    %edi
457202:	5e                   	pop    %esi
457203:	5b                   	pop    %ebx
457204:	c3                   	ret
457205:	8d 40 00             	lea    0x0(%eax),%eax
457208:	53                   	push   %ebx
457209:	56                   	push   %esi
45720a:	8b d8                	mov    %eax,%ebx
45720c:	3b 53 30             	cmp    0x30(%ebx),%edx
45720f:	74 36                	je     0x457247
457211:	8b f2                	mov    %edx,%esi
457213:	85 f6                	test   %esi,%esi
457215:	75 18                	jne    0x45722f
457217:	33 c0                	xor    %eax,%eax
457219:	8a 43 18             	mov    0x18(%ebx),%al
45721c:	8b 04 85 b4 3d 46 00 	mov    0x463db4(,%eax,4),%eax
457223:	50                   	push   %eax
457224:	a1 44 db 46 00       	mov    0x46db44,%eax
457229:	8b 00                	mov    (%eax),%eax
45722b:	ff d0                	call   *%eax
45722d:	8b d0                	mov    %eax,%edx
45722f:	89 53 30             	mov    %edx,0x30(%ebx)
457232:	c6 43 44 01          	movb   $0x1,0x44(%ebx)
457236:	8b 43 04             	mov    0x4(%ebx),%eax
457239:	e8 7e 05 00 00       	call   0x4577bc
45723e:	85 f6                	test   %esi,%esi
457240:	75 05                	jne    0x457247
457242:	33 c0                	xor    %eax,%eax
457244:	89 43 30             	mov    %eax,0x30(%ebx)
457247:	5e                   	pop    %esi
457248:	5b                   	pop    %ebx
457249:	c3                   	ret
45724a:	8b c0                	mov    %eax,%eax