5b1086:	83 c4 1c             	add    $0x1c,%esp
5b1089:	5d                   	pop    %ebp
5b108a:	5f                   	pop    %edi
5b108b:	5e                   	pop    %esi
5b108c:	5b                   	pop    %ebx
5b108d:	c3                   	ret
5b108e:	8b c0                	mov    %eax,%eax
5b1090:	53                   	push   %ebx
5b1091:	56                   	push   %esi
5b1092:	57                   	push   %edi
5b1093:	55                   	push   %ebp
5b1094:	83 c4 e4             	add    $0xffffffe4,%esp
5b1097:	89 14 24             	mov    %edx,(%esp)
5b109a:	8b d8                	mov    %eax,%ebx
5b109c:	84 c9                	test   %cl,%cl
5b109e:	74 10                	je     0x5b10b0
5b10a0:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
5b10a7:	00
5b10a8:	33 c0                	xor    %eax,%eax
5b10aa:	89 44 24 04          	mov    %eax,0x4(%esp)
5b10ae:	eb 15                	jmp    0x5b10c5
5b10b0:	c7 44 24 14 ff ff ff 	movl   $0xffffffff,0x14(%esp)
5b10b7:	ff
5b10b8:	8b 04 24             	mov    (%esp),%eax
5b10bb:	8b 10                	mov    (%eax),%edx
5b10bd:	ff 52 08             	call   *0x8(%edx)
5b10c0:	48                   	dec    %eax
5b10c1:	89 44 24 04          	mov    %eax,0x4(%esp)
5b10c5:	8b f3                	mov    %ebx,%esi
5b10c7:	8b 04 24             	mov    (%esp),%eax
5b10ca:	8b 10                	mov    (%eax),%edx
5b10cc:	ff 52 08             	call   *0x8(%edx)
5b10cf:	8b f8                	mov    %eax,%edi
5b10d1:	8b 04 24             	mov    (%esp),%eax
5b10d4:	8b 10                	mov    (%eax),%edx
5b10d6:	ff 52 0c             	call   *0xc(%edx)
5b10d9:	0f af f8             	imul   %eax,%edi
5b10dc:	03 fb                	add    %ebx,%edi
5b10de:	89 7c 24 08          	mov    %edi,0x8(%esp)
5b10e2:	8b 04 24             	mov    (%esp),%eax
5b10e5:	8b 10                	mov    (%eax),%edx
5b10e7:	ff 52 08             	call   *0x8(%edx)
5b10ea:	8b f8                	mov    %eax,%edi
5b10ec:	8b 04 24             	mov    (%esp),%eax
5b10ef:	8b 10                	mov    (%eax),%edx
5b10f1:	ff 52 0c             	call   *0xc(%edx)
5b10f4:	0f af f8             	imul   %eax,%edi
5b10f7:	03 fb                	add    %ebx,%edi
5b10f9:	8b 04 24             	mov    (%esp),%eax
5b10fc:	8b 10                	mov    (%eax),%edx
5b10fe:	ff 52 08             	call   *0x8(%edx)
5b1101:	8b d8                	mov    %eax,%ebx
5b1103:	d1 fb                	sar    $1,%ebx
5b1105:	79 03                	jns    0x5b110a
5b1107:	83 d3 00             	adc    $0x0,%ebx
5b110a:	8b 04 24             	mov    (%esp),%eax
5b110d:	8b 10                	mov    (%eax),%edx
5b110f:	ff 52 0c             	call   *0xc(%edx)
5b1112:	d1 f8                	sar    $1,%eax
5b1114:	79 03                	jns    0x5b1119
5b1116:	83 d0 00             	adc    $0x0,%eax
5b1119:	0f af d8             	imul   %eax,%ebx
5b111c:	03 fb                	add    %ebx,%edi
5b111e:	8b 04 24             	mov    (%esp),%eax
5b1121:	8b 10                	mov    (%eax),%edx
5b1123:	ff 52 08             	call   *0x8(%edx)
5b1126:	48                   	dec    %eax
5b1127:	85 c0                	test   %eax,%eax
5b1129:	0f 8c 9d 00 00 00    	jl     0x5b11cc
5b112f:	40                   	inc    %eax
5b1130:	89 44 24 18          	mov    %eax,0x18(%esp)
5b1134:	8b 54 24 04          	mov    0x4(%esp),%edx
5b1138:	8b 04 24             	mov    (%esp),%eax
5b113b:	8b 08                	mov    (%eax),%ecx
5b113d:	ff 11                	call   *(%ecx)
5b113f:	8b d8                	mov    %eax,%ebx
5b1141:	33 ed                	xor    %ebp,%ebp
5b1143:	8b 44 24 08          	mov    0x8(%esp),%eax
5b1147:	89 44 24 10          	mov    %eax,0x10(%esp)
5b114b:	89 7c 24 0c          	mov    %edi,0xc(%esp)
5b114f:	eb 3c                	jmp    0x5b118d
5b1151:	53                   	push   %ebx
5b1152:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b1156:	33 c9                	xor    %ecx,%ecx
5b1158:	8a 08                	mov    (%eax),%cl
5b115a:	33 d2                	xor    %edx,%edx
5b115c:	8a 17                	mov    (%edi),%dl
5b115e:	33 c0                	xor    %eax,%eax
5b1160:	8a 06                	mov    (%esi),%al
5b1162:	e8 c5 f5 ff ff       	call   0x5b072c
5b1167:	83 c3 03             	add    $0x3,%ebx
5b116a:	46                   	inc    %esi
5b116b:	53                   	push   %ebx
5b116c:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b1170:	33 c9                	xor    %ecx,%ecx
5b1172:	8a 08                	mov    (%eax),%cl
5b1174:	33 d2                	xor    %edx,%edx
5b1176:	8a 17                	mov    (%edi),%dl
5b1178:	33 c0                	xor    %eax,%eax
5b117a:	8a 06                	mov    (%esi),%al
5b117c:	e8 ab f5 ff ff       	call   0x5b072c
5b1181:	83 c3 03             	add    $0x3,%ebx
5b1184:	46                   	inc    %esi
5b1185:	47                   	inc    %edi
5b1186:	ff 44 24 08          	incl   0x8(%esp)
5b118a:	83 c5 02             	add    $0x2,%ebp
5b118d:	8b 04 24             	mov    (%esp),%eax
5b1190:	8b 10                	mov    (%eax),%edx
5b1192:	ff 52 0c             	call   *0xc(%edx)
5b1195:	48                   	dec    %eax
5b1196:	3b e8                	cmp    %eax,%ebp
5b1198:	7c b7                	jl     0x5b1151
5b119a:	8b 44 24 14          	mov    0x14(%esp),%eax
5b119e:	01 44 24 04          	add    %eax,0x4(%esp)
5b11a2:	8b 44 24 04          	mov    0x4(%esp),%eax
5b11a6:	25 01 00 00 80       	and    $0x80000001,%eax
5b11ab:	79 05                	jns    0x5b11b2
5b11ad:	48                   	dec    %eax
5b11ae:	83 c8 fe             	or     $0xfffffffe,%eax
5b11b1:	40                   	inc    %eax
5b11b2:	85 c0                	test   %eax,%eax
5b11b4:	74 0c                	je     0x5b11c2
5b11b6:	8b 44 24 10          	mov    0x10(%esp),%eax
5b11ba:	89 44 24 08          	mov    %eax,0x8(%esp)
5b11be:	8b 7c 24 0c          	mov    0xc(%esp),%edi
5b11c2:	ff 4c 24 18          	decl   0x18(%esp)
5b11c6:	0f 85 68 ff ff ff    	jne    0x5b1134
5b11cc:	83 c4 1c             	add    $0x1c,%esp
5b11cf:	5d                   	pop    %ebp
5b11d0:	5f                   	pop    %edi
5b11d1:	5e                   	pop    %esi
5b11d2:	5b                   	pop    %ebx
5b11d3:	c3                   	ret
5b11d4:	53                   	push   %ebx
5b11d5:	56                   	push   %esi
5b11d6:	57                   	push   %edi
5b11d7:	55                   	push   %ebp
5b11d8:	83 c4 e0             	add    $0xffffffe0,%esp
5b11db:	88 4c 24 04          	mov    %cl,0x4(%esp)
5b11df:	89 14 24             	mov    %edx,(%esp)
5b11e2:	8b d8                	mov    %eax,%ebx
5b11e4:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
5b11e9:	74 10                	je     0x5b11fb
5b11eb:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
5b11f2:	00
5b11f3:	33 c0                	xor    %eax,%eax
5b11f5:	89 44 24 08          	mov    %eax,0x8(%esp)
5b11f9:	eb 15                	jmp    0x5b1210
5b11fb:	c7 44 24 18 ff ff ff 	movl   $0xffffffff,0x18(%esp)
5b1202:	ff
5b1203:	8b 04 24             	mov    (%esp),%eax
5b1206:	8b 10                	mov    (%eax),%edx
5b1208:	ff 52 08             	call   *0x8(%edx)
5b120b:	48                   	dec    %eax
5b120c:	89 44 24 08          	mov    %eax,0x8(%esp)
5b1210:	8b f3                	mov    %ebx,%esi
5b1212:	8b 04 24             	mov    (%esp),%eax
5b1215:	8b 10                	mov    (%eax),%edx
5b1217:	ff 52 08             	call   *0x8(%edx)
5b121a:	8b f8                	mov    %eax,%edi
5b121c:	8b 04 24             	mov    (%esp),%eax
5b121f:	8b 10                	mov    (%eax),%edx
5b1221:	ff 52 0c             	call   *0xc(%edx)
5b1224:	0f af f8             	imul   %eax,%edi
5b1227:	03 fb                	add    %ebx,%edi
5b1229:	8b 04 24             	mov    (%esp),%eax
5b122c:	8b 10                	mov    (%eax),%edx
5b122e:	ff 52 08             	call   *0x8(%edx)
5b1231:	8b e8                	mov    %eax,%ebp
5b1233:	8b 04 24             	mov    (%esp),%eax
5b1236:	8b 10                	mov    (%eax),%edx
5b1238:	ff 52 0c             	call   *0xc(%edx)
5b123b:	0f af e8             	imul   %eax,%ebp
5b123e:	03 eb                	add    %ebx,%ebp
5b1240:	8b 04 24             	mov    (%esp),%eax
5b1243:	8b 10                	mov    (%eax),%edx
5b1245:	ff 52 08             	call   *0x8(%edx)
5b1248:	8b d8                	mov    %eax,%ebx
5b124a:	d1 fb                	sar    $1,%ebx
5b124c:	79 03                	jns    0x5b1251
5b124e:	83 d3 00             	adc    $0x0,%ebx
5b1251:	8b 04 24             	mov    (%esp),%eax
5b1254:	8b 10                	mov    (%eax),%edx
5b1256:	ff 52 0c             	call   *0xc(%edx)
5b1259:	d1 f8                	sar    $1,%eax
5b125b:	79 03                	jns    0x5b1260
5b125d:	83 d0 00             	adc    $0x0,%eax
5b1260:	0f af d8             	imul   %eax,%ebx
5b1263:	03 eb                	add    %ebx,%ebp
5b1265:	8b 04 24             	mov    (%esp),%eax
5b1268:	8b 10                	mov    (%eax),%edx
5b126a:	ff 52 08             	call   *0x8(%edx)
5b126d:	48                   	dec    %eax
5b126e:	85 c0                	test   %eax,%eax
5b1270:	0f 8c 94 00 00 00    	jl     0x5b130a
5b1276:	40                   	inc    %eax
5b1277:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5b127b:	8b 54 24 08          	mov    0x8(%esp),%edx
5b127f:	8b 04 24             	mov    (%esp),%eax
5b1282:	8b 08                	mov    (%eax),%ecx
5b1284:	ff 11                	call   *(%ecx)
5b1286:	8b d8                	mov    %eax,%ebx
5b1288:	33 c0                	xor    %eax,%eax
5b128a:	89 44 24 0c          	mov    %eax,0xc(%esp)
5b128e:	89 6c 24 14          	mov    %ebp,0x14(%esp)
5b1292:	89 7c 24 10          	mov    %edi,0x10(%esp)
5b1296:	eb 35                	jmp    0x5b12cd
5b1298:	53                   	push   %ebx
5b1299:	33 c9                	xor    %ecx,%ecx
5b129b:	8a 4d 00             	mov    0x0(%ebp),%cl
5b129e:	33 d2                	xor    %edx,%edx
5b12a0:	8a 17                	mov    (%edi),%dl
5b12a2:	33 c0                	xor    %eax,%eax
5b12a4:	8a 06                	mov    (%esi),%al
5b12a6:	e8 81 f4 ff ff       	call   0x5b072c
5b12ab:	83 c3 03             	add    $0x3,%ebx
5b12ae:	46                   	inc    %esi
5b12af:	53                   	push   %ebx
5b12b0:	33 c9                	xor    %ecx,%ecx
5b12b2:	8a 4d 00             	mov    0x0(%ebp),%cl
5b12b5:	33 d2                	xor    %edx,%edx
5b12b7:	8a 17                	mov    (%edi),%dl
5b12b9:	33 c0                	xor    %eax,%eax
5b12bb:	8a 06                	mov    (%esi),%al
5b12bd:	e8 6a f4 ff ff       	call   0x5b072c
5b12c2:	83 c3 03             	add    $0x3,%ebx
5b12c5:	46                   	inc    %esi
5b12c6:	47                   	inc    %edi
5b12c7:	45                   	inc    %ebp
5b12c8:	83 44 24 0c 02       	addl   $0x2,0xc(%esp)
5b12cd:	8b 04 24             	mov    (%esp),%eax
5b12d0:	8b 10                	mov    (%eax),%edx
5b12d2:	ff 52 0c             	call   *0xc(%edx)
5b12d5:	48                   	dec    %eax
5b12d6:	3b 44 24 0c          	cmp    0xc(%esp),%eax
5b12da:	7f bc                	jg     0x5b1298
5b12dc:	8b 44 24 18          	mov    0x18(%esp),%eax
5b12e0:	01 44 24 08          	add    %eax,0x8(%esp)
5b12e4:	8b 44 24 08          	mov    0x8(%esp),%eax
5b12e8:	25 01 00 00 80       	and    $0x80000001,%eax
5b12ed:	79 05                	jns    0x5b12f4
5b12ef:	48                   	dec    %eax
5b12f0:	83 c8 fe             	or     $0xfffffffe,%eax
5b12f3:	40                   	inc    %eax
5b12f4:	85 c0                	test   %eax,%eax
5b12f6:	74 08                	je     0x5b1300
5b12f8:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5b12fc:	8b 7c 24 10          	mov    0x10(%esp),%edi
5b1300:	ff 4c 24 1c          	decl   0x1c(%esp)
5b1304:	0f 85 71 ff ff ff    	jne    0x5b127b
5b130a:	83 c4 20             	add    $0x20,%esp
5b130d:	5d                   	pop    %ebp
5b130e:	5f                   	pop    %edi
5b130f:	5e                   	pop    %esi
5b1310:	5b                   	pop    %ebx
5b1311:	c3                   	ret
5b1312:	8b c0                	mov    %eax,%eax
5b1314:	55                   	push   %ebp
5b1315:	8b ec                	mov    %esp,%ebp
5b1317:	83 c4 b4             	add    $0xffffffb4,%esp
5b131a:	53                   	push   %ebx
5b131b:	56                   	push   %esi
5b131c:	57                   	push   %edi
5b131d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5b1320:	89 55 f8             	mov    %edx,-0x8(%ebp)
5b1323:	89 45 fc             	mov    %eax,-0x4(%ebp)
5b1326:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5b132a:	74 05                	je     0x5b1331
5b132c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5b132f:	eb 0b                	jmp    0x5b133c
5b1331:	8b 45 fc             	mov    -0x4(%ebp),%eax
5b1334:	50                   	push   %eax
5b1335:	e8 8e 5f e5 ff       	call   0x4072c8
5b133a:	8b d8                	mov    %eax,%ebx
5b133c:	8b 43 04             	mov    0x4(%ebx),%eax
5b133f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5b1342:	8b 43 08             	mov    0x8(%ebx),%eax
5b1345:	89 45 e0             	mov    %eax,-0x20(%ebp)
5b1348:	0f b7 73 0e          	movzwl 0xe(%ebx),%esi
5b134c:	89 75 f0             	mov    %esi,-0x10(%ebp)
5b134f:	8b 43 10             	mov    0x10(%ebx),%eax
5b1352:	89 45 e8             	mov    %eax,-0x18(%ebp)
5b1355:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b1358:	f7 ee                	imul   %esi
5b135a:	83 c0 1f             	add    $0x1f,%eax
5b135d:	85 c0                	test   %eax,%eax
5b135f:	79 03                	jns    0x5b1364
5b1361:	83 c0 1f             	add    $0x1f,%eax
5b1364:	c1 f8 05             	sar    $0x5,%eax
5b1367:	c1 e0 02             	shl    $0x2,%eax
5b136a:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b136d:	83 fe 01             	cmp    $0x1,%esi
5b1370:	75 12                	jne    0x5b1384
5b1372:	6a 01                	push   $0x1
5b1374:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5b1377:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5b137a:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b137d:	8b 38                	mov    (%eax),%edi
5b137f:	ff 57 24             	call   *0x24(%edi)
5b1382:	eb 10                	jmp    0x5b1394
5b1384:	6a 05                	push   $0x5
5b1386:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5b1389:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5b138c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b138f:	8b 38                	mov    (%eax),%edi
5b1391:	ff 57 24             	call   *0x24(%edi)
5b1394:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b1397:	3d 59 34 31 50       	cmp    $0x50313459,%eax
5b139c:	7f 68                	jg     0x5b1406
5b139e:	0f 84 47 05 00 00    	je     0x5b18eb
5b13a4:	3d 59 56 31 32       	cmp    $0x32315659,%eax
5b13a9:	7f 35                	jg     0x5b13e0
5b13ab:	0f 84 8a 05 00 00    	je     0x5b193b
5b13b1:	83 e8 04             	sub    $0x4,%eax
5b13b4:	0f 82 a5 00 00 00    	jb     0x5b145f
5b13ba:	2d 45 34 32 30       	sub    $0x30323445,%eax
5b13bf:	0f 84 8a 05 00 00    	je     0x5b194f
5b13c5:	2d 10 fe fe 00       	sub    $0xfefe10,%eax
5b13ca:	0f 84 2f 05 00 00    	je     0x5b18ff
5b13d0:	2d f0 26 24 00       	sub    $0x2426f0,%eax
5b13d5:	0f 84 89 04 00 00    	je     0x5b1864
5b13db:	e9 81 05 00 00       	jmp    0x5b1961
5b13e0:	2d 49 59 55 32       	sub    $0x32555949,%eax
5b13e5:	0f 84 90 04 00 00    	je     0x5b187b
5b13eb:	2d 10 fc 03 00       	sub    $0x3fc10,%eax
5b13f0:	0f 84 ca 04 00 00    	je     0x5b18c0
5b13f6:	2d 00 01 fc 06       	sub    $0x6fc0100,%eax
5b13fb:	0f 84 26 05 00 00    	je     0x5b1927
5b1401:	e9 5b 05 00 00       	jmp    0x5b1961
5b1406:	3d 55 59 4e 56       	cmp    $0x564e5955,%eax
5b140b:	7f 2c                	jg     0x5b1439
5b140d:	0f 84 7f 04 00 00    	je     0x5b1892
5b1413:	2d 43 4c 4a 52       	sub    $0x524a4c43,%eax
5b1418:	0f 84 f5 04 00 00    	je     0x5b1913
5b141e:	2d 16 0a 0f 03       	sub    $0x30f0a16,%eax
5b1423:	0f 84 ae 04 00 00    	je     0x5b18d7
5b1429:	2d 00 ff f4 00       	sub    $0xf4ff00,%eax
5b142e:	0f 84 8c 04 00 00    	je     0x5b18c0
5b1434:	e9 28 05 00 00       	jmp    0x5b1961
5b1439:	2d 49 59 55 56       	sub    $0x56555949,%eax
5b143e:	0f 84 0b 05 00 00    	je     0x5b194f
5b1444:	2d 0c 00 01 03       	sub    $0x301000c,%eax
5b1449:	0f 84 43 04 00 00    	je     0x5b1892
5b144f:	2d 0e 20 1f 1d       	sub    $0x1d1f200e,%eax
5b1454:	0f 84 4f 04 00 00    	je     0x5b18a9
5b145a:	e9 02 05 00 00       	jmp    0x5b1961
5b145f:	83 fe 10             	cmp    $0x10,%esi
5b1462:	7f 1c                	jg     0x5b1480
5b1464:	0f 84 11 02 00 00    	je     0x5b167b
5b146a:	4e                   	dec    %esi