53fc7c:	8b 5d 98             	mov    -0x68(%ebp),%ebx
53fc7f:	83 bd 2c ff ff ff 00 	cmpl   $0x0,-0xd4(%ebp)
53fc86:	0f 85 d3 03 00 00    	jne    0x54005f
53fc8c:	83 fe 02             	cmp    $0x2,%esi
53fc8f:	74 0e                	je     0x53fc9f
53fc91:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
53fc97:	e8 74 31 01 00       	call   0x552e10
53fc9c:	83 c4 04             	add    $0x4,%esp
53fc9f:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
53fca5:	85 c0                	test   %eax,%eax
53fca7:	0f 85 f4 00 00 00    	jne    0x53fda1
53fcad:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
53fcb3:	33 f6                	xor    %esi,%esi
53fcb5:	85 c9                	test   %ecx,%ecx
53fcb7:	74 2a                	je     0x53fce3
53fcb9:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
53fcbf:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
53fcc5:	85 c0                	test   %eax,%eax
53fcc7:	78 0a                	js     0x53fcd3
53fcc9:	2b 85 08 ff ff ff    	sub    -0xf8(%ebp),%eax
53fccf:	c6 04 10 00          	movb   $0x0,(%eax,%edx,1)
53fcd3:	85 ff                	test   %edi,%edi
53fcd5:	78 0c                	js     0x53fce3
53fcd7:	8b c7                	mov    %edi,%eax
53fcd9:	2b 85 08 ff ff ff    	sub    -0xf8(%ebp),%eax
53fcdf:	c6 04 10 00          	movb   $0x0,(%eax,%edx,1)
53fce3:	83 f9 02             	cmp    $0x2,%ecx
53fce6:	75 63                	jne    0x53fd4b
53fce8:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
53fcee:	33 c0                	xor    %eax,%eax
53fcf0:	85 ff                	test   %edi,%edi
53fcf2:	0f 99 c0             	setns  %al
53fcf5:	2b c8                	sub    %eax,%ecx
53fcf7:	85 c9                	test   %ecx,%ecx
53fcf9:	7e 50                	jle    0x53fd4b
53fcfb:	8b 73 6c             	mov    0x6c(%ebx),%esi
53fcfe:	39 73 70             	cmp    %esi,0x70(%ebx)
53fd01:	7f 15                	jg     0x53fd18
53fd03:	6a 00                	push   $0x0
53fd05:	6a 00                	push   $0x0
53fd07:	6a 00                	push   $0x0
53fd09:	6a 11                	push   $0x11
53fd0b:	53                   	push   %ebx
53fd0c:	e8 ef 67 fc ff       	call   0x506500
53fd11:	83 c4 14             	add    $0x14,%esp
53fd14:	8b f0                	mov    %eax,%esi
53fd16:	eb 33                	jmp    0x53fd4b
53fd18:	8d 46 01             	lea    0x1(%esi),%eax
53fd1b:	89 43 6c             	mov    %eax,0x6c(%ebx)
53fd1e:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
53fd21:	8b 43 68             	mov    0x68(%ebx),%eax
53fd24:	c7 04 88 11 00 00 00 	movl   $0x11,(%eax,%ecx,4)
53fd2b:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
53fd32:	00
53fd33:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
53fd3a:	00
53fd3b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53fd42:	00
53fd43:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53fd4a:	00
53fd4b:	8b 45 90             	mov    -0x70(%ebp),%eax
53fd4e:	6a 00                	push   $0x0
53fd50:	6a 00                	push   $0x0
53fd52:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
53fd58:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
53fd5e:	6a 00                	push   $0x0
53fd60:	6a 61                	push   $0x61
53fd62:	50                   	push   %eax
53fd63:	ff 75 9c             	push   -0x64(%ebp)
53fd66:	e8 15 1d ff ff       	call   0x531a80
53fd6b:	83 c4 20             	add    $0x20,%esp
53fd6e:	85 f6                	test   %esi,%esi
53fd70:	74 23                	je     0x53fd95
53fd72:	8b 53 6c             	mov    0x6c(%ebx),%edx
53fd75:	79 03                	jns    0x53fd7a
53fd77:	8d 72 ff             	lea    -0x1(%edx),%esi
53fd7a:	8b 03                	mov    (%ebx),%eax
53fd7c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
53fd80:	74 07                	je     0x53fd89
53fd82:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
53fd87:	eb 09                	jmp    0x53fd92
53fd89:	8b 43 68             	mov    0x68(%ebx),%eax
53fd8c:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
53fd8f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
53fd92:	89 50 08             	mov    %edx,0x8(%eax)
53fd95:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
53fd9b:	8b b5 58 ff ff ff    	mov    -0xa8(%ebp),%esi
53fda1:	85 f6                	test   %esi,%esi
53fda3:	0f 84 b1 00 00 00    	je     0x53fe5a
53fda9:	85 c0                	test   %eax,%eax
53fdab:	75 33                	jne    0x53fde0
53fdad:	8b 45 8c             	mov    -0x74(%ebp),%eax
53fdb0:	39 85 44 ff ff ff    	cmp    %eax,-0xbc(%ebp)
53fdb6:	74 28                	je     0x53fde0
53fdb8:	8b 9d 60 ff ff ff    	mov    -0xa0(%ebp),%ebx
53fdbe:	3b f8                	cmp    %eax,%edi
53fdc0:	8b 7d 98             	mov    -0x68(%ebp),%edi
53fdc3:	74 24                	je     0x53fde9
53fdc5:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
53fdcb:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
53fdd1:	53                   	push   %ebx
53fdd2:	50                   	push   %eax
53fdd3:	6a 1d                	push   $0x1d
53fdd5:	57                   	push   %edi
53fdd6:	e8 35 1e 00 00       	call   0x541c10
53fddb:	83 c4 18             	add    $0x18,%esp
53fdde:	eb 09                	jmp    0x53fde9
53fde0:	8b 9d 60 ff ff ff    	mov    -0xa0(%ebp),%ebx
53fde6:	8b 7d 98             	mov    -0x68(%ebp),%edi
53fde9:	83 fe 01             	cmp    $0x1,%esi
53fdec:	74 0f                	je     0x53fdfd
53fdee:	8b 45 9c             	mov    -0x64(%ebp),%eax
53fdf1:	ff 48 38             	decl   0x38(%eax)
53fdf4:	8b 40 38             	mov    0x38(%eax),%eax
53fdf7:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
53fdfd:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
53fe04:	8b 55 80             	mov    -0x80(%ebp),%edx
53fe07:	0f 45 95 70 ff ff ff 	cmovne -0x90(%ebp),%edx
53fe0e:	8b 4f 6c             	mov    0x6c(%edi),%ecx
53fe11:	39 4f 70             	cmp    %ecx,0x70(%edi)
53fe14:	7f 14                	jg     0x53fe2a
53fe16:	6a 00                	push   $0x0
53fe18:	53                   	push   %ebx
53fe19:	52                   	push   %edx
53fe1a:	6a 32                	push   $0x32
53fe1c:	57                   	push   %edi
53fe1d:	e8 de 66 fc ff       	call   0x506500
53fe22:	83 c4 14             	add    $0x14,%esp
53fe25:	e9 38 02 00 00       	jmp    0x540062
53fe2a:	8d 41 01             	lea    0x1(%ecx),%eax
53fe2d:	89 47 6c             	mov    %eax,0x6c(%edi)
53fe30:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53fe33:	8b 47 68             	mov    0x68(%edi),%eax
53fe36:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
53fe3d:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53fe41:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
53fe45:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53fe4c:	00
53fe4d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53fe54:	00
53fe55:	e9 08 02 00 00       	jmp    0x540062
53fe5a:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
53fe61:	8b 7d 98             	mov    -0x68(%ebp),%edi
53fe64:	0f 84 48 01 00 00    	je     0x53ffb2
53fe6a:	8b 75 9c             	mov    -0x64(%ebp),%esi
53fe6d:	ff 4e 38             	decl   0x38(%esi)
53fe70:	8b 4f 6c             	mov    0x6c(%edi),%ecx
53fe73:	8b 5e 38             	mov    0x38(%esi),%ebx
53fe76:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
53fe7c:	39 4f 70             	cmp    %ecx,0x70(%edi)
53fe7f:	7f 1c                	jg     0x53fe9d
53fe81:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
53fe87:	6a 00                	push   $0x0
53fe89:	52                   	push   %edx
53fe8a:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
53fe90:	6a 25                	push   $0x25
53fe92:	57                   	push   %edi
53fe93:	e8 68 66 fc ff       	call   0x506500
53fe98:	83 c4 14             	add    $0x14,%esp
53fe9b:	eb 37                	jmp    0x53fed4
53fe9d:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
53fea3:	8d 41 01             	lea    0x1(%ecx),%eax
53fea6:	89 47 6c             	mov    %eax,0x6c(%edi)
53fea9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53feac:	8b 47 68             	mov    0x68(%edi),%eax
53feaf:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53feb3:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
53feb9:	c7 04 88 25 00 00 00 	movl   $0x25,(%eax,%ecx,4)
53fec0:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53fec4:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53fecb:	00
53fecc:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53fed3:	00
53fed4:	8b 4f 6c             	mov    0x6c(%edi),%ecx
53fed7:	89 8d f8 fe ff ff    	mov    %ecx,-0x108(%ebp)
53fedd:	39 4f 70             	cmp    %ecx,0x70(%edi)
53fee0:	7f 21                	jg     0x53ff03
53fee2:	6a 00                	push   $0x0
53fee4:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
53feea:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
53fef0:	6a 7e                	push   $0x7e
53fef2:	57                   	push   %edi
53fef3:	e8 08 66 fc ff       	call   0x506500
53fef8:	83 c4 14             	add    $0x14,%esp
53fefb:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
53ff01:	eb 37                	jmp    0x53ff3a
53ff03:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
53ff09:	8d 41 01             	lea    0x1(%ecx),%eax
53ff0c:	89 47 6c             	mov    %eax,0x6c(%edi)
53ff0f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53ff12:	8b 47 68             	mov    0x68(%edi),%eax
53ff15:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53ff19:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
53ff1f:	c7 04 88 7e 00 00 00 	movl   $0x7e,(%eax,%ecx,4)
53ff26:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53ff2a:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53ff31:	00
53ff32:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ff39:	00
53ff3a:	8b 57 6c             	mov    0x6c(%edi),%edx
53ff3d:	39 57 70             	cmp    %edx,0x70(%edi)
53ff40:	7f 19                	jg     0x53ff5b
53ff42:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
53ff48:	53                   	push   %ebx
53ff49:	ff 75 8c             	push   -0x74(%ebp)
53ff4c:	6a 1d                	push   $0x1d
53ff4e:	57                   	push   %edi
53ff4f:	e8 ac 65 fc ff       	call   0x506500
53ff54:	83 c4 14             	add    $0x14,%esp
53ff57:	8b d0                	mov    %eax,%edx
53ff59:	eb 33                	jmp    0x53ff8e
53ff5b:	8b 75 8c             	mov    -0x74(%ebp),%esi
53ff5e:	8d 42 01             	lea    0x1(%edx),%eax
53ff61:	89 47 6c             	mov    %eax,0x6c(%edi)
53ff64:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
53ff67:	8b 47 68             	mov    0x68(%edi),%eax
53ff6a:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
53ff6e:	8b 9d 70 ff ff ff    	mov    -0x90(%ebp),%ebx
53ff74:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
53ff78:	8b 75 9c             	mov    -0x64(%ebp),%esi
53ff7b:	c7 04 88 1d 00 00 00 	movl   $0x1d,(%eax,%ecx,4)
53ff82:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
53ff86:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ff8d:	00
53ff8e:	8b 07                	mov    (%edi),%eax
53ff90:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
53ff94:	0f 85 cb 00 00 00    	jne    0x540065
53ff9a:	8b 47 68             	mov    0x68(%edi),%eax
53ff9d:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
53ffa0:	c6 44 88 01 fd       	movb   $0xfd,0x1(%eax,%ecx,4)
53ffa5:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53ffac:	00
53ffad:	e9 b3 00 00 00       	jmp    0x540065
53ffb2:	8b 5f 6c             	mov    0x6c(%edi),%ebx
53ffb5:	8b 75 80             	mov    -0x80(%ebp),%esi
53ffb8:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
53ffbe:	39 5f 70             	cmp    %ebx,0x70(%edi)
53ffc1:	7f 23                	jg     0x53ffe6
53ffc3:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
53ffc9:	56                   	push   %esi
53ffca:	52                   	push   %edx
53ffcb:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
53ffd1:	6a 2a                	push   $0x2a
53ffd3:	57                   	push   %edi
53ffd4:	e8 27 65 fc ff       	call   0x506500
53ffd9:	8b d8                	mov    %eax,%ebx
53ffdb:	83 c4 14             	add    $0x14,%esp
53ffde:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
53ffe4:	eb 33                	jmp    0x540019
53ffe6:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
53ffec:	8d 43 01             	lea    0x1(%ebx),%eax
53ffef:	89 47 6c             	mov    %eax,0x6c(%edi)
53fff2:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
53fff5:	8b 47 68             	mov    0x68(%edi),%eax
53fff8:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53fffc:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
540002:	c7 04 88 2a 00 00 00 	movl   $0x2a,(%eax,%ecx,4)
540009:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
54000d:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
540011:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540018:	00
540019:	8b 4f 6c             	mov    0x6c(%edi),%ecx
54001c:	39 4f 70             	cmp    %ecx,0x70(%edi)
54001f:	7f 12                	jg     0x540033
540021:	56                   	push   %esi
540022:	53                   	push   %ebx
540023:	ff 75 8c             	push   -0x74(%ebp)
540026:	6a 20                	push   $0x20
540028:	57                   	push   %edi
540029:	e8 d2 64 fc ff       	call   0x506500
54002e:	83 c4 14             	add    $0x14,%esp
540031:	eb 2f                	jmp    0x540062
540033:	8b 55 8c             	mov    -0x74(%ebp),%edx
540036:	8d 41 01             	lea    0x1(%ecx),%eax
540039:	89 47 6c             	mov    %eax,0x6c(%edi)
54003c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
54003f:	8b 47 68             	mov    0x68(%edi),%eax
540042:	c7 04 88 20 00 00 00 	movl   $0x20,(%eax,%ecx,4)
540049:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
54004d:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
540051:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
540055:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
54005c:	00
54005d:	eb 03                	jmp    0x540062
54005f:	8b 7d 98             	mov    -0x68(%ebp),%edi
540062:	8b 75 9c             	mov    -0x64(%ebp),%esi
540065:	80 7d 97 00          	cmpb   $0x0,-0x69(%ebp)
540069:	0f 84 e5 00 00 00    	je     0x540154
54006f:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
540075:	8b 9d 00 ff ff ff    	mov    -0x100(%ebp),%ebx
54007b:	53                   	push   %ebx
54007c:	56                   	push   %esi
54007d:	e8 ce 51 fe ff       	call   0x525250
540082:	8b f8                	mov    %eax,%edi
540084:	83 c4 0c             	add    $0xc,%esp
540087:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
54008d:	3b f8                	cmp    %eax,%edi
54008f:	74 71                	je     0x540102
540091:	8b 76 08             	mov    0x8(%esi),%esi
540094:	85 f6                	test   %esi,%esi
540096:	74 67                	je     0x5400ff
540098:	8b 53 04             	mov    0x4(%ebx),%edx
54009b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
54009e:	81 e2 00 00 20 00    	and    $0x200000,%edx
5400a4:	f7 da                	neg    %edx
5400a6:	1b d2                	sbb    %edx,%edx
5400a8:	83 c2 4e             	add    $0x4e,%edx
5400ab:	39 4e 70             	cmp    %ecx,0x70(%esi)
5400ae:	7f 10                	jg     0x5400c0
5400b0:	6a 00                	push   $0x0
5400b2:	50                   	push   %eax
5400b3:	57                   	push   %edi
5400b4:	52                   	push   %edx
5400b5:	56                   	push   %esi
5400b6:	e8 45 64 fc ff       	call   0x506500
5400bb:	83 c4 14             	add    $0x14,%esp
5400be:	eb 39                	jmp    0x5400f9
5400c0:	8d 41 01             	lea    0x1(%ecx),%eax
5400c3:	89 46 6c             	mov    %eax,0x6c(%esi)
5400c6:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5400c9:	8b 46 68             	mov    0x68(%esi),%eax
5400cc:	88 14 88             	mov    %dl,(%eax,%ecx,4)
5400cf:	33 d2                	xor    %edx,%edx
5400d1:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
5400d6:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
5400dc:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
5400e0:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5400e4:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5400eb:	00
5400ec:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5400f3:	00
5400f4:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
5400f9:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
5400ff:	8b 75 9c             	mov    -0x64(%ebp),%esi
540102:	8b 7d 98             	mov    -0x68(%ebp),%edi
540105:	8b 4f 6c             	mov    0x6c(%edi),%ecx
540108:	39 4f 70             	cmp    %ecx,0x70(%edi)
54010b:	7f 12                	jg     0x54011f
54010d:	6a 00                	push   $0x0
54010f:	6a 00                	push   $0x0
540111:	50                   	push   %eax
540112:	6a 0f                	push   $0xf
540114:	57                   	push   %edi
540115:	e8 e6 63 fc ff       	call   0x506500
54011a:	83 c4 14             	add    $0x14,%esp
54011d:	eb 35                	jmp    0x540154
54011f:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
540125:	8d 41 01             	lea    0x1(%ecx),%eax
540128:	89 47 6c             	mov    %eax,0x6c(%edi)
54012b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx