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
54012e:	8b 47 68             	mov    0x68(%edi),%eax
540131:	c7 04 88 0f 00 00 00 	movl   $0xf,(%eax,%ecx,4)
540138:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
54013c:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
540143:	00
540144:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
54014b:	00
54014c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540153:	00
540154:	80 bd 7f ff ff ff 00 	cmpb   $0x0,-0x81(%ebp)
54015b:	0f 85 b1 00 00 00    	jne    0x540212
540161:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
540168:	0f 85 b1 00 00 00    	jne    0x54021f
54016e:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
540174:	85 c0                	test   %eax,%eax
540176:	0f 84 79 01 00 00    	je     0x5402f5
54017c:	33 db                	xor    %ebx,%ebx
54017e:	ff 75 18             	push   0x18(%ebp)
540181:	ff 75 90             	push   -0x70(%ebp)
540184:	6a 03                	push   $0x3
540186:	6a 00                	push   $0x0
540188:	ff 75 88             	push   -0x78(%ebp)
54018b:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
540191:	56                   	push   %esi
540192:	e8 e9 e0 ff ff       	call   0x53e280
540197:	8b 4d 90             	mov    -0x70(%ebp),%ecx
54019a:	0b d8                	or     %eax,%ebx
54019c:	33 c0                	xor    %eax,%eax
54019e:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
5401a4:	83 c4 1c             	add    $0x1c,%esp
5401a7:	33 f6                	xor    %esi,%esi
5401a9:	66 3b 41 2a          	cmp    0x2a(%ecx),%ax
5401ad:	0f 8d d9 00 00 00    	jge    0x54028c
5401b3:	33 ff                	xor    %edi,%edi
5401b5:	8b 41 04             	mov    0x4(%ecx),%eax
5401b8:	56                   	push   %esi
5401b9:	51                   	push   %ecx
5401ba:	0f b7 5c 38 10       	movzwl 0x10(%eax,%edi,1),%ebx
5401bf:	e8 8c dc ff ff       	call   0x53de50
5401c4:	0f bf d0             	movswl %ax,%edx
5401c7:	83 c4 08             	add    $0x8,%esp
5401ca:	03 95 f0 fe ff ff    	add    -0x110(%ebp),%edx
5401d0:	83 bd 34 ff ff ff ff 	cmpl   $0xffffffff,-0xcc(%ebp)
5401d7:	0f 84 86 00 00 00    	je     0x540263
5401dd:	83 fe 20             	cmp    $0x20,%esi
5401e0:	7d 11                	jge    0x5401f3
5401e2:	b8 01 00 00 00       	mov    $0x1,%eax
5401e7:	8b ce                	mov    %esi,%ecx
5401e9:	d3 e0                	shl    %cl,%eax
5401eb:	85 85 34 ff ff ff    	test   %eax,-0xcc(%ebp)
5401f1:	75 70                	jne    0x540263
5401f3:	f6 c3 01             	test   $0x1,%bl
5401f6:	75 6b                	jne    0x540263
5401f8:	8b 5d 98             	mov    -0x68(%ebp),%ebx
5401fb:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
5401fe:	39 4b 70             	cmp    %ecx,0x70(%ebx)
540201:	7f 2f                	jg     0x540232
540203:	6a 00                	push   $0x0
540205:	52                   	push   %edx
540206:	6a 00                	push   $0x0
540208:	6a 48                	push   $0x48
54020a:	53                   	push   %ebx
54020b:	e8 f0 62 fc ff       	call   0x506500
540210:	eb 61                	jmp    0x540273
540212:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
540219:	0f 84 5d ff ff ff    	je     0x54017c
54021f:	ff 75 90             	push   -0x70(%ebp)
540222:	56                   	push   %esi
540223:	e8 58 9f fe ff       	call   0x52a180
540228:	83 c4 08             	add    $0x8,%esp
54022b:	8b d8                	mov    %eax,%ebx
54022d:	e9 4c ff ff ff       	jmp    0x54017e
540232:	8d 41 01             	lea    0x1(%ecx),%eax
540235:	89 43 6c             	mov    %eax,0x6c(%ebx)
540238:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
54023b:	8b 43 68             	mov    0x68(%ebx),%eax
54023e:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
540245:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
54024c:	00
54024d:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
540251:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
540258:	00
540259:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540260:	00
540261:	eb 13                	jmp    0x540276
540263:	52                   	push   %edx
540264:	56                   	push   %esi
540265:	ff 75 8c             	push   -0x74(%ebp)
540268:	ff 75 90             	push   -0x70(%ebp)
54026b:	ff 75 98             	push   -0x68(%ebp)
54026e:	e8 4d 3e fe ff       	call   0x5240c0
540273:	83 c4 14             	add    $0x14,%esp
540276:	8b 4d 90             	mov    -0x70(%ebp),%ecx
540279:	46                   	inc    %esi
54027a:	83 c7 14             	add    $0x14,%edi
54027d:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
540281:	3b f0                	cmp    %eax,%esi
540283:	0f 8c 2c ff ff ff    	jl     0x5401b5
540289:	8b 7d 98             	mov    -0x68(%ebp),%edi
54028c:	80 7d 97 00          	cmpb   $0x0,-0x69(%ebp)
540290:	75 5d                	jne    0x5402ef
540292:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
540299:	75 54                	jne    0x5402ef
54029b:	8b 4f 6c             	mov    0x6c(%edi),%ecx
54029e:	39 4f 70             	cmp    %ecx,0x70(%edi)
5402a1:	7f 18                	jg     0x5402bb
5402a3:	6a 00                	push   $0x0
5402a5:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5402ab:	ff 75 80             	push   -0x80(%ebp)
5402ae:	6a 4d                	push   $0x4d
5402b0:	57                   	push   %edi
5402b1:	e8 4a 62 fc ff       	call   0x506500
5402b6:	83 c4 14             	add    $0x14,%esp
5402b9:	eb 34                	jmp    0x5402ef
5402bb:	8b 55 80             	mov    -0x80(%ebp),%edx
5402be:	8d 41 01             	lea    0x1(%ecx),%eax
5402c1:	89 47 6c             	mov    %eax,0x6c(%edi)
5402c4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5402c7:	8b 47 68             	mov    0x68(%edi),%eax
5402ca:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5402ce:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
5402d4:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
5402db:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5402df:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5402e6:	00
5402e7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5402ee:	00
5402ef:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
5402f5:	ff 75 18             	push   0x18(%ebp)
5402f8:	ff 75 90             	push   -0x70(%ebp)
5402fb:	6a 01                	push   $0x1
5402fd:	6a 01                	push   $0x1
5402ff:	ff 75 88             	push   -0x78(%ebp)
540302:	50                   	push   %eax
540303:	ff 75 9c             	push   -0x64(%ebp)
540306:	e8 75 df ff ff       	call   0x53e280
54030b:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
540311:	8b d0                	mov    %eax,%edx
540313:	8b 45 90             	mov    -0x70(%ebp),%eax
540316:	33 ff                	xor    %edi,%edi
540318:	83 c4 1c             	add    $0x1c,%esp
54031b:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
540321:	33 db                	xor    %ebx,%ebx
540323:	8b f1                	mov    %ecx,%esi
540325:	66 3b 78 2a          	cmp    0x2a(%eax),%di
540329:	8b 7d 98             	mov    -0x68(%ebp),%edi
54032c:	0f 8d a6 01 00 00    	jge    0x5404d8
540332:	33 c9                	xor    %ecx,%ecx
540334:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
54033a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
540340:	0f bf 40 28          	movswl 0x28(%eax),%eax
540344:	3b d8                	cmp    %eax,%ebx
540346:	75 1e                	jne    0x540366
540348:	8b 4f 6c             	mov    0x6c(%edi),%ecx
54034b:	39 4f 70             	cmp    %ecx,0x70(%edi)
54034e:	0f 8f 08 01 00 00    	jg     0x54045c
540354:	6a 00                	push   $0x0
540356:	56                   	push   %esi
540357:	6a 00                	push   $0x0
540359:	6a 48                	push   $0x48
54035b:	57                   	push   %edi
54035c:	e8 9f 61 fc ff       	call   0x506500
540361:	e9 3f 01 00 00       	jmp    0x5404a5
540366:	8b 45 90             	mov    -0x70(%ebp),%eax
540369:	8b 40 04             	mov    0x4(%eax),%eax
54036c:	0f b7 44 08 10       	movzwl 0x10(%eax,%ecx,1),%eax
540371:	a8 60                	test   $0x60,%al
540373:	74 0f                	je     0x540384
540375:	a8 20                	test   $0x20,%al
540377:	8d 46 ff             	lea    -0x1(%esi),%eax
54037a:	0f 44 c6             	cmove  %esi,%eax
54037d:	8b f0                	mov    %eax,%esi
54037f:	e9 2a 01 00 00       	jmp    0x5404ae
540384:	8b 45 84             	mov    -0x7c(%ebp),%eax
540387:	8b 04 98             	mov    (%eax,%ebx,4),%eax