4fbc24:	83 c4 08             	add    $0x8,%esp
4fbc27:	85 c0                	test   %eax,%eax
4fbc29:	74 04                	je     0x4fbc2f
4fbc2b:	8b 08                	mov    (%eax),%ecx
4fbc2d:	eb 05                	jmp    0x4fbc34
4fbc2f:	b9 40 1c 6b 00       	mov    $0x6b1c40,%ecx
4fbc34:	8b 45 c8             	mov    -0x38(%ebp),%eax
4fbc37:	8b 7d a8             	mov    -0x58(%ebp),%edi
4fbc3a:	8b 40 20             	mov    0x20(%eax),%eax
4fbc3d:	89 0c b8             	mov    %ecx,(%eax,%edi,4)
4fbc40:	47                   	inc    %edi
4fbc41:	89 7d a8             	mov    %edi,-0x58(%ebp)
4fbc44:	8b 75 a4             	mov    -0x5c(%ebp),%esi
4fbc47:	8b 55 d0             	mov    -0x30(%ebp),%edx
4fbc4a:	83 c6 30             	add    $0x30,%esi
4fbc4d:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4fbc50:	3b 75 94             	cmp    -0x6c(%ebp),%esi
4fbc53:	0f 82 aa fe ff ff    	jb     0x4fbb03
4fbc59:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4fbc5c:	33 f6                	xor    %esi,%esi
4fbc5e:	39 75 90             	cmp    %esi,-0x70(%ebp)
4fbc61:	7e 42                	jle    0x4fbca5
4fbc63:	8b 5d c8             	mov    -0x38(%ebp),%ebx
4fbc66:	33 d2                	xor    %edx,%edx
4fbc68:	33 c9                	xor    %ecx,%ecx
4fbc6a:	8b c6                	mov    %esi,%eax
4fbc6c:	0f ab c2             	bts    %eax,%edx
4fbc6f:	83 f8 20             	cmp    $0x20,%eax
4fbc72:	0f 43 ca             	cmovae %edx,%ecx
4fbc75:	33 d1                	xor    %ecx,%edx
4fbc77:	83 f8 40             	cmp    $0x40,%eax
4fbc7a:	0f 43 ca             	cmovae %edx,%ecx
4fbc7d:	23 55 b4             	and    -0x4c(%ebp),%edx
4fbc80:	23 4d d4             	and    -0x2c(%ebp),%ecx
4fbc83:	0b d1                	or     %ecx,%edx
4fbc85:	74 12                	je     0x4fbc99
4fbc87:	8b 43 04             	mov    0x4(%ebx),%eax
4fbc8a:	66 89 34 78          	mov    %si,(%eax,%edi,2)
4fbc8e:	8b 43 20             	mov    0x20(%ebx),%eax
4fbc91:	c7 04 b8 40 1c 6b 00 	movl   $0x6b1c40,(%eax,%edi,4)
4fbc98:	47                   	inc    %edi
4fbc99:	46                   	inc    %esi
4fbc9a:	3b 75 90             	cmp    -0x70(%ebp),%esi
4fbc9d:	7c c7                	jl     0x4fbc66
4fbc9f:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4fbca2:	89 7d a8             	mov    %edi,-0x58(%ebp)
4fbca5:	8b 45 d0             	mov    -0x30(%ebp),%eax
4fbca8:	83 78 3c 00          	cmpl   $0x0,0x3c(%eax)
4fbcac:	7f 42                	jg     0x4fbcf0
4fbcae:	7c 06                	jl     0x4fbcb6
4fbcb0:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
4fbcb4:	73 3a                	jae    0x4fbcf0
4fbcb6:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4fbcb9:	b8 3f 00 00 00       	mov    $0x3f,%eax
4fbcbe:	8b 55 c8             	mov    -0x38(%ebp),%edx
4fbcc1:	66 3b 46 2a          	cmp    0x2a(%esi),%ax
4fbcc5:	7d 2c                	jge    0x4fbcf3
4fbcc7:	8b c8                	mov    %eax,%ecx
4fbcc9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4fbcd0:	8b 42 04             	mov    0x4(%edx),%eax
4fbcd3:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
4fbcd7:	41                   	inc    %ecx
4fbcd8:	8b 42 20             	mov    0x20(%edx),%eax
4fbcdb:	c7 04 b8 40 1c 6b 00 	movl   $0x6b1c40,(%eax,%edi,4)
4fbce2:	47                   	inc    %edi
4fbce3:	0f bf 46 2a          	movswl 0x2a(%esi),%eax
4fbce7:	3b c8                	cmp    %eax,%ecx
4fbce9:	7c e5                	jl     0x4fbcd0
4fbceb:	89 7d a8             	mov    %edi,-0x58(%ebp)
4fbcee:	eb 03                	jmp    0x4fbcf3
4fbcf0:	8b 55 c8             	mov    -0x38(%ebp),%edx
4fbcf3:	8b 42 04             	mov    0x4(%edx),%eax
4fbcf6:	83 c9 ff             	or     $0xffffffff,%ecx
4fbcf9:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
4fbcfd:	8b 42 20             	mov    0x20(%edx),%eax
4fbd00:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4fbd03:	8b 55 d8             	mov    -0x28(%ebp),%edx
4fbd06:	42                   	inc    %edx
4fbd07:	c7 04 b8 40 1c 6b 00 	movl   $0x6b1c40,(%eax,%edi,4)
4fbd0e:	8b 7d cc             	mov    -0x34(%ebp),%edi
4fbd11:	8b 47 28             	mov    0x28(%edi),%eax
4fbd14:	89 41 08             	mov    %eax,0x8(%ecx)
4fbd17:	ff 47 28             	incl   0x28(%edi)
4fbd1a:	8b 71 08             	mov    0x8(%ecx),%esi
4fbd1d:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
4fbd20:	39 4b 70             	cmp    %ecx,0x70(%ebx)
4fbd23:	7f 11                	jg     0x4fbd36
4fbd25:	6a 00                	push   $0x0
4fbd27:	52                   	push   %edx
4fbd28:	56                   	push   %esi
4fbd29:	6a 63                	push   $0x63
4fbd2b:	53                   	push   %ebx
4fbd2c:	e8 cf a7 00 00       	call   0x506500
4fbd31:	83 c4 14             	add    $0x14,%esp
4fbd34:	eb 2e                	jmp    0x4fbd64
4fbd36:	8d 41 01             	lea    0x1(%ecx),%eax
4fbd39:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbd3c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4fbd3f:	8b 43 68             	mov    0x68(%ebx),%eax
4fbd42:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4fbd45:	c7 04 88 63 00 00 00 	movl   $0x63,(%eax,%ecx,4)
4fbd4c:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
4fbd50:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
4fbd54:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4fbd5b:	00
4fbd5c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4fbd63:	00
4fbd64:	ff 75 c8             	push   -0x38(%ebp)
4fbd67:	8b 77 08             	mov    0x8(%edi),%esi
4fbd6a:	57                   	push   %edi
4fbd6b:	e8 90 3f 03 00       	call   0x52fd00
4fbd70:	8b d0                	mov    %eax,%edx
4fbd72:	83 c4 08             	add    $0x8,%esp
4fbd75:	85 d2                	test   %edx,%edx
4fbd77:	74 28                	je     0x4fbda1
4fbd79:	8b 06                	mov    (%esi),%eax
4fbd7b:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
4fbd7f:	74 0e                	je     0x4fbd8f
4fbd81:	52                   	push   %edx
4fbd82:	6a f7                	push   $0xfffffff7
4fbd84:	50                   	push   %eax
4fbd85:	e8 26 7f 00 00       	call   0x503cb0
4fbd8a:	83 c4 0c             	add    $0xc,%esp
4fbd8d:	eb 12                	jmp    0x4fbda1
4fbd8f:	8b 46 6c             	mov    0x6c(%esi),%eax
4fbd92:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
4fbd95:	8b 46 68             	mov    0x68(%esi),%eax
4fbd98:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
4fbd9d:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
4fbda1:	8b 55 b0             	mov    -0x50(%ebp),%edx
4fbda4:	0f b6 42 34          	movzbl 0x34(%edx),%eax
4fbda8:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
4fbdab:	8b 45 b8             	mov    -0x48(%ebp),%eax
4fbdae:	8b 00                	mov    (%eax),%eax
4fbdb0:	8b 40 04             	mov    0x4(%eax),%eax
4fbdb3:	f6 44 c8 30 10       	testb  $0x10,0x30(%eax,%ecx,8)
4fbdb8:	8d 3c c8             	lea    (%eax,%ecx,8),%edi
4fbdbb:	0f 84 db 00 00 00    	je     0x4fbe9c
4fbdc1:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
4fbdc4:	8b 57 24             	mov    0x24(%edi),%edx
4fbdc7:	89 55 b8             	mov    %edx,-0x48(%ebp)
4fbdca:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
4fbdcd:	39 4b 70             	cmp    %ecx,0x70(%ebx)
4fbdd0:	7f 19                	jg     0x4fbdeb
4fbdd2:	6a 00                	push   $0x0
4fbdd4:	6a 00                	push   $0x0
4fbdd6:	6a 00                	push   $0x0
4fbdd8:	6a 45                	push   $0x45
4fbdda:	53                   	push   %ebx
4fbddb:	e8 20 a7 00 00       	call   0x506500
4fbde0:	8b 55 b8             	mov    -0x48(%ebp),%edx
4fbde3:	83 c4 14             	add    $0x14,%esp
4fbde6:	89 45 8c             	mov    %eax,-0x74(%ebp)
4fbde9:	eb 33                	jmp    0x4fbe1e
4fbdeb:	8d 41 01             	lea    0x1(%ecx),%eax
4fbdee:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbdf1:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4fbdf4:	8b 43 68             	mov    0x68(%ebx),%eax
4fbdf7:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
4fbdfe:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
4fbe05:	00
4fbe06:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
4fbe0d:	00
4fbe0e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4fbe15:	00
4fbe16:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4fbe1d:	00
4fbe1e:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
4fbe21:	8b 77 20             	mov    0x20(%edi),%esi
4fbe24:	39 4b 70             	cmp    %ecx,0x70(%ebx)
4fbe27:	7f 14                	jg     0x4fbe3d
4fbe29:	56                   	push   %esi
4fbe2a:	6a 00                	push   $0x0
4fbe2c:	52                   	push   %edx
4fbe2d:	6a 0d                	push   $0xd
4fbe2f:	53                   	push   %ebx
4fbe30:	e8 cb a6 00 00       	call   0x506500
4fbe35:	8b 55 b8             	mov    -0x48(%ebp),%edx
4fbe38:	83 c4 14             	add    $0x14,%esp
4fbe3b:	eb 2e                	jmp    0x4fbe6b
4fbe3d:	8d 41 01             	lea    0x1(%ecx),%eax
4fbe40:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbe43:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4fbe46:	8b 43 68             	mov    0x68(%ebx),%eax
4fbe49:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4fbe4c:	c7 04 88 0d 00 00 00 	movl   $0xd,(%eax,%ecx,4)
4fbe53:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4fbe57:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
4fbe5e:	00
4fbe5f:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
4fbe63:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4fbe6a:	00
4fbe6b:	8b 73 6c             	mov    0x6c(%ebx),%esi
4fbe6e:	39 73 70             	cmp    %esi,0x70(%ebx)
4fbe71:	7f 14                	jg     0x4fbe87
4fbe73:	6a 00                	push   $0x0
4fbe75:	6a 00                	push   $0x0
4fbe77:	52                   	push   %edx
4fbe78:	6a 0e                	push   $0xe
4fbe7a:	53                   	push   %ebx
4fbe7b:	e8 80 a6 00 00       	call   0x506500
4fbe80:	83 c4 14             	add    $0x14,%esp
4fbe83:	8b f0                	mov    %eax,%esi
4fbe85:	eb 66                	jmp    0x4fbeed
4fbe87:	8d 46 01             	lea    0x1(%esi),%eax
4fbe8a:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbe8d:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
4fbe90:	8b 43 68             	mov    0x68(%ebx),%eax
4fbe93:	c7 04 88 0e 00 00 00 	movl   $0xe,(%eax,%ecx,4)
4fbe9a:	eb 32                	jmp    0x4fbece
4fbe9c:	8b 73 6c             	mov    0x6c(%ebx),%esi
4fbe9f:	8b 52 04             	mov    0x4(%edx),%edx
4fbea2:	39 73 70             	cmp    %esi,0x70(%ebx)
4fbea5:	7f 14                	jg     0x4fbebb
4fbea7:	6a 00                	push   $0x0
4fbea9:	6a 00                	push   $0x0
4fbeab:	52                   	push   %edx
4fbeac:	6a 25                	push   $0x25
4fbeae:	53                   	push   %ebx
4fbeaf:	e8 4c a6 00 00       	call   0x506500
4fbeb4:	83 c4 14             	add    $0x14,%esp
4fbeb7:	8b f0                	mov    %eax,%esi
4fbeb9:	eb 32                	jmp    0x4fbeed
4fbebb:	8d 46 01             	lea    0x1(%esi),%eax
4fbebe:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbec1:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
4fbec4:	8b 43 68             	mov    0x68(%ebx),%eax
4fbec7:	c7 04 88 25 00 00 00 	movl   $0x25,(%eax,%ecx,4)
4fbece:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4fbed1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4fbed8:	00
4fbed9:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4fbee0:	00
4fbee1:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
4fbee8:	00
4fbee9:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4fbeed:	8b 4d 98             	mov    -0x68(%ebp),%ecx
4fbef0:	85 c9                	test   %ecx,%ecx
4fbef2:	74 23                	je     0x4fbf17
4fbef4:	8b 45 cc             	mov    -0x34(%ebp),%eax
4fbef7:	6a 10                	push   $0x10
4fbef9:	ff 48 38             	decl   0x38(%eax)
4fbefc:	8b 50 38             	mov    0x38(%eax),%edx
4fbeff:	52                   	push   %edx
4fbf00:	51                   	push   %ecx
4fbf01:	50                   	push   %eax
4fbf02:	89 55 88             	mov    %edx,-0x78(%ebp)
4fbf05:	e8 a6 ab 02 00       	call   0x526ab0
4fbf0a:	8b 45 ac             	mov    -0x54(%ebp),%eax
4fbf0d:	83 c4 10             	add    $0x10,%esp
4fbf10:	81 48 24 00 00 02 00 	orl    $0x20000,0x24(%eax)
4fbf17:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4fbf1a:	8a 41 13             	mov    0x13(%ecx),%al
4fbf1d:	84 c0                	test   %al,%al
4fbf1f:	75 08                	jne    0x4fbf29
4fbf21:	ff 41 2c             	incl   0x2c(%ecx)
4fbf24:	8b 41 2c             	mov    0x2c(%ecx),%eax
4fbf27:	eb 0f                	jmp    0x4fbf38
4fbf29:	fe c8                	dec    %al
4fbf2b:	88 41 13             	mov    %al,0x13(%ecx)
4fbf2e:	0f b6 c0             	movzbl %al,%eax
4fbf31:	8b 84 81 94 00 00 00 	mov    0x94(%ecx,%eax,4),%eax
4fbf38:	6a 00                	push   $0x0
4fbf3a:	6a 00                	push   $0x0
4fbf3c:	6a 00                	push   $0x0
4fbf3e:	6a 00                	push   $0x0
4fbf40:	50                   	push   %eax
4fbf41:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4fbf44:	8b 45 b0             	mov    -0x50(%ebp),%eax
4fbf47:	ff 70 04             	push   0x4(%eax)
4fbf4a:	ff 75 c8             	push   -0x38(%ebp)
4fbf4d:	51                   	push   %ecx
4fbf4e:	e8 fd 05 03 00       	call   0x52c550
4fbf53:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
4fbf56:	83 c4 20             	add    $0x20,%esp
4fbf59:	89 45 94             	mov    %eax,-0x6c(%ebp)
4fbf5c:	8b 45 b0             	mov    -0x50(%ebp),%eax
4fbf5f:	8b 40 08             	mov    0x8(%eax),%eax
4fbf62:	89 45 b8             	mov    %eax,-0x48(%ebp)
4fbf65:	39 4b 70             	cmp    %ecx,0x70(%ebx)
4fbf68:	7f 17                	jg     0x4fbf81
4fbf6a:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4fbf6d:	6a 00                	push   $0x0
4fbf6f:	52                   	push   %edx
4fbf70:	50                   	push   %eax
4fbf71:	68 83 00 00 00       	push   $0x83
4fbf76:	53                   	push   %ebx
4fbf77:	e8 84 a5 00 00       	call   0x506500
4fbf7c:	83 c4 14             	add    $0x14,%esp
4fbf7f:	eb 31                	jmp    0x4fbfb2
4fbf81:	8b 55 b8             	mov    -0x48(%ebp),%edx
4fbf84:	8d 41 01             	lea    0x1(%ecx),%eax
4fbf87:	89 43 6c             	mov    %eax,0x6c(%ebx)
4fbf8a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4fbf8d:	8b 43 68             	mov    0x68(%ebx),%eax
4fbf90:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4fbf94:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4fbf97:	c7 04 88 83 00 00 00 	movl   $0x83,(%eax,%ecx,4)
4fbf9e:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
4fbfa2:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4fbfa9:	00
4fbfaa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4fbfb1:	00
4fbfb2:	8b 43 6c             	mov    0x6c(%ebx),%eax
4fbfb5:	85 c0                	test   %eax,%eax
4fbfb7:	7e 10                	jle    0x4fbfc9
4fbfb9:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
4fbfbc:	ba 10 00 00 00       	mov    $0x10,%edx
4fbfc1:	8b 43 68             	mov    0x68(%ebx),%eax
4fbfc4:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
4fbfc9:	83 7d 98 00          	cmpl   $0x0,-0x68(%ebp)
4fbfcd:	74 26                	je     0x4fbff5
4fbfcf:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4fbfd2:	8b 55 88             	mov    -0x78(%ebp),%edx
4fbfd5:	f7 d2                	not    %edx
4fbfd7:	8b 41 3c             	mov    0x3c(%ecx),%eax
4fbfda:	03 41 38             	add    0x38(%ecx),%eax
4fbfdd:	79 0d                	jns    0x4fbfec
4fbfdf:	52                   	push   %edx
4fbfe0:	53                   	push   %ebx
4fbfe1:	51                   	push   %ecx
4fbfe2:	e8 b9 77 01 00       	call   0x5137a0
4fbfe7:	83 c4 0c             	add    $0xc,%esp
4fbfea:	eb 09                	jmp    0x4fbff5
4fbfec:	8b 49 40             	mov    0x40(%ecx),%ecx
4fbfef:	8b 43 6c             	mov    0x6c(%ebx),%eax
4fbff2:	89 04 91             	mov    %eax,(%ecx,%edx,4)
4fbff5:	f6 47 30 10          	testb  $0x10,0x30(%edi)
4fbff9:	0f 84 9a 00 00 00    	je     0x4fc099
4fbfff:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
4fc002:	85 c9                	test   %ecx,%ecx
4fc004:	79 04                	jns    0x4fc00a
4fc006:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
4fc009:	49                   	dec    %ecx
4fc00a:	8b 03                	mov    (%ebx),%eax
4fc00c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
4fc010:	74 07                	je     0x4fc019
4fc012:	b9 ec 02 73 00       	mov    $0x7302ec,%ecx
4fc017:	eb 09                	jmp    0x4fc022
4fc019:	8b 43 68             	mov    0x68(%ebx),%eax
4fc01c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4fc01f:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
4fc022:	8b 45 94             	mov    -0x6c(%ebp),%eax
4fc025:	03 45 a8             	add    -0x58(%ebp),%eax
4fc028:	89 41 08             	mov    %eax,0x8(%ecx)
4fc02b:	8b 45 b0             	mov    -0x50(%ebp),%eax
4fc02e:	ff 70 08             	push   0x8(%eax)
4fc031:	ff 77 28             	push   0x28(%edi)
4fc034:	ff 70 04             	push   0x4(%eax)
4fc037:	56                   	push   %esi