548f2b:	88 0e                	mov    %cl,(%esi)
548f2d:	8a 47 08             	mov    0x8(%edi),%al
548f30:	24 ff                	and    $0xff,%al
548f32:	88 46 01             	mov    %al,0x1(%esi)
548f35:	eb 53                	jmp    0x548f8a
548f37:	33 d2                	xor    %edx,%edx
548f39:	33 c9                	xor    %ecx,%ecx
548f3b:	8a 13                	mov    (%ebx),%dl
548f3d:	8a 4b 01             	mov    0x1(%ebx),%cl
548f40:	c1 e2 08             	shl    $0x8,%edx
548f43:	66 03 d1             	add    %cx,%dx
548f46:	66 89 55 c0          	mov    %dx,-0x40(%ebp)
548f4a:	0f b7 45 c0          	movzwl -0x40(%ebp),%eax
548f4e:	0f b7 55 c2          	movzwl -0x3e(%ebp),%edx
548f52:	f7 ea                	imul   %edx
548f54:	0f b7 4d c2          	movzwl -0x3e(%ebp),%ecx
548f58:	ba ff ff 00 00       	mov    $0xffff,%edx
548f5d:	2b d1                	sub    %ecx,%edx
548f5f:	8b 4d 24             	mov    0x24(%ebp),%ecx
548f62:	0f b7 49 08          	movzwl 0x8(%ecx),%ecx
548f66:	0f af d1             	imul   %ecx,%edx
548f69:	03 c2                	add    %edx,%eax
548f6b:	05 00 80 00 00       	add    $0x8000,%eax
548f70:	8b d0                	mov    %eax,%edx
548f72:	c1 ea 10             	shr    $0x10,%edx
548f75:	03 c2                	add    %edx,%eax
548f77:	c1 e8 10             	shr    $0x10,%eax
548f7a:	0f b7 d0             	movzwl %ax,%edx
548f7d:	c1 fa 08             	sar    $0x8,%edx
548f80:	80 e2 ff             	and    $0xff,%dl
548f83:	24 ff                	and    $0xff,%al
548f85:	88 16                	mov    %dl,(%esi)
548f87:	88 46 01             	mov    %al,0x1(%esi)
548f8a:	ff 45 f4             	incl   -0xc(%ebp)
548f8d:	83 c3 04             	add    $0x4,%ebx
548f90:	83 c6 02             	add    $0x2,%esi
548f93:	8b 45 f4             	mov    -0xc(%ebp),%eax
548f96:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548f99:	3b c1                	cmp    %ecx,%eax
548f9b:	0f 82 4f ff ff ff    	jb     0x548ef0
548fa1:	e9 bc 07 00 00       	jmp    0x549762
548fa6:	8b 45 fc             	mov    -0x4(%ebp),%eax
548fa9:	8a 50 09             	mov    0x9(%eax),%dl
548fac:	80 fa 08             	cmp    $0x8,%dl
548faf:	0f 85 2c 03 00 00    	jne    0x5492e1
548fb5:	8b 4d 18             	mov    0x18(%ebp),%ecx
548fb8:	85 c9                	test   %ecx,%ecx
548fba:	0f 84 d6 01 00 00    	je     0x549196
548fc0:	8b 45 1c             	mov    0x1c(%ebp),%eax
548fc3:	85 c0                	test   %eax,%eax
548fc5:	0f 84 cb 01 00 00    	je     0x549196
548fcb:	8b 55 20             	mov    0x20(%ebp),%edx
548fce:	85 d2                	test   %edx,%edx
548fd0:	0f 84 c0 01 00 00    	je     0x549196
548fd6:	33 c0                	xor    %eax,%eax
548fd8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
548fdb:	8b 75 f8             	mov    -0x8(%ebp),%esi
548fde:	89 45 f4             	mov    %eax,-0xc(%ebp)
548fe1:	8b 55 f4             	mov    -0xc(%ebp),%edx
548fe4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548fe7:	3b d1                	cmp    %ecx,%edx
548fe9:	0f 83 73 07 00 00    	jae    0x549762
548fef:	8a 43 03             	mov    0x3(%ebx),%al
548ff2:	88 45 bf             	mov    %al,-0x41(%ebp)
548ff5:	8a 55 bf             	mov    -0x41(%ebp),%dl
548ff8:	80 fa ff             	cmp    $0xff,%dl
548ffb:	75 2d                	jne    0x54902a
548ffd:	33 c9                	xor    %ecx,%ecx
548fff:	8a 0b                	mov    (%ebx),%cl
549001:	8b 45 20             	mov    0x20(%ebp),%eax
549004:	8a 14 08             	mov    (%eax,%ecx,1),%dl
549007:	88 16                	mov    %dl,(%esi)
549009:	33 c9                	xor    %ecx,%ecx
54900b:	8a 4b 01             	mov    0x1(%ebx),%cl
54900e:	8b 45 20             	mov    0x20(%ebp),%eax
549011:	8a 14 08             	mov    (%eax,%ecx,1),%dl
549014:	88 56 01             	mov    %dl,0x1(%esi)
549017:	33 c9                	xor    %ecx,%ecx
549019:	8a 4b 02             	mov    0x2(%ebx),%cl
54901c:	8b 45 20             	mov    0x20(%ebp),%eax
54901f:	8a 14 08             	mov    (%eax,%ecx,1),%dl
549022:	88 56 02             	mov    %dl,0x2(%esi)
549025:	e9 50 01 00 00       	jmp    0x54917a
54902a:	8a 4d bf             	mov    -0x41(%ebp),%cl
54902d:	84 c9                	test   %cl,%cl
54902f:	75 16                	jne    0x549047
549031:	8a 47 02             	mov    0x2(%edi),%al
549034:	88 06                	mov    %al,(%esi)
549036:	8a 57 04             	mov    0x4(%edi),%dl
549039:	88 56 01             	mov    %dl,0x1(%esi)
54903c:	8a 4f 06             	mov    0x6(%edi),%cl
54903f:	88 4e 02             	mov    %cl,0x2(%esi)
549042:	e9 33 01 00 00       	jmp    0x54917a
549047:	33 c0                	xor    %eax,%eax
549049:	8a 03                	mov    (%ebx),%al
54904b:	8b 55 18             	mov    0x18(%ebp),%edx
54904e:	8a 0c 02             	mov    (%edx,%eax,1),%cl
549051:	88 4d be             	mov    %cl,-0x42(%ebp)
549054:	33 c0                	xor    %eax,%eax
549056:	33 c9                	xor    %ecx,%ecx
549058:	8a 45 be             	mov    -0x42(%ebp),%al
54905b:	8a 4d bf             	mov    -0x41(%ebp),%cl
54905e:	0f b7 d0             	movzwl %ax,%edx
549061:	0f b7 c1             	movzwl %cx,%eax
549064:	0f af d0             	imul   %eax,%edx
549067:	66 b8 ff 00          	mov    $0xff,%ax
54906b:	33 c9                	xor    %ecx,%ecx
54906d:	8a 4d bf             	mov    -0x41(%ebp),%cl
549070:	66 2b c1             	sub    %cx,%ax
549073:	0f b7 c8             	movzwl %ax,%ecx
549076:	8b 45 24             	mov    0x24(%ebp),%eax
549079:	0f b7 40 02          	movzwl 0x2(%eax),%eax
54907d:	0f af c8             	imul   %eax,%ecx
549080:	66 03 d1             	add    %cx,%dx
549083:	66 81 c2 80 00       	add    $0x80,%dx
549088:	66 89 55 ba          	mov    %dx,-0x46(%ebp)
54908c:	0f b7 4d ba          	movzwl -0x46(%ebp),%ecx
549090:	0f b7 55 ba          	movzwl -0x46(%ebp),%edx
549094:	c1 f9 08             	sar    $0x8,%ecx
549097:	03 d1                	add    %ecx,%edx
549099:	c1 fa 08             	sar    $0x8,%edx
54909c:	88 55 bd             	mov    %dl,-0x43(%ebp)
54909f:	33 c0                	xor    %eax,%eax
5490a1:	8a 45 bd             	mov    -0x43(%ebp),%al
5490a4:	8b 55 1c             	mov    0x1c(%ebp),%edx
5490a7:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5490aa:	88 0e                	mov    %cl,(%esi)
5490ac:	33 c0                	xor    %eax,%eax
5490ae:	8a 43 01             	mov    0x1(%ebx),%al
5490b1:	8b 55 18             	mov    0x18(%ebp),%edx
5490b4:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5490b7:	88 4d be             	mov    %cl,-0x42(%ebp)
5490ba:	33 c0                	xor    %eax,%eax
5490bc:	33 c9                	xor    %ecx,%ecx
5490be:	8a 45 be             	mov    -0x42(%ebp),%al
5490c1:	8a 4d bf             	mov    -0x41(%ebp),%cl
5490c4:	0f b7 d0             	movzwl %ax,%edx
5490c7:	0f b7 c1             	movzwl %cx,%eax
5490ca:	0f af d0             	imul   %eax,%edx
5490cd:	66 b8 ff 00          	mov    $0xff,%ax
5490d1:	33 c9                	xor    %ecx,%ecx
5490d3:	8a 4d bf             	mov    -0x41(%ebp),%cl
5490d6:	66 2b c1             	sub    %cx,%ax
5490d9:	0f b7 c8             	movzwl %ax,%ecx
5490dc:	8b 45 24             	mov    0x24(%ebp),%eax
5490df:	0f b7 40 04          	movzwl 0x4(%eax),%eax
5490e3:	0f af c8             	imul   %eax,%ecx
5490e6:	66 03 d1             	add    %cx,%dx
5490e9:	66 81 c2 80 00       	add    $0x80,%dx
5490ee:	66 89 55 b8          	mov    %dx,-0x48(%ebp)
5490f2:	0f b7 4d b8          	movzwl -0x48(%ebp),%ecx
5490f6:	0f b7 55 b8          	movzwl -0x48(%ebp),%edx
5490fa:	c1 f9 08             	sar    $0x8,%ecx
5490fd:	03 d1                	add    %ecx,%edx
5490ff:	c1 fa 08             	sar    $0x8,%edx
549102:	88 55 bd             	mov    %dl,-0x43(%ebp)
549105:	33 c0                	xor    %eax,%eax
549107:	8a 45 bd             	mov    -0x43(%ebp),%al
54910a:	8b 55 1c             	mov    0x1c(%ebp),%edx
54910d:	8a 0c 02             	mov    (%edx,%eax,1),%cl
549110:	88 4e 01             	mov    %cl,0x1(%esi)
549113:	33 c0                	xor    %eax,%eax
549115:	8a 43 02             	mov    0x2(%ebx),%al
549118:	8b 55 18             	mov    0x18(%ebp),%edx
54911b:	8a 0c 02             	mov    (%edx,%eax,1),%cl
54911e:	88 4d be             	mov    %cl,-0x42(%ebp)
549121:	33 c0                	xor    %eax,%eax
549123:	33 c9                	xor    %ecx,%ecx
549125:	8a 45 be             	mov    -0x42(%ebp),%al
549128:	8a 4d bf             	mov    -0x41(%ebp),%cl
54912b:	0f b7 d0             	movzwl %ax,%edx
54912e:	0f b7 c1             	movzwl %cx,%eax
549131:	0f af d0             	imul   %eax,%edx
549134:	66 b8 ff 00          	mov    $0xff,%ax
549138:	33 c9                	xor    %ecx,%ecx
54913a:	8a 4d bf             	mov    -0x41(%ebp),%cl
54913d:	66 2b c1             	sub    %cx,%ax
549140:	0f b7 c8             	movzwl %ax,%ecx
549143:	8b 45 24             	mov    0x24(%ebp),%eax
549146:	0f b7 40 06          	movzwl 0x6(%eax),%eax
54914a:	0f af c8             	imul   %eax,%ecx
54914d:	66 03 d1             	add    %cx,%dx
549150:	66 81 c2 80 00       	add    $0x80,%dx
549155:	66 89 55 b6          	mov    %dx,-0x4a(%ebp)
549159:	0f b7 4d b6          	movzwl -0x4a(%ebp),%ecx
54915d:	0f b7 55 b6          	movzwl -0x4a(%ebp),%edx
549161:	c1 f9 08             	sar    $0x8,%ecx
549164:	03 d1                	add    %ecx,%edx
549166:	c1 fa 08             	sar    $0x8,%edx
549169:	88 55 bd             	mov    %dl,-0x43(%ebp)
54916c:	33 c0                	xor    %eax,%eax
54916e:	8a 45 bd             	mov    -0x43(%ebp),%al
549171:	8b 55 1c             	mov    0x1c(%ebp),%edx
549174:	8a 0c 02             	mov    (%edx,%eax,1),%cl
549177:	88 4e 02             	mov    %cl,0x2(%esi)
54917a:	ff 45 f4             	incl   -0xc(%ebp)
54917d:	83 c3 04             	add    $0x4,%ebx
549180:	83 c6 03             	add    $0x3,%esi
549183:	8b 45 f4             	mov    -0xc(%ebp),%eax
549186:	8b 55 f0             	mov    -0x10(%ebp),%edx
549189:	3b c2                	cmp    %edx,%eax
54918b:	0f 82 5e fe ff ff    	jb     0x548fef
549191:	e9 cc 05 00 00       	jmp    0x549762
549196:	33 c0                	xor    %eax,%eax
549198:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54919b:	8b 75 f8             	mov    -0x8(%ebp),%esi
54919e:	89 45 f4             	mov    %eax,-0xc(%ebp)
5491a1:	8b 55 f4             	mov    -0xc(%ebp),%edx
5491a4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5491a7:	3b d1                	cmp    %ecx,%edx
5491a9:	0f 83 b3 05 00 00    	jae    0x549762
5491af:	8a 43 03             	mov    0x3(%ebx),%al
5491b2:	88 45 b5             	mov    %al,-0x4b(%ebp)
5491b5:	8a 55 b5             	mov    -0x4b(%ebp),%dl
5491b8:	80 fa ff             	cmp    $0xff,%dl
5491bb:	75 15                	jne    0x5491d2
5491bd:	8a 0b                	mov    (%ebx),%cl
5491bf:	88 0e                	mov    %cl,(%esi)
5491c1:	8a 43 01             	mov    0x1(%ebx),%al
5491c4:	88 46 01             	mov    %al,0x1(%esi)
5491c7:	8a 53 02             	mov    0x2(%ebx),%dl
5491ca:	88 56 02             	mov    %dl,0x2(%esi)
5491cd:	e9 f3 00 00 00       	jmp    0x5492c5
5491d2:	8a 4d b5             	mov    -0x4b(%ebp),%cl
5491d5:	84 c9                	test   %cl,%cl
5491d7:	75 16                	jne    0x5491ef
5491d9:	8a 47 02             	mov    0x2(%edi),%al
5491dc:	88 06                	mov    %al,(%esi)
5491de:	8a 57 04             	mov    0x4(%edi),%dl
5491e1:	88 56 01             	mov    %dl,0x1(%esi)
5491e4:	8a 4f 06             	mov    0x6(%edi),%cl
5491e7:	88 4e 02             	mov    %cl,0x2(%esi)
5491ea:	e9 d6 00 00 00       	jmp    0x5492c5
5491ef:	33 c0                	xor    %eax,%eax
5491f1:	33 c9                	xor    %ecx,%ecx
5491f3:	8a 03                	mov    (%ebx),%al
5491f5:	8a 4d b5             	mov    -0x4b(%ebp),%cl
5491f8:	0f b7 d0             	movzwl %ax,%edx
5491fb:	0f b7 c1             	movzwl %cx,%eax
5491fe:	0f af d0             	imul   %eax,%edx
549201:	66 b8 ff 00          	mov    $0xff,%ax
549205:	33 c9                	xor    %ecx,%ecx
549207:	8a 4d b5             	mov    -0x4b(%ebp),%cl
54920a:	66 2b c1             	sub    %cx,%ax
54920d:	0f b7 c8             	movzwl %ax,%ecx
549210:	0f b7 47 02          	movzwl 0x2(%edi),%eax
549214:	0f af c8             	imul   %eax,%ecx
549217:	66 03 d1             	add    %cx,%dx
54921a:	66 81 c2 80 00       	add    $0x80,%dx
54921f:	66 89 55 b2          	mov    %dx,-0x4e(%ebp)
549223:	0f b7 4d b2          	movzwl -0x4e(%ebp),%ecx
549227:	0f b7 55 b2          	movzwl -0x4e(%ebp),%edx
54922b:	c1 f9 08             	sar    $0x8,%ecx
54922e:	03 d1                	add    %ecx,%edx
549230:	c1 fa 08             	sar    $0x8,%edx
549233:	88 16                	mov    %dl,(%esi)
549235:	33 c0                	xor    %eax,%eax
549237:	33 c9                	xor    %ecx,%ecx
549239:	8a 43 01             	mov    0x1(%ebx),%al
54923c:	8a 4d b5             	mov    -0x4b(%ebp),%cl
54923f:	0f b7 d0             	movzwl %ax,%edx
549242:	0f b7 c1             	movzwl %cx,%eax
549245:	0f af d0             	imul   %eax,%edx
549248:	66 b8 ff 00          	mov    $0xff,%ax
54924c:	33 c9                	xor    %ecx,%ecx
54924e:	8a 4d b5             	mov    -0x4b(%ebp),%cl
549251:	66 2b c1             	sub    %cx,%ax
549254:	0f b7 c8             	movzwl %ax,%ecx
549257:	0f b7 47 04          	movzwl 0x4(%edi),%eax
54925b:	0f af c8             	imul   %eax,%ecx
54925e:	66 03 d1             	add    %cx,%dx
549261:	66 81 c2 80 00       	add    $0x80,%dx
549266:	66 89 55 b0          	mov    %dx,-0x50(%ebp)
54926a:	0f b7 4d b0          	movzwl -0x50(%ebp),%ecx
54926e:	0f b7 55 b0          	movzwl -0x50(%ebp),%edx
549272:	c1 f9 08             	sar    $0x8,%ecx
549275:	03 d1                	add    %ecx,%edx
549277:	c1 fa 08             	sar    $0x8,%edx
54927a:	88 56 01             	mov    %dl,0x1(%esi)
54927d:	33 c0                	xor    %eax,%eax
54927f:	33 c9                	xor    %ecx,%ecx
549281:	8a 43 02             	mov    0x2(%ebx),%al
549284:	8a 4d b5             	mov    -0x4b(%ebp),%cl
549287:	0f b7 d0             	movzwl %ax,%edx
54928a:	0f b7 c1             	movzwl %cx,%eax
54928d:	0f af d0             	imul   %eax,%edx
549290:	66 b8 ff 00          	mov    $0xff,%ax
549294:	33 c9                	xor    %ecx,%ecx
549296:	8a 4d b5             	mov    -0x4b(%ebp),%cl
549299:	66 2b c1             	sub    %cx,%ax
54929c:	0f b7 c8             	movzwl %ax,%ecx
54929f:	0f b7 47 06          	movzwl 0x6(%edi),%eax
5492a3:	0f af c8             	imul   %eax,%ecx
5492a6:	66 03 d1             	add    %cx,%dx
5492a9:	66 81 c2 80 00       	add    $0x80,%dx
5492ae:	66 89 55 ae          	mov    %dx,-0x52(%ebp)
5492b2:	0f b7 4d ae          	movzwl -0x52(%ebp),%ecx
5492b6:	0f b7 55 ae          	movzwl -0x52(%ebp),%edx
5492ba:	c1 f9 08             	sar    $0x8,%ecx
5492bd:	03 d1                	add    %ecx,%edx
5492bf:	c1 fa 08             	sar    $0x8,%edx
5492c2:	88 56 02             	mov    %dl,0x2(%esi)
5492c5:	ff 45 f4             	incl   -0xc(%ebp)
5492c8:	83 c3 04             	add    $0x4,%ebx
5492cb:	83 c6 03             	add    $0x3,%esi
5492ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
5492d1:	8b 55 f0             	mov    -0x10(%ebp),%edx
5492d4:	3b c2                	cmp    %edx,%eax
5492d6:	0f 82 d3 fe ff ff    	jb     0x5491af
5492dc:	e9 81 04 00 00       	jmp    0x549762
5492e1:	8b 4d 14             	mov    0x14(%ebp),%ecx
5492e4:	85 c9                	test   %ecx,%ecx
5492e6:	0f 84 da 02 00 00    	je     0x5495c6
5492ec:	8b 45 10             	mov    0x10(%ebp),%eax
5492ef:	85 c0                	test   %eax,%eax
5492f1:	0f 84 cf 02 00 00    	je     0x5495c6
5492f7:	8b 55 0c             	mov    0xc(%ebp),%edx
5492fa:	85 d2                	test   %edx,%edx
5492fc:	0f 84 c4 02 00 00    	je     0x5495c6
549302:	33 c0                	xor    %eax,%eax
549304:	8b 5d f8             	mov    -0x8(%ebp),%ebx
549307:	8b 75 f8             	mov    -0x8(%ebp),%esi
54930a:	89 45 f4             	mov    %eax,-0xc(%ebp)
54930d:	8b 55 f4             	mov    -0xc(%ebp),%edx
549310:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549313:	3b d1                	cmp    %ecx,%edx
549315:	0f 83 47 04 00 00    	jae    0x549762
54931b:	33 c0                	xor    %eax,%eax
54931d:	33 d2                	xor    %edx,%edx
54931f:	8a 43 06             	mov    0x6(%ebx),%al
549322:	8a 53 07             	mov    0x7(%ebx),%dl
549325:	c1 e0 08             	shl    $0x8,%eax
549328:	66 03 c2             	add    %dx,%ax
54932b:	66 89 45 ac          	mov    %ax,-0x54(%ebp)
54932f:	66 81 7d ac ff ff    	cmpw   $0xffff,-0x54(%ebp)
549335:	0f 85 9a 00 00 00    	jne    0x5493d5
54933b:	33 c0                	xor    %eax,%eax
54933d:	8b 4d 08             	mov    0x8(%ebp),%ecx
549340:	8a 43 01             	mov    0x1(%ebx),%al
549343:	8b 55 14             	mov    0x14(%ebp),%edx
549346:	d3 f8                	sar    %cl,%eax
549348:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
54934b:	33 c0                	xor    %eax,%eax
54934d:	8a 03                	mov    (%ebx),%al
54934f:	66 8b 14 41          	mov    (%ecx,%eax,2),%dx
549353:	66 89 55 aa          	mov    %dx,-0x56(%ebp)
549357:	0f b7 4d aa          	movzwl -0x56(%ebp),%ecx
54935b:	c1 f9 08             	sar    $0x8,%ecx
54935e:	33 d2                	xor    %edx,%edx
549360:	80 e1 ff             	and    $0xff,%cl