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
5b146b:	74 2a                	je     0x5b1497
5b146d:	83 ee 03             	sub    $0x3,%esi
5b1470:	74 7d                	je     0x5b14ef
5b1472:	83 ee 04             	sub    $0x4,%esi
5b1475:	0f 84 6d 01 00 00    	je     0x5b15e8
5b147b:	e9 e1 04 00 00       	jmp    0x5b1961
5b1480:	83 ee 18             	sub    $0x18,%esi
5b1483:	0f 84 e9 02 00 00    	je     0x5b1772
5b1489:	83 ee 08             	sub    $0x8,%esi
5b148c:	0f 84 37 03 00 00    	je     0x5b17c9
5b1492:	e9 ca 04 00 00       	jmp    0x5b1961
5b1497:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b149a:	8b 03                	mov    (%ebx),%eax
5b149c:	01 45 c8             	add    %eax,-0x38(%ebp)
5b149f:	8b 43 20             	mov    0x20(%ebx),%eax
5b14a2:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b14a5:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5b14a9:	75 07                	jne    0x5b14b2
5b14ab:	c7 45 dc 02 00 00 00 	movl   $0x2,-0x24(%ebp)
5b14b2:	8b 45 dc             	mov    -0x24(%ebp),%eax
5b14b5:	c1 e0 02             	shl    $0x2,%eax
5b14b8:	01 45 c8             	add    %eax,-0x38(%ebp)
5b14bb:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b14bf:	74 06                	je     0x5b14c7
5b14c1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b14c4:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b14c7:	8b 55 e0             	mov    -0x20(%ebp),%edx
5b14ca:	4a                   	dec    %edx
5b14cb:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b14ce:	8b 08                	mov    (%eax),%ecx
5b14d0:	ff 11                	call   *(%ecx)
5b14d2:	50                   	push   %eax
5b14d3:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b14d6:	8b 10                	mov    (%eax),%edx
5b14d8:	ff 52 08             	call   *0x8(%edx)
5b14db:	8b c8                	mov    %eax,%ecx
5b14dd:	0f af 4d ec          	imul   -0x14(%ebp),%ecx
5b14e1:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b14e4:	58                   	pop    %eax
5b14e5:	e8 d6 69 e5 ff       	call   0x407ec0
5b14ea:	e9 72 04 00 00       	jmp    0x5b1961
5b14ef:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b14f2:	8b 03                	mov    (%ebx),%eax
5b14f4:	01 45 c8             	add    %eax,-0x38(%ebp)
5b14f7:	8b 75 c8             	mov    -0x38(%ebp),%esi
5b14fa:	8b 43 20             	mov    0x20(%ebx),%eax
5b14fd:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b1500:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5b1504:	75 07                	jne    0x5b150d
5b1506:	c7 45 dc 10 00 00 00 	movl   $0x10,-0x24(%ebp)
5b150d:	8b 45 dc             	mov    -0x24(%ebp),%eax
5b1510:	c1 e0 02             	shl    $0x2,%eax
5b1513:	01 45 c8             	add    %eax,-0x38(%ebp)
5b1516:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b151a:	74 06                	je     0x5b1522
5b151c:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b151f:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b1522:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b1525:	d1 f8                	sar    $1,%eax
5b1527:	79 03                	jns    0x5b152c
5b1529:	83 d0 00             	adc    $0x0,%eax
5b152c:	89 45 d0             	mov    %eax,-0x30(%ebp)
5b152f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b1532:	83 e0 01             	and    $0x1,%eax
5b1535:	03 45 d0             	add    -0x30(%ebp),%eax
5b1538:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5b153b:	ff 4d d0             	decl   -0x30(%ebp)
5b153e:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b1541:	48                   	dec    %eax
5b1542:	83 f8 00             	cmp    $0x0,%eax
5b1545:	0f 8c 16 04 00 00    	jl     0x5b1961
5b154b:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b154e:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b1551:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b1554:	8b 08                	mov    (%eax),%ecx
5b1556:	ff 11                	call   *(%ecx)
5b1558:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b155b:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5b155e:	4f                   	dec    %edi
5b155f:	85 ff                	test   %edi,%edi
5b1561:	7c 6d                	jl     0x5b15d0
5b1563:	47                   	inc    %edi
5b1564:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
5b156b:	33 c9                	xor    %ecx,%ecx
5b156d:	8a 0a                	mov    (%edx),%cl
5b156f:	c1 e9 04             	shr    $0x4,%ecx
5b1572:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5b1575:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b1578:	8a 0c 8e             	mov    (%esi,%ecx,4),%cl
5b157b:	88 08                	mov    %cl,(%eax)
5b157d:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b1580:	8a 4c 8e 01          	mov    0x1(%esi,%ecx,4),%cl
5b1584:	88 48 01             	mov    %cl,0x1(%eax)
5b1587:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b158a:	8a 4c 8e 02          	mov    0x2(%esi,%ecx,4),%cl
5b158e:	88 48 02             	mov    %cl,0x2(%eax)
5b1591:	83 c0 03             	add    $0x3,%eax
5b1594:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5b1597:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
5b159a:	74 34                	je     0x5b15d0
5b159c:	8a 0a                	mov    (%edx),%cl
5b159e:	80 e1 0f             	and    $0xf,%cl
5b15a1:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5b15a7:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5b15aa:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b15ad:	8a 0c 8e             	mov    (%esi,%ecx,4),%cl
5b15b0:	88 08                	mov    %cl,(%eax)
5b15b2:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b15b5:	8a 4c 8e 01          	mov    0x1(%esi,%ecx,4),%cl
5b15b9:	88 48 01             	mov    %cl,0x1(%eax)
5b15bc:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5b15bf:	8a 4c 8e 02          	mov    0x2(%esi,%ecx,4),%cl
5b15c3:	88 48 02             	mov    %cl,0x2(%eax)
5b15c6:	83 c0 03             	add    $0x3,%eax
5b15c9:	42                   	inc    %edx
5b15ca:	ff 45 d8             	incl   -0x28(%ebp)
5b15cd:	4f                   	dec    %edi
5b15ce:	75 9b                	jne    0x5b156b
5b15d0:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b15d3:	01 45 c8             	add    %eax,-0x38(%ebp)
5b15d6:	ff 4d dc             	decl   -0x24(%ebp)
5b15d9:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
5b15dd:	0f 85 6b ff ff ff    	jne    0x5b154e
5b15e3:	e9 79 03 00 00       	jmp    0x5b1961
5b15e8:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b15eb:	8b 03                	mov    (%ebx),%eax
5b15ed:	01 45 c8             	add    %eax,-0x38(%ebp)
5b15f0:	8b 75 c8             	mov    -0x38(%ebp),%esi
5b15f3:	8b 43 20             	mov    0x20(%ebx),%eax
5b15f6:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b15f9:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5b15fd:	75 07                	jne    0x5b1606
5b15ff:	c7 45 dc 00 01 00 00 	movl   $0x100,-0x24(%ebp)
5b1606:	8b 45 dc             	mov    -0x24(%ebp),%eax
5b1609:	c1 e0 02             	shl    $0x2,%eax
5b160c:	01 45 c8             	add    %eax,-0x38(%ebp)
5b160f:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b1613:	74 06                	je     0x5b161b
5b1615:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b1618:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b161b:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b161e:	48                   	dec    %eax
5b161f:	83 f8 00             	cmp    $0x0,%eax
5b1622:	0f 8c 39 03 00 00    	jl     0x5b1961
5b1628:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b162b:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b162e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b1631:	8b 08                	mov    (%eax),%ecx
5b1633:	ff 11                	call   *(%ecx)
5b1635:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b1638:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5b163b:	4f                   	dec    %edi
5b163c:	85 ff                	test   %edi,%edi
5b163e:	7c 27                	jl     0x5b1667
5b1640:	47                   	inc    %edi
5b1641:	33 c9                	xor    %ecx,%ecx
5b1643:	8a 0a                	mov    (%edx),%cl
5b1645:	8a 0c 8e             	mov    (%esi,%ecx,4),%cl
5b1648:	88 08                	mov    %cl,(%eax)
5b164a:	33 c9                	xor    %ecx,%ecx
5b164c:	8a 0a                	mov    (%edx),%cl
5b164e:	8a 4c 8e 01          	mov    0x1(%esi,%ecx,4),%cl
5b1652:	88 48 01             	mov    %cl,0x1(%eax)
5b1655:	33 c9                	xor    %ecx,%ecx
5b1657:	8a 0a                	mov    (%edx),%cl
5b1659:	8a 4c 8e 02          	mov    0x2(%esi,%ecx,4),%cl
5b165d:	88 48 02             	mov    %cl,0x2(%eax)
5b1660:	42                   	inc    %edx
5b1661:	83 c0 03             	add    $0x3,%eax
5b1664:	4f                   	dec    %edi
5b1665:	75 da                	jne    0x5b1641
5b1667:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b166a:	01 45 c8             	add    %eax,-0x38(%ebp)
5b166d:	ff 4d dc             	decl   -0x24(%ebp)
5b1670:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)