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)
5b1674:	75 b5                	jne    0x5b162b
5b1676:	e9 e6 02 00 00       	jmp    0x5b1961
5b167b:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b167e:	8b 03                	mov    (%ebx),%eax
5b1680:	01 45 c8             	add    %eax,-0x38(%ebp)
5b1683:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b1687:	74 06                	je     0x5b168f
5b1689:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b168c:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b168f:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
5b1693:	75 17                	jne    0x5b16ac
5b1695:	c7 45 b4 00 7c 00 00 	movl   $0x7c00,-0x4c(%ebp)
5b169c:	c7 45 b8 e0 03 00 00 	movl   $0x3e0,-0x48(%ebp)
5b16a3:	c7 45 bc 1f 00 00 00 	movl   $0x1f,-0x44(%ebp)
5b16aa:	eb 1a                	jmp    0x5b16c6
5b16ac:	83 7d e8 03          	cmpl   $0x3,-0x18(%ebp)
5b16b0:	75 14                	jne    0x5b16c6
5b16b2:	8d 45 b4             	lea    -0x4c(%ebp),%eax
5b16b5:	b9 0c 00 00 00       	mov    $0xc,%ecx
5b16ba:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b16bd:	e8 fe 67 e5 ff       	call   0x407ec0
5b16c2:	83 45 c8 0c          	addl   $0xc,-0x38(%ebp)
5b16c6:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5b16c9:	e8 b2 f3 03 00       	call   0x5f0a80
5b16ce:	8b f0                	mov    %eax,%esi
5b16d0:	8b 45 b8             	mov    -0x48(%ebp),%eax
5b16d3:	e8 a8 f3 03 00       	call   0x5f0a80
5b16d8:	8b d8                	mov    %eax,%ebx
5b16da:	8b 45 bc             	mov    -0x44(%ebp),%eax
5b16dd:	e8 9e f3 03 00       	call   0x5f0a80
5b16e2:	8d 14 18             	lea    (%eax,%ebx,1),%edx
5b16e5:	b9 08 00 00 00       	mov    $0x8,%ecx
5b16ea:	2b ce                	sub    %esi,%ecx
5b16ec:	2b d1                	sub    %ecx,%edx
5b16ee:	8b f2                	mov    %edx,%esi
5b16f0:	ba 08 00 00 00       	mov    $0x8,%edx
5b16f5:	2b d3                	sub    %ebx,%edx
5b16f7:	8b c8                	mov    %eax,%ecx
5b16f9:	2b ca                	sub    %edx,%ecx
5b16fb:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
5b16fe:	ba 08 00 00 00       	mov    $0x8,%edx
5b1703:	2b d0                	sub    %eax,%edx
5b1705:	89 55 c0             	mov    %edx,-0x40(%ebp)
5b1708:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b170b:	48                   	dec    %eax
5b170c:	83 f8 00             	cmp    $0x0,%eax
5b170f:	0f 8c 4c 02 00 00    	jl     0x5b1961
5b1715:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b1718:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b171b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b171e:	8b 08                	mov    (%eax),%ecx
5b1720:	ff 11                	call   *(%ecx)
5b1722:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b1725:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5b1728:	4f                   	dec    %edi
5b1729:	85 ff                	test   %edi,%edi
5b172b:	7c 31                	jl     0x5b175e
5b172d:	47                   	inc    %edi
5b172e:	8b ce                	mov    %esi,%ecx
5b1730:	0f b7 1a             	movzwl (%edx),%ebx
5b1733:	23 5d b4             	and    -0x4c(%ebp),%ebx
5b1736:	d3 eb                	shr    %cl,%ebx
5b1738:	88 58 02             	mov    %bl,0x2(%eax)
5b173b:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5b173e:	0f b7 1a             	movzwl (%edx),%ebx
5b1741:	23 5d b8             	and    -0x48(%ebp),%ebx
5b1744:	d3 eb                	shr    %cl,%ebx
5b1746:	88 58 01             	mov    %bl,0x1(%eax)
5b1749:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5b174c:	8a 1a                	mov    (%edx),%bl
5b174e:	22 5d bc             	and    -0x44(%ebp),%bl
5b1751:	d2 e3                	shl    %cl,%bl
5b1753:	88 18                	mov    %bl,(%eax)
5b1755:	83 c0 03             	add    $0x3,%eax
5b1758:	83 c2 02             	add    $0x2,%edx
5b175b:	4f                   	dec    %edi
5b175c:	75 d0                	jne    0x5b172e
5b175e:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b1761:	01 45 c8             	add    %eax,-0x38(%ebp)
5b1764:	ff 4d dc             	decl   -0x24(%ebp)
5b1767:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
5b176b:	75 ab                	jne    0x5b1718
5b176d:	e9 ef 01 00 00       	jmp    0x5b1961
5b1772:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
5b1776:	0f 85 e5 01 00 00    	jne    0x5b1961
5b177c:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b177f:	8b 03                	mov    (%ebx),%eax
5b1781:	01 45 c8             	add    %eax,-0x38(%ebp)
5b1784:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b1788:	74 06                	je     0x5b1790
5b178a:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b178d:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b1790:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b1793:	48                   	dec    %eax
5b1794:	83 f8 00             	cmp    $0x0,%eax
5b1797:	0f 8c c4 01 00 00    	jl     0x5b1961
5b179d:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b17a0:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b17a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b17a6:	8b 08                	mov    (%eax),%ecx
5b17a8:	ff 11                	call   *(%ecx)
5b17aa:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5b17ad:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b17b0:	e8 0b 67 e5 ff       	call   0x407ec0
5b17b5:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b17b8:	01 45 c8             	add    %eax,-0x38(%ebp)
5b17bb:	ff 4d dc             	decl   -0x24(%ebp)
5b17be:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
5b17c2:	75 dc                	jne    0x5b17a0
5b17c4:	e9 98 01 00 00       	jmp    0x5b1961
5b17c9:	83 7d e8 03          	cmpl   $0x3,-0x18(%ebp)
5b17cd:	75 0e                	jne    0x5b17dd
5b17cf:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b17d2:	8b 03                	mov    (%ebx),%eax
5b17d4:	01 45 c8             	add    %eax,-0x38(%ebp)
5b17d7:	83 45 c8 0c          	addl   $0xc,-0x38(%ebp)
5b17db:	eb 28                	jmp    0x5b1805
5b17dd:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
5b17e1:	75 0a                	jne    0x5b17ed
5b17e3:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5b17e6:	8b 03                	mov    (%ebx),%eax
5b17e8:	01 45 c8             	add    %eax,-0x38(%ebp)
5b17eb:	eb 18                	jmp    0x5b1805
5b17ed:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5b17f1:	0f 85 79 01 00 00    	jne    0x5b1970
5b17f7:	8b 45 fc             	mov    -0x4(%ebp),%eax
5b17fa:	50                   	push   %eax
5b17fb:	e8 f0 5a e5 ff       	call   0x4072f0
5b1800:	e9 6b 01 00 00       	jmp    0x5b1970
5b1805:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5b1809:	74 06                	je     0x5b1811
5b180b:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b180e:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b1811:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b1814:	48                   	dec    %eax
5b1815:	83 f8 00             	cmp    $0x0,%eax
5b1818:	0f 8c 43 01 00 00    	jl     0x5b1961
5b181e:	89 45 dc             	mov    %eax,-0x24(%ebp)
5b1821:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b1824:	8b 45 f8             	mov    -0x8(%ebp),%eax
5b1827:	8b 08                	mov    (%eax),%ecx
5b1829:	ff 11                	call   *(%ecx)
5b182b:	8b 55 c8             	mov    -0x38(%ebp),%edx
5b182e:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5b1831:	4f                   	dec    %edi
5b1832:	85 ff                	test   %edi,%edi
5b1834:	7c 1a                	jl     0x5b1850
5b1836:	47                   	inc    %edi
5b1837:	8a 0a                	mov    (%edx),%cl
5b1839:	88 08                	mov    %cl,(%eax)
5b183b:	42                   	inc    %edx
5b183c:	8a 0a                	mov    (%edx),%cl
5b183e:	88 48 01             	mov    %cl,0x1(%eax)
5b1841:	42                   	inc    %edx
5b1842:	8a 0a                	mov    (%edx),%cl
5b1844:	88 48 02             	mov    %cl,0x2(%eax)
5b1847:	83 c2 02             	add    $0x2,%edx
5b184a:	83 c0 03             	add    $0x3,%eax
5b184d:	4f                   	dec    %edi
5b184e:	75 e7                	jne    0x5b1837
5b1850:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b1853:	01 45 c8             	add    %eax,-0x38(%ebp)
5b1856:	ff 4d dc             	decl   -0x24(%ebp)
5b1859:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
5b185d:	75 c2                	jne    0x5b1821
5b185f:	e9 fd 00 00 00       	jmp    0x5b1961
5b1864:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
5b1868:	0f 9f c1             	setg   %cl
5b186b:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b186e:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b1871:	e8 ca ef ff ff       	call   0x5b0840
5b1876:	e9 e6 00 00 00       	jmp    0x5b1961
5b187b:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
5b187f:	0f 9f c1             	setg   %cl
5b1882:	8b 55 f8             	mov    -0x8(%ebp),%edx