5a0f3d:	c1 e0 02             	shl    $0x2,%eax
5a0f40:	33 f0                	xor    %eax,%esi
5a0f42:	8b c2                	mov    %edx,%eax
5a0f44:	c1 e8 10             	shr    $0x10,%eax
5a0f47:	33 c6                	xor    %esi,%eax
5a0f49:	0f b7 c0             	movzwl %ax,%eax
5a0f4c:	33 f0                	xor    %eax,%esi
5a0f4e:	c1 e0 10             	shl    $0x10,%eax
5a0f51:	8b ce                	mov    %esi,%ecx
5a0f53:	33 d0                	xor    %eax,%edx
5a0f55:	c1 e9 04             	shr    $0x4,%ecx
5a0f58:	33 ca                	xor    %edx,%ecx
5a0f5a:	81 e1 0f 0f 0f 0f    	and    $0xf0f0f0f,%ecx
5a0f60:	8b c1                	mov    %ecx,%eax
5a0f62:	c1 e1 04             	shl    $0x4,%ecx
5a0f65:	33 ce                	xor    %esi,%ecx
5a0f67:	33 c2                	xor    %edx,%eax
5a0f69:	89 07                	mov    %eax,(%edi)
5a0f6b:	89 4f 04             	mov    %ecx,0x4(%edi)
5a0f6e:	5f                   	pop    %edi
5a0f6f:	5e                   	pop    %esi
5a0f70:	c3                   	ret
5a0f71:	cc                   	int3
5a0f72:	cc                   	int3
5a0f73:	cc                   	int3
5a0f74:	cc                   	int3
5a0f75:	cc                   	int3
5a0f76:	cc                   	int3
5a0f77:	cc                   	int3
5a0f78:	cc                   	int3
5a0f79:	cc                   	int3
5a0f7a:	cc                   	int3
5a0f7b:	cc                   	int3
5a0f7c:	cc                   	int3
5a0f7d:	cc                   	int3
5a0f7e:	cc                   	int3
5a0f7f:	cc                   	int3
5a0f80:	b8 0c 00 00 00       	mov    $0xc,%eax
5a0f85:	e8 66 05 04 00       	call   0x5e14f0
5a0f8a:	83 7c 24 2c 00       	cmpl   $0x0,0x2c(%esp)
5a0f8f:	8b 44 24 28          	mov    0x28(%esp),%eax
5a0f93:	53                   	push   %ebx
5a0f94:	55                   	push   %ebp
5a0f95:	8b 6c 24 18          	mov    0x18(%esp),%ebp
5a0f99:	56                   	push   %esi
5a0f9a:	8b 74 24 20          	mov    0x20(%esp),%esi
5a0f9e:	57                   	push   %edi
5a0f9f:	0f 84 62 02 00 00    	je     0x5a1207
5a0fa5:	0f b6 18             	movzbl (%eax),%ebx
5a0fa8:	8d 78 01             	lea    0x1(%eax),%edi
5a0fab:	8b d7                	mov    %edi,%edx
5a0fad:	89 7c 24 20          	mov    %edi,0x20(%esp)
5a0fb1:	0f b6 02             	movzbl (%edx),%eax
5a0fb4:	0f b6 4a 03          	movzbl 0x3(%edx),%ecx
5a0fb8:	c1 e0 08             	shl    $0x8,%eax
5a0fbb:	0b d8                	or     %eax,%ebx
5a0fbd:	0f b6 42 01          	movzbl 0x1(%edx),%eax
5a0fc1:	c1 e0 10             	shl    $0x10,%eax
5a0fc4:	0b d8                	or     %eax,%ebx
5a0fc6:	0f b6 42 02          	movzbl 0x2(%edx),%eax
5a0fca:	c1 e0 18             	shl    $0x18,%eax
5a0fcd:	0b d8                	or     %eax,%ebx
5a0fcf:	0f b6 42 04          	movzbl 0x4(%edx),%eax
5a0fd3:	c1 e0 08             	shl    $0x8,%eax
5a0fd6:	0b c8                	or     %eax,%ecx
5a0fd8:	0f b6 42 05          	movzbl 0x5(%edx),%eax
5a0fdc:	89 4c 24 24          	mov    %ecx,0x24(%esp)
5a0fe0:	0f b6 4a 06          	movzbl 0x6(%edx),%ecx
5a0fe4:	8b 54 24 24          	mov    0x24(%esp),%edx
5a0fe8:	c1 e1 08             	shl    $0x8,%ecx
5a0feb:	0b c8                	or     %eax,%ecx
5a0fed:	c1 e1 10             	shl    $0x10,%ecx
5a0ff0:	0b d1                	or     %ecx,%edx
5a0ff2:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5a0ff6:	83 c1 f8             	add    $0xfffffff8,%ecx
5a0ff9:	89 54 24 24          	mov    %edx,0x24(%esp)
5a0ffd:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
5a1001:	0f 88 d6 00 00 00    	js     0x5a10dd
5a1007:	8d 79 08             	lea    0x8(%ecx),%edi
5a100a:	c1 ef 03             	shr    $0x3,%edi
5a100d:	8b c7                	mov    %edi,%eax
5a100f:	f7 d8                	neg    %eax
5a1011:	8d 0c c1             	lea    (%ecx,%eax,8),%ecx
5a1014:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
5a1018:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
5a101f:	00
5a1020:	0f b6 45 01          	movzbl 0x1(%ebp),%eax
5a1024:	0f b6 55 00          	movzbl 0x0(%ebp),%edx
5a1028:	0f b6 4d 04          	movzbl 0x4(%ebp),%ecx
5a102c:	ff 74 24 34          	push   0x34(%esp)
5a1030:	c1 e0 08             	shl    $0x8,%eax
5a1033:	0b d0                	or     %eax,%edx
5a1035:	0f b6 45 02          	movzbl 0x2(%ebp),%eax
5a1039:	ff 74 24 34          	push   0x34(%esp)
5a103d:	c1 e0 10             	shl    $0x10,%eax
5a1040:	ff 74 24 34          	push   0x34(%esp)
5a1044:	0b d0                	or     %eax,%edx
5a1046:	0f b6 45 03          	movzbl 0x3(%ebp),%eax
5a104a:	c1 e0 18             	shl    $0x18,%eax
5a104d:	0b d0                	or     %eax,%edx
5a104f:	0f b6 45 05          	movzbl 0x5(%ebp),%eax
5a1053:	c1 e0 08             	shl    $0x8,%eax
5a1056:	33 d3                	xor    %ebx,%edx
5a1058:	0b c8                	or     %eax,%ecx
5a105a:	89 54 24 20          	mov    %edx,0x20(%esp)
5a105e:	0f b6 45 06          	movzbl 0x6(%ebp),%eax
5a1062:	c1 e0 10             	shl    $0x10,%eax
5a1065:	0b c8                	or     %eax,%ecx
5a1067:	0f b6 45 07          	movzbl 0x7(%ebp),%eax
5a106b:	c1 e0 18             	shl    $0x18,%eax
5a106e:	83 c5 08             	add    $0x8,%ebp
5a1071:	0b c8                	or     %eax,%ecx
5a1073:	8d 44 24 20          	lea    0x20(%esp),%eax
5a1077:	33 4c 24 30          	xor    0x30(%esp),%ecx
5a107b:	50                   	push   %eax
5a107c:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5a1080:	e8 ab 06 00 00       	call   0x5a1730
5a1085:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5a1089:	83 c4 10             	add    $0x10,%esp
5a108c:	8b 54 24 18          	mov    0x18(%esp),%edx
5a1090:	8b c3                	mov    %ebx,%eax
5a1092:	c1 e8 08             	shr    $0x8,%eax
5a1095:	88 1e                	mov    %bl,(%esi)
5a1097:	88 46 01             	mov    %al,0x1(%esi)
5a109a:	8b c3                	mov    %ebx,%eax
5a109c:	c1 e8 10             	shr    $0x10,%eax
5a109f:	88 46 02             	mov    %al,0x2(%esi)
5a10a2:	8b c3                	mov    %ebx,%eax
5a10a4:	c1 e8 18             	shr    $0x18,%eax
5a10a7:	88 46 03             	mov    %al,0x3(%esi)
5a10aa:	8b c2                	mov    %edx,%eax
5a10ac:	c1 e8 08             	shr    $0x8,%eax
5a10af:	88 56 04             	mov    %dl,0x4(%esi)
5a10b2:	88 46 05             	mov    %al,0x5(%esi)
5a10b5:	8b c2                	mov    %edx,%eax
5a10b7:	c1 e8 10             	shr    $0x10,%eax
5a10ba:	88 46 06             	mov    %al,0x6(%esi)
5a10bd:	8b c2                	mov    %edx,%eax
5a10bf:	c1 e8 18             	shr    $0x18,%eax
5a10c2:	88 46 07             	mov    %al,0x7(%esi)
5a10c5:	83 c6 08             	add    $0x8,%esi
5a10c8:	89 54 24 24          	mov    %edx,0x24(%esp)
5a10cc:	83 ef 01             	sub    $0x1,%edi
5a10cf:	0f 85 4b ff ff ff    	jne    0x5a1020
5a10d5:	8b 7c 24 20          	mov    0x20(%esp),%edi
5a10d9:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
5a10dd:	83 f9 f8             	cmp    $0xfffffff8,%ecx
5a10e0:	0f 84 e5 00 00 00    	je     0x5a11cb
5a10e6:	8b 54 24 3c          	mov    0x3c(%esp),%edx
5a10ea:	83 c5 08             	add    $0x8,%ebp
5a10ed:	83 c2 07             	add    $0x7,%edx
5a10f0:	03 cd                	add    %ebp,%ecx
5a10f2:	33 c0                	xor    %eax,%eax
5a10f4:	89 54 24 3c          	mov    %edx,0x3c(%esp)
5a10f8:	33 ed                	xor    %ebp,%ebp
5a10fa:	89 44 24 28          	mov    %eax,0x28(%esp)
5a10fe:	83 fa 07             	cmp    $0x7,%edx
5a1101:	8b 54 24 24          	mov    0x24(%esp),%edx
5a1105:	77 5e                	ja     0x5a1165
5a1107:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
5a110b:	ff 24 bd 68 14 5a 00 	jmp    *0x5a1468(,%edi,4)
5a1112:	0f b6 69 ff          	movzbl -0x1(%ecx),%ebp
5a1116:	49                   	dec    %ecx
5a1117:	c1 e5 18             	shl    $0x18,%ebp
5a111a:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a111e:	49                   	dec    %ecx
5a111f:	c1 e0 10             	shl    $0x10,%eax
5a1122:	0b e8                	or     %eax,%ebp
5a1124:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a1128:	49                   	dec    %ecx
5a1129:	c1 e0 08             	shl    $0x8,%eax
5a112c:	0b e8                	or     %eax,%ebp
5a112e:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a1132:	49                   	dec    %ecx
5a1133:	0b e8                	or     %eax,%ebp
5a1135:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a1139:	49                   	dec    %ecx
5a113a:	c1 e0 18             	shl    $0x18,%eax
5a113d:	89 44 24 28          	mov    %eax,0x28(%esp)
5a1141:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a1145:	49                   	dec    %ecx
5a1146:	c1 e0 10             	shl    $0x10,%eax
5a1149:	09 44 24 28          	or     %eax,0x28(%esp)
5a114d:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a1151:	49                   	dec    %ecx
5a1152:	c1 e0 08             	shl    $0x8,%eax
5a1155:	09 44 24 28          	or     %eax,0x28(%esp)
5a1159:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
5a115d:	09 44 24 28          	or     %eax,0x28(%esp)
5a1161:	8b 44 24 28          	mov    0x28(%esp),%eax
5a1165:	ff 74 24 34          	push   0x34(%esp)
5a1169:	33 c3                	xor    %ebx,%eax
5a116b:	33 ea                	xor    %edx,%ebp
5a116d:	ff 74 24 34          	push   0x34(%esp)
5a1171:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5a1175:	8d 44 24 1c          	lea    0x1c(%esp),%eax
5a1179:	ff 74 24 34          	push   0x34(%esp)
5a117d:	89 6c 24 24          	mov    %ebp,0x24(%esp)
5a1181:	50                   	push   %eax
5a1182:	e8 a9 05 00 00       	call   0x5a1730
5a1187:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5a118b:	83 c4 10             	add    $0x10,%esp
5a118e:	8b 54 24 18          	mov    0x18(%esp),%edx
5a1192:	8b c3                	mov    %ebx,%eax
5a1194:	c1 e8 08             	shr    $0x8,%eax
5a1197:	88 1e                	mov    %bl,(%esi)
5a1199:	88 46 01             	mov    %al,0x1(%esi)
5a119c:	8b c3                	mov    %ebx,%eax
5a119e:	8b 7c 24 20          	mov    0x20(%esp),%edi
5a11a2:	c1 e8 10             	shr    $0x10,%eax
5a11a5:	88 46 02             	mov    %al,0x2(%esi)
5a11a8:	8b c3                	mov    %ebx,%eax
5a11aa:	c1 e8 18             	shr    $0x18,%eax
5a11ad:	88 46 03             	mov    %al,0x3(%esi)
5a11b0:	8b c2                	mov    %edx,%eax
5a11b2:	c1 e8 08             	shr    $0x8,%eax
5a11b5:	88 56 04             	mov    %dl,0x4(%esi)
5a11b8:	88 46 05             	mov    %al,0x5(%esi)
5a11bb:	8b c2                	mov    %edx,%eax
5a11bd:	c1 e8 10             	shr    $0x10,%eax
5a11c0:	88 46 06             	mov    %al,0x6(%esi)
5a11c3:	8b c2                	mov    %edx,%eax
5a11c5:	c1 e8 18             	shr    $0x18,%eax
5a11c8:	88 46 07             	mov    %al,0x7(%esi)
5a11cb:	8b 44 24 38          	mov    0x38(%esp),%eax
5a11cf:	88 18                	mov    %bl,(%eax)
5a11d1:	8b c3                	mov    %ebx,%eax
5a11d3:	c1 e8 08             	shr    $0x8,%eax
5a11d6:	88 07                	mov    %al,(%edi)
5a11d8:	8b c3                	mov    %ebx,%eax
5a11da:	c1 e8 10             	shr    $0x10,%eax
5a11dd:	88 47 01             	mov    %al,0x1(%edi)
5a11e0:	8b c2                	mov    %edx,%eax
5a11e2:	c1 eb 18             	shr    $0x18,%ebx
5a11e5:	88 5f 02             	mov    %bl,0x2(%edi)
5a11e8:	88 57 03             	mov    %dl,0x3(%edi)
5a11eb:	c1 e8 08             	shr    $0x8,%eax
5a11ee:	88 47 04             	mov    %al,0x4(%edi)
5a11f1:	8b c2                	mov    %edx,%eax
5a11f3:	c1 e8 10             	shr    $0x10,%eax
5a11f6:	88 47 05             	mov    %al,0x5(%edi)
5a11f9:	c1 ea 18             	shr    $0x18,%edx
5a11fc:	88 57 06             	mov    %dl,0x6(%edi)
5a11ff:	5f                   	pop    %edi
5a1200:	5e                   	pop    %esi
5a1201:	5d                   	pop    %ebp
5a1202:	5b                   	pop    %ebx
5a1203:	83 c4 0c             	add    $0xc,%esp
5a1206:	c3                   	ret
5a1207:	0f b6 08             	movzbl (%eax),%ecx
5a120a:	8d 58 01             	lea    0x1(%eax),%ebx
5a120d:	8b d3                	mov    %ebx,%edx
5a120f:	8b 7c 24 28          	mov    0x28(%esp),%edi
5a1213:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
5a1217:	0f b6 02             	movzbl (%edx),%eax
5a121a:	c1 e0 08             	shl    $0x8,%eax
5a121d:	0b c8                	or     %eax,%ecx
5a121f:	0f b6 42 01          	movzbl 0x1(%edx),%eax
5a1223:	c1 e0 10             	shl    $0x10,%eax
5a1226:	0b c8                	or     %eax,%ecx
5a1228:	0f b6 42 02          	movzbl 0x2(%edx),%eax
5a122c:	c1 e0 18             	shl    $0x18,%eax
5a122f:	0b c8                	or     %eax,%ecx
5a1231:	0f b6 42 04          	movzbl 0x4(%edx),%eax
5a1235:	89 4c 24 24          	mov    %ecx,0x24(%esp)
5a1239:	0f b6 4a 03          	movzbl 0x3(%edx),%ecx
5a123d:	c1 e0 08             	shl    $0x8,%eax
5a1240:	0b c8                	or     %eax,%ecx
5a1242:	0f b6 42 05          	movzbl 0x5(%edx),%eax
5a1246:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5a124a:	0f b6 4a 06          	movzbl 0x6(%edx),%ecx
5a124e:	8b 54 24 20          	mov    0x20(%esp),%edx
5a1252:	c1 e1 08             	shl    $0x8,%ecx
5a1255:	0b c8                	or     %eax,%ecx
5a1257:	c1 e1 10             	shl    $0x10,%ecx
5a125a:	0b d1                	or     %ecx,%edx
5a125c:	83 c7 f8             	add    $0xfffffff8,%edi
5a125f:	89 54 24 20          	mov    %edx,0x20(%esp)
5a1263:	0f 88 de 00 00 00    	js     0x5a1347
5a1269:	8d 47 08             	lea    0x8(%edi),%eax
5a126c:	c1 e8 03             	shr    $0x3,%eax
5a126f:	89 44 24 28          	mov    %eax,0x28(%esp)
5a1273:	f7 d8                	neg    %eax
5a1275:	8d 3c c7             	lea    (%edi,%eax,8),%edi
5a1278:	89 7c 24 10          	mov    %edi,0x10(%esp)
5a127c:	0f 1f 40 00          	nopl   0x0(%eax)
5a1280:	0f b6 45 01          	movzbl 0x1(%ebp),%eax
5a1284:	0f b6 5d 00          	movzbl 0x0(%ebp),%ebx
5a1288:	0f b6 7d 04          	movzbl 0x4(%ebp),%edi
5a128c:	ff 74 24 34          	push   0x34(%esp)
5a1290:	c1 e0 08             	shl    $0x8,%eax
5a1293:	0b d8                	or     %eax,%ebx
5a1295:	0f b6 45 02          	movzbl 0x2(%ebp),%eax
5a1299:	ff 74 24 34          	push   0x34(%esp)
5a129d:	c1 e0 10             	shl    $0x10,%eax
5a12a0:	ff 74 24 34          	push   0x34(%esp)
5a12a4:	0b d8                	or     %eax,%ebx
5a12a6:	0f b6 45 03          	movzbl 0x3(%ebp),%eax
5a12aa:	c1 e0 18             	shl    $0x18,%eax
5a12ad:	0b d8                	or     %eax,%ebx
5a12af:	0f b6 45 05          	movzbl 0x5(%ebp),%eax
5a12b3:	c1 e0 08             	shl    $0x8,%eax
5a12b6:	0b f8                	or     %eax,%edi
5a12b8:	89 5c 24 20          	mov    %ebx,0x20(%esp)
5a12bc:	0f b6 45 06          	movzbl 0x6(%ebp),%eax
5a12c0:	c1 e0 10             	shl    $0x10,%eax
5a12c3:	0b f8                	or     %eax,%edi
5a12c5:	0f b6 45 07          	movzbl 0x7(%ebp),%eax
5a12c9:	c1 e0 18             	shl    $0x18,%eax
5a12cc:	83 c5 08             	add    $0x8,%ebp
5a12cf:	0b f8                	or     %eax,%edi
5a12d1:	8d 44 24 20          	lea    0x20(%esp),%eax
5a12d5:	50                   	push   %eax
5a12d6:	89 7c 24 28          	mov    %edi,0x28(%esp)
5a12da:	e8 91 fb ff ff       	call   0x5a0e70
5a12df:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5a12e3:	83 c4 10             	add    $0x10,%esp
5a12e6:	33 4c 24 24          	xor    0x24(%esp),%ecx
5a12ea:	8b 54 24 18          	mov    0x18(%esp),%edx
5a12ee:	8b c1                	mov    %ecx,%eax
5a12f0:	33 54 24 20          	xor    0x20(%esp),%edx
5a12f4:	88 0e                	mov    %cl,(%esi)
5a12f6:	c1 e8 08             	shr    $0x8,%eax
5a12f9:	88 46 01             	mov    %al,0x1(%esi)
5a12fc:	8b c1                	mov    %ecx,%eax
5a12fe:	c1 e8 10             	shr    $0x10,%eax
5a1301:	88 46 02             	mov    %al,0x2(%esi)
5a1304:	8b c2                	mov    %edx,%eax
5a1306:	c1 e9 18             	shr    $0x18,%ecx
5a1309:	88 4e 03             	mov    %cl,0x3(%esi)
5a130c:	8b cb                	mov    %ebx,%ecx
5a130e:	88 56 04             	mov    %dl,0x4(%esi)
5a1311:	c1 e8 08             	shr    $0x8,%eax
5a1314:	88 46 05             	mov    %al,0x5(%esi)
5a1317:	8b c2                	mov    %edx,%eax
5a1319:	c1 e8 10             	shr    $0x10,%eax
5a131c:	c1 ea 18             	shr    $0x18,%edx
5a131f:	88 46 06             	mov    %al,0x6(%esi)
5a1322:	88 56 07             	mov    %dl,0x7(%esi)
5a1325:	83 c6 08             	add    $0x8,%esi
5a1328:	83 6c 24 28 01       	subl   $0x1,0x28(%esp)
5a132d:	8b d7                	mov    %edi,%edx
5a132f:	89 4c 24 24          	mov    %ecx,0x24(%esp)
5a1333:	89 54 24 20          	mov    %edx,0x20(%esp)
5a1337:	0f 85 43 ff ff ff    	jne    0x5a1280
5a133d:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
5a1341:	8b 7c 24 10          	mov    0x10(%esp),%edi
5a1345:	eb 04                	jmp    0x5a134b
5a1347:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5a134b:	83 ff f8             	cmp    $0xfffffff8,%edi