4a30fd:	8b c2                	mov    %edx,%eax
4a30ff:	c1 e8 08             	shr    $0x8,%eax
4a3102:	88 47 0e             	mov    %al,0xe(%edi)
4a3105:	85 d2                	test   %edx,%edx
4a3107:	75 20                	jne    0x4a3129
4a3109:	ba 0c 00 00 00       	mov    $0xc,%edx
4a310e:	b9 01 00 00 00       	mov    $0x1,%ecx
4a3113:	0f b6 44 3a ff       	movzbl -0x1(%edx,%edi,1),%eax
4a3118:	4a                   	dec    %edx
4a3119:	03 c8                	add    %eax,%ecx
4a311b:	88 0c 3a             	mov    %cl,(%edx,%edi,1)
4a311e:	c1 e9 08             	shr    $0x8,%ecx
4a3121:	85 d2                	test   %edx,%edx
4a3123:	75 ee                	jne    0x4a3113
4a3125:	8b 54 24 24          	mov    0x24(%esp),%edx
4a3129:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4a312d:	c1 e3 04             	shl    $0x4,%ebx
4a3130:	2b f3                	sub    %ebx,%esi
4a3132:	03 cb                	add    %ebx,%ecx
4a3134:	03 eb                	add    %ebx,%ebp
4a3136:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4a313a:	83 fe 10             	cmp    $0x10,%esi
4a313d:	73 81                	jae    0x4a30c0
4a313f:	8b 7c 24 14          	mov    0x14(%esp),%edi
4a3143:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
4a3147:	85 f6                	test   %esi,%esi
4a3149:	74 6a                	je     0x4a31b5
4a314b:	8b 44 24 30          	mov    0x30(%esp),%eax
4a314f:	0f 57 c0             	xorps  %xmm0,%xmm0
4a3152:	53                   	push   %ebx
4a3153:	ff 74 24 2c          	push   0x2c(%esp)
4a3157:	6a 01                	push   $0x1
4a3159:	50                   	push   %eax
4a315a:	50                   	push   %eax
4a315b:	0f 11 00             	movups %xmm0,(%eax)
4a315e:	ff 54 24 4c          	call   *0x4c(%esp)
4a3162:	8b 4c 24 38          	mov    0x38(%esp),%ecx
4a3166:	83 c4 14             	add    $0x14,%esp
4a3169:	41                   	inc    %ecx
4a316a:	8b c1                	mov    %ecx,%eax
4a316c:	88 4b 0f             	mov    %cl,0xf(%ebx)
4a316f:	c1 e8 18             	shr    $0x18,%eax
4a3172:	88 43 0c             	mov    %al,0xc(%ebx)
4a3175:	8b c1                	mov    %ecx,%eax
4a3177:	c1 e8 10             	shr    $0x10,%eax
4a317a:	88 43 0d             	mov    %al,0xd(%ebx)
4a317d:	8b c1                	mov    %ecx,%eax
4a317f:	c1 e8 08             	shr    $0x8,%eax
4a3182:	88 43 0e             	mov    %al,0xe(%ebx)
4a3185:	85 c9                	test   %ecx,%ecx
4a3187:	75 09                	jne    0x4a3192
4a3189:	53                   	push   %ebx
4a318a:	e8 71 00 00 00       	call   0x4a3200
4a318f:	83 c4 04             	add    $0x4,%esp
4a3192:	8b 44 24 30          	mov    0x30(%esp),%eax
4a3196:	2b e8                	sub    %eax,%ebp
4a3198:	8b 54 24 10          	mov    0x10(%esp),%edx
4a319c:	2b d0                	sub    %eax,%edx
4a319e:	8d 0c 07             	lea    (%edi,%eax,1),%ecx
4a31a1:	03 fe                	add    %esi,%edi
4a31a3:	8a 04 0a             	mov    (%edx,%ecx,1),%al
4a31a6:	8d 49 01             	lea    0x1(%ecx),%ecx
4a31a9:	32 41 ff             	xor    -0x1(%ecx),%al
4a31ac:	88 44 29 ff          	mov    %al,-0x1(%ecx,%ebp,1)
4a31b0:	83 ee 01             	sub    $0x1,%esi
4a31b3:	75 ee                	jne    0x4a31a3
4a31b5:	8b 44 24 34          	mov    0x34(%esp),%eax
4a31b9:	89 38                	mov    %edi,(%eax)
4a31bb:	5f                   	pop    %edi
4a31bc:	5e                   	pop    %esi
4a31bd:	5d                   	pop    %ebp
4a31be:	5b                   	pop    %ebx
4a31bf:	83 c4 08             	add    $0x8,%esp
4a31c2:	c3                   	ret
4a31c3:	cc                   	int3
4a31c4:	cc                   	int3
4a31c5:	cc                   	int3
4a31c6:	cc                   	int3
4a31c7:	cc                   	int3
4a31c8:	cc                   	int3
4a31c9:	cc                   	int3
4a31ca:	cc                   	int3
4a31cb:	cc                   	int3
4a31cc:	cc                   	int3
4a31cd:	cc                   	int3
4a31ce:	cc                   	int3
4a31cf:	cc                   	int3
4a31d0:	56                   	push   %esi
4a31d1:	8b 74 24 08          	mov    0x8(%esp),%esi
4a31d5:	ba 10 00 00 00       	mov    $0x10,%edx
4a31da:	b8 01 00 00 00       	mov    $0x1,%eax
4a31df:	90                   	nop
4a31e0:	0f b6 4c 32 ff       	movzbl -0x1(%edx,%esi,1),%ecx
4a31e5:	4a                   	dec    %edx
4a31e6:	03 c1                	add    %ecx,%eax
4a31e8:	88 04 32             	mov    %al,(%edx,%esi,1)
4a31eb:	c1 e8 08             	shr    $0x8,%eax
4a31ee:	85 d2                	test   %edx,%edx
4a31f0:	75 ee                	jne    0x4a31e0
4a31f2:	5e                   	pop    %esi
4a31f3:	c3                   	ret
4a31f4:	cc                   	int3
4a31f5:	cc                   	int3
4a31f6:	cc                   	int3
4a31f7:	cc                   	int3
4a31f8:	cc                   	int3
4a31f9:	cc                   	int3
4a31fa:	cc                   	int3
4a31fb:	cc                   	int3
4a31fc:	cc                   	int3
4a31fd:	cc                   	int3
4a31fe:	cc                   	int3
4a31ff:	cc                   	int3
4a3200:	56                   	push   %esi
4a3201:	8b 74 24 08          	mov    0x8(%esp),%esi
4a3205:	ba 0c 00 00 00       	mov    $0xc,%edx
4a320a:	b8 01 00 00 00       	mov    $0x1,%eax
4a320f:	90                   	nop
4a3210:	0f b6 4c 32 ff       	movzbl -0x1(%edx,%esi,1),%ecx
4a3215:	4a                   	dec    %edx
4a3216:	03 c1                	add    %ecx,%eax
4a3218:	88 04 32             	mov    %al,(%edx,%esi,1)
4a321b:	c1 e8 08             	shr    $0x8,%eax
4a321e:	85 d2                	test   %edx,%edx
4a3220:	75 ee                	jne    0x4a3210
4a3222:	5e                   	pop    %esi
4a3223:	c3                   	ret
4a3224:	cc                   	int3
4a3225:	cc                   	int3
4a3226:	cc                   	int3
4a3227:	cc                   	int3
4a3228:	cc                   	int3
4a3229:	cc                   	int3
4a322a:	cc                   	int3
4a322b:	cc                   	int3
4a322c:	cc                   	int3
4a322d:	cc                   	int3
4a322e:	cc                   	int3
4a322f:	cc                   	int3
4a3230:	b8 10 00 00 00       	mov    $0x10,%eax
4a3235:	e8 b6 e2 13 00       	call   0x5e14f0
4a323a:	53                   	push   %ebx
4a323b:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
4a323f:	55                   	push   %ebp
4a3240:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
4a3244:	56                   	push   %esi
4a3245:	8b 74 24 34          	mov    0x34(%esp),%esi
4a3249:	57                   	push   %edi
4a324a:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
4a324e:	8b 36                	mov    (%esi),%esi
4a3250:	85 f6                	test   %esi,%esi
4a3252:	74 19                	je     0x4a326d
4a3254:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a3258:	85 ff                	test   %edi,%edi
4a325a:	74 11                	je     0x4a326d
4a325c:	8a 04 0e             	mov    (%esi,%ecx,1),%al
4a325f:	4f                   	dec    %edi
4a3260:	32 45 00             	xor    0x0(%ebp),%al
4a3263:	46                   	inc    %esi
4a3264:	88 03                	mov    %al,(%ebx)
4a3266:	45                   	inc    %ebp
4a3267:	43                   	inc    %ebx
4a3268:	83 e6 0f             	and    $0xf,%esi
4a326b:	75 eb                	jne    0x4a3258
4a326d:	8b 54 24 3c          	mov    0x3c(%esp),%edx
4a3271:	83 ff 10             	cmp    $0x10,%edi
4a3274:	0f 82 8b 00 00 00    	jb     0x4a3305
4a327a:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a327e:	8b c3                	mov    %ebx,%eax
4a3280:	2b c1                	sub    %ecx,%eax
4a3282:	89 44 24 10          	mov    %eax,0x10(%esp)
4a3286:	8b c5                	mov    %ebp,%eax
4a3288:	2b c1                	sub    %ecx,%eax
4a328a:	89 44 24 14          	mov    %eax,0x14(%esp)
4a328e:	8b c7                	mov    %edi,%eax
4a3290:	c1 e8 04             	shr    $0x4,%eax
4a3293:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4a3297:	c1 e0 04             	shl    $0x4,%eax
4a329a:	03 d8                	add    %eax,%ebx
4a329c:	03 e8                	add    %eax,%ebp
4a329e:	89 5c 24 18          	mov    %ebx,0x18(%esp)
4a32a2:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4a32a6:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
4a32aa:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a32ae:	eb 04                	jmp    0x4a32b4
4a32b0:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a32b4:	ff 74 24 30          	push   0x30(%esp)
4a32b8:	51                   	push   %ecx
4a32b9:	51                   	push   %ecx
4a32ba:	ff d2                	call   *%edx
4a32bc:	83 c4 0c             	add    $0xc,%esp
4a32bf:	83 fe 10             	cmp    $0x10,%esi
4a32c2:	73 23                	jae    0x4a32e7
4a32c4:	8b 44 24 34          	mov    0x34(%esp),%eax
4a32c8:	ba 0f 00 00 00       	mov    $0xf,%edx
4a32cd:	2b d6                	sub    %esi,%edx
4a32cf:	03 c6                	add    %esi,%eax
4a32d1:	c1 ea 02             	shr    $0x2,%edx
4a32d4:	42                   	inc    %edx
4a32d5:	8b 0c 28             	mov    (%eax,%ebp,1),%ecx
4a32d8:	8d 40 04             	lea    0x4(%eax),%eax
4a32db:	33 48 fc             	xor    -0x4(%eax),%ecx
4a32de:	89 4c 03 fc          	mov    %ecx,-0x4(%ebx,%eax,1)
4a32e2:	83 ea 01             	sub    $0x1,%edx
4a32e5:	75 ee                	jne    0x4a32d5
4a32e7:	8b 54 24 3c          	mov    0x3c(%esp),%edx
4a32eb:	83 ef 10             	sub    $0x10,%edi
4a32ee:	83 c3 10             	add    $0x10,%ebx
4a32f1:	83 c5 10             	add    $0x10,%ebp
4a32f4:	33 f6                	xor    %esi,%esi
4a32f6:	83 6c 24 2c 01       	subl   $0x1,0x2c(%esp)
4a32fb:	75 b3                	jne    0x4a32b0
4a32fd:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4a3301:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
4a3305:	85 ff                	test   %edi,%edi
4a3307:	74 2e                	je     0x4a3337
4a3309:	ff 74 24 30          	push   0x30(%esp)
4a330d:	8b 44 24 38          	mov    0x38(%esp),%eax
4a3311:	50                   	push   %eax
4a3312:	50                   	push   %eax
4a3313:	ff d2                	call   *%edx
4a3315:	8b 44 24 40          	mov    0x40(%esp),%eax
4a3319:	83 c4 0c             	add    $0xc,%esp
4a331c:	2b e8                	sub    %eax,%ebp
4a331e:	2b d8                	sub    %eax,%ebx
4a3320:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
4a3323:	03 f7                	add    %edi,%esi
4a3325:	8a 04 29             	mov    (%ecx,%ebp,1),%al
4a3328:	8d 49 01             	lea    0x1(%ecx),%ecx
4a332b:	32 41 ff             	xor    -0x1(%ecx),%al
4a332e:	88 44 19 ff          	mov    %al,-0x1(%ecx,%ebx,1)
4a3332:	83 ef 01             	sub    $0x1,%edi
4a3335:	75 ee                	jne    0x4a3325
4a3337:	8b 44 24 38          	mov    0x38(%esp),%eax
4a333b:	5f                   	pop    %edi
4a333c:	89 30                	mov    %esi,(%eax)
4a333e:	5e                   	pop    %esi
4a333f:	5d                   	pop    %ebp
4a3340:	5b                   	pop    %ebx
4a3341:	83 c4 10             	add    $0x10,%esp
4a3344:	c3                   	ret
4a3345:	cc                   	int3
4a3346:	cc                   	int3
4a3347:	cc                   	int3
4a3348:	cc                   	int3
4a3349:	cc                   	int3
4a334a:	cc                   	int3
4a334b:	cc                   	int3
4a334c:	cc                   	int3
4a334d:	cc                   	int3
4a334e:	cc                   	int3
4a334f:	cc                   	int3
4a3350:	b8 5c 00 00 00       	mov    $0x5c,%eax
4a3355:	e8 96 e1 13 00       	call   0x5e14f0
4a335a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
4a335f:	33 c4                	xor    %esp,%eax
4a3361:	89 44 24 58          	mov    %eax,0x58(%esp)
4a3365:	8b 44 24 64          	mov    0x64(%esp),%eax
4a3369:	33 c9                	xor    %ecx,%ecx
4a336b:	53                   	push   %ebx
4a336c:	8b 5c 24 74          	mov    0x74(%esp),%ebx
4a3370:	57                   	push   %edi
4a3371:	8b 7c 24 74          	mov    0x74(%esp),%edi
4a3375:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4a3379:	8b 84 24 84 00 00 00 	mov    0x84(%esp),%eax
4a3380:	89 7c 24 38          	mov    %edi,0x38(%esp)
4a3384:	89 5c 24 34          	mov    %ebx,0x34(%esp)
4a3388:	89 44 24 18          	mov    %eax,0x18(%esp)
4a338c:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
4a3390:	39 4c 24 70          	cmp    %ecx,0x70(%esp)
4a3394:	0f 86 3f 01 00 00    	jbe    0x4a34d9
4a339a:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4a339e:	2b c3                	sub    %ebx,%eax
4a33a0:	55                   	push   %ebp
4a33a1:	56                   	push   %esi
4a33a2:	89 44 24 24          	mov    %eax,0x24(%esp)
4a33a6:	8b f3                	mov    %ebx,%esi
4a33a8:	8d 44 24 45          	lea    0x45(%esp),%eax
4a33ac:	2b f0                	sub    %eax,%esi
4a33ae:	8d 43 02             	lea    0x2(%ebx),%eax
4a33b1:	8d 50 ff             	lea    -0x1(%eax),%edx
4a33b4:	89 74 24 1c          	mov    %esi,0x1c(%esp)
4a33b8:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4a33bc:	89 54 24 28          	mov    %edx,0x28(%esp)
4a33c0:	0f 10 03             	movups (%ebx),%xmm0
4a33c3:	8b c1                	mov    %ecx,%eax
4a33c5:	bd 07 00 00 00       	mov    $0x7,%ebp
4a33ca:	83 e0 07             	and    $0x7,%eax
4a33cd:	ba 01 00 00 00       	mov    $0x1,%edx
4a33d2:	2b e8                	sub    %eax,%ebp
4a33d4:	8b c1                	mov    %ecx,%eax
4a33d6:	8b 4c 24 70          	mov    0x70(%esp),%ecx
4a33da:	c1 e8 03             	shr    $0x3,%eax
4a33dd:	89 44 24 30          	mov    %eax,0x30(%esp)
4a33e1:	57                   	push   %edi
4a33e2:	53                   	push   %ebx
4a33e3:	8a 04 08             	mov    (%eax,%ecx,1),%al
4a33e6:	8b cd                	mov    %ebp,%ecx
4a33e8:	d3 e2                	shl    %cl,%edx
4a33ea:	22 c2                	and    %dl,%al
4a33ec:	89 6c 24 40          	mov    %ebp,0x40(%esp)
4a33f0:	f6 d8                	neg    %al
4a33f2:	53                   	push   %ebx
4a33f3:	1a c0                	sbb    %al,%al
4a33f5:	24 80                	and    $0x80,%al
4a33f7:	88 44 24 1f          	mov    %al,0x1f(%esp)
4a33fb:	0f 11 44 24 50       	movups %xmm0,0x50(%esp)
4a3400:	ff 54 24 2c          	call   *0x2c(%esp)
4a3404:	83 c4 0c             	add    $0xc,%esp
4a3407:	83 bc 24 88 00 00 00 	cmpl   $0x0,0x88(%esp)
4a340e:	00
4a340f:	74 10                	je     0x4a3421
4a3411:	0f b6 13             	movzbl (%ebx),%edx
4a3414:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
4a3419:	33 d0                	xor    %eax,%edx
4a341b:	88 54 24 54          	mov    %dl,0x54(%esp)
4a341f:	eb 0c                	jmp    0x4a342d
4a3421:	8a 44 24 13          	mov    0x13(%esp),%al
4a3425:	8a 13                	mov    (%ebx),%dl
4a3427:	88 44 24 54          	mov    %al,0x54(%esp)
4a342b:	32 d0                	xor    %al,%dl
4a342d:	89 54 24 18          	mov    %edx,0x18(%esp)
4a3431:	33 ed                	xor    %ebp,%ebp
4a3433:	8b 54 24 24          	mov    0x24(%esp),%edx
4a3437:	8d 7c 24 45          	lea    0x45(%esp),%edi
4a343b:	03 fd                	add    %ebp,%edi
4a343d:	03 f7                	add    %edi,%esi
4a343f:	8a 27                	mov    (%edi),%ah
4a3441:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
4a3445:	8a c4                	mov    %ah,%al
4a3447:	8a 5f 01             	mov    0x1(%edi),%bl
4a344a:	02 c9                	add    %cl,%cl
4a344c:	c0 e8 07             	shr    $0x7,%al
4a344f:	02 e4                	add    %ah,%ah
4a3451:	0a c8                	or     %al,%cl
4a3453:	8a c3                	mov    %bl,%al
4a3455:	c0 e8 07             	shr    $0x7,%al
4a3458:	02 db                	add    %bl,%bl
4a345a:	88 0e                	mov    %cl,(%esi)
4a345c:	0a c4                	or     %ah,%al
4a345e:	8b 4c 24 28          	mov    0x28(%esp),%ecx
4a3462:	8b 74 24 1c          	mov    0x1c(%esp),%esi
4a3466:	88 04 29             	mov    %al,(%ecx,%ebp,1)
4a3469:	8a 4f 02             	mov    0x2(%edi),%cl
4a346c:	8a c1                	mov    %cl,%al
4a346e:	02 c9                	add    %cl,%cl
4a3470:	c0 e8 07             	shr    $0x7,%al
4a3473:	0a c3                	or     %bl,%al
4a3475:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
4a3479:	88 04 2b             	mov    %al,(%ebx,%ebp,1)