54f4d3:	b2 01                	mov    $0x1,%dl
54f4d5:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
54f4da:	e8 c5 80 0a 00       	call   0x5f75a4
54f4df:	89 45 dc             	mov    %eax,-0x24(%ebp)
54f4e2:	8b 55 f8             	mov    -0x8(%ebp),%edx
54f4e5:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f4e8:	8b 08                	mov    (%eax),%ecx
54f4ea:	ff 51 28             	call   *0x28(%ecx)
54f4ed:	b2 01                	mov    $0x1,%dl
54f4ef:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f4f2:	e8 c1 8c 0a 00       	call   0x5f81b8
54f4f7:	c6 45 d5 01          	movb   $0x1,-0x2b(%ebp)
54f4fb:	eb 3c                	jmp    0x54f539
54f4fd:	8b 45 f8             	mov    -0x8(%ebp),%eax
54f500:	8b 10                	mov    (%eax),%edx
54f502:	ff 52 10             	call   *0x10(%edx)
54f505:	3c 01                	cmp    $0x1,%al
54f507:	75 2a                	jne    0x54f533
54f509:	b2 01                	mov    $0x1,%dl
54f50b:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
54f510:	e8 8f 80 0a 00       	call   0x5f75a4
54f515:	89 45 dc             	mov    %eax,-0x24(%ebp)
54f518:	8b 55 f8             	mov    -0x8(%ebp),%edx
54f51b:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f51e:	8b 08                	mov    (%eax),%ecx
54f520:	ff 51 28             	call   *0x28(%ecx)
54f523:	b2 05                	mov    $0x5,%dl
54f525:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f528:	e8 8b 8c 0a 00       	call   0x5f81b8
54f52d:	c6 45 d5 01          	movb   $0x1,-0x2b(%ebp)
54f531:	eb 06                	jmp    0x54f539
54f533:	8b 45 f8             	mov    -0x8(%ebp),%eax
54f536:	89 45 dc             	mov    %eax,-0x24(%ebp)
54f539:	8b 03                	mov    (%ebx),%eax
54f53b:	80 b8 1b 01 00 00 00 	cmpb   $0x0,0x11b(%eax)
54f542:	74 09                	je     0x54f54d
54f544:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
54f54b:	eb 05                	jmp    0x54f552
54f54d:	33 c0                	xor    %eax,%eax
54f54f:	89 45 e0             	mov    %eax,-0x20(%ebp)
54f552:	8b 03                	mov    (%ebx),%eax
54f554:	83 78 10 01          	cmpl   $0x1,0x10(%eax)
54f558:	75 2b                	jne    0x54f585
54f55a:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f55d:	8b 10                	mov    (%eax),%edx
54f55f:	ff 52 10             	call   *0x10(%edx)
54f562:	3c 01                	cmp    $0x1,%al
54f564:	75 0e                	jne    0x54f574
54f566:	33 c0                	xor    %eax,%eax
54f568:	89 45 e4             	mov    %eax,-0x1c(%ebp)
54f56b:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
54f572:	eb 1f                	jmp    0x54f593
54f574:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
54f57b:	8b 03                	mov    (%ebx),%eax
54f57d:	8b 40 08             	mov    0x8(%eax),%eax
54f580:	89 45 e8             	mov    %eax,-0x18(%ebp)
54f583:	eb 0e                	jmp    0x54f593
54f585:	c7 45 e4 02 00 00 00 	movl   $0x2,-0x1c(%ebp)
54f58c:	c7 45 e8 08 00 00 00 	movl   $0x8,-0x18(%ebp)
54f593:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
54f597:	74 09                	je     0x54f5a2
54f599:	8b 45 08             	mov    0x8(%ebp),%eax
54f59c:	80 78 68 00          	cmpb   $0x0,0x68(%eax)
54f5a0:	74 04                	je     0x54f5a6
54f5a2:	33 c0                	xor    %eax,%eax
54f5a4:	eb 02                	jmp    0x54f5a8
54f5a6:	b0 01                	mov    $0x1,%al
54f5a8:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
54f5ae:	80 bd 77 ff ff ff 00 	cmpb   $0x0,-0x89(%ebp)
54f5b5:	74 0a                	je     0x54f5c1
54f5b7:	83 7d e4 02          	cmpl   $0x2,-0x1c(%ebp)
54f5bb:	75 04                	jne    0x54f5c1
54f5bd:	83 4d e4 04          	orl    $0x4,-0x1c(%ebp)
54f5c1:	8b 03                	mov    (%ebx),%eax
54f5c3:	83 78 10 01          	cmpl   $0x1,0x10(%eax)
54f5c7:	0f 85 d1 01 00 00    	jne    0x54f79e
54f5cd:	8b 03                	mov    (%ebx),%eax
54f5cf:	83 78 08 01          	cmpl   $0x1,0x8(%eax)
54f5d3:	0f 8e c5 01 00 00    	jle    0x54f79e
54f5d9:	8b 45 dc             	mov    -0x24(%ebp),%eax
54f5dc:	8b 10                	mov    (%eax),%edx
54f5de:	ff 52 10             	call   *0x10(%edx)
54f5e1:	3c 01                	cmp    $0x1,%al
54f5e3:	0f 84 b5 01 00 00    	je     0x54f79e
54f5e9:	80 bd 77 ff ff ff 00 	cmpb   $0x0,-0x89(%ebp)
54f5f0:	0f 84 1a 01 00 00    	je     0x54f710
54f5f6:	c7 45 e8 08 00 00 00 	movl   $0x8,-0x18(%ebp)
54f5fd:	8b 03                	mov    (%ebx),%eax
54f5ff:	8b 48 08             	mov    0x8(%eax),%ecx
54f602:	b8 01 00 00 00       	mov    $0x1,%eax
54f607:	d3 e0                	shl    %cl,%eax
54f609:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
54f60f:	8d 85 31 fc ff ff    	lea    -0x3cf(%ebp),%eax
54f615:	50                   	push   %eax
54f616:	68 ff 00 00 00       	push   $0xff
54f61b:	ba ff 00 00 00       	mov    $0xff,%edx
54f620:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
54f626:	e8 f1 9d 05 00       	call   0x5a941c
54f62b:	50                   	push   %eax
54f62c:	6a ff                	push   $0xffffffff
54f62e:	6a 00                	push   $0x0
54f630:	8b 4d dc             	mov    -0x24(%ebp),%ecx
54f633:	b2 01                	mov    $0x1,%dl
54f635:	a1 08 ee 53 00       	mov    0x53ee08,%eax
54f63a:	e8 25 03 ff ff       	call   0x53f964
54f63f:	89 45 d0             	mov    %eax,-0x30(%ebp)
54f642:	b8 00 03 00 00       	mov    $0x300,%eax
54f647:	e8 60 31 eb ff       	call   0x4027ac
54f64c:	89 45 cc             	mov    %eax,-0x34(%ebp)
54f64f:	8d 95 31 fc ff ff    	lea    -0x3cf(%ebp),%edx
54f655:	8b 45 cc             	mov    -0x34(%ebp),%eax
54f658:	83 c0 03             	add    $0x3,%eax
54f65b:	b9 fd 02 00 00       	mov    $0x2fd,%ecx
54f660:	e8 5b 88 eb ff       	call   0x407ec0
54f665:	8b 45 cc             	mov    -0x34(%ebp),%eax
54f668:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
54f66e:	8b 03                	mov    (%ebx),%eax
54f670:	8a 80 1e 01 00 00    	mov    0x11e(%eax),%al
54f676:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
54f67c:	88 42 02             	mov    %al,0x2(%edx)
54f67f:	8b 03                	mov    (%ebx),%eax
54f681:	8a 80 1d 01 00 00    	mov    0x11d(%eax),%al
54f687:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
54f68d:	88 42 01             	mov    %al,0x1(%edx)
54f690:	8b 03                	mov    (%ebx),%eax
54f692:	8a 80 1c 01 00 00    	mov    0x11c(%eax),%al
54f698:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
54f69e:	88 02                	mov    %al,(%edx)
54f6a0:	33 ff                	xor    %edi,%edi
54f6a2:	8d 04 7f             	lea    (%edi,%edi,2),%eax
54f6a5:	8b 55 cc             	mov    -0x34(%ebp),%edx
54f6a8:	03 d0                	add    %eax,%edx
54f6aa:	8d 04 7f             	lea    (%edi,%edi,2),%eax
54f6ad:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54f6b0:	8d 44 01 02          	lea    0x2(%ecx,%eax,1),%eax
54f6b4:	e8 c3 9d 05 00       	call   0x5a947c
54f6b9:	47                   	inc    %edi
54f6ba:	81 ff 00 01 00 00    	cmp    $0x100,%edi
54f6c0:	75 e0                	jne    0x54f6a2
54f6c2:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
54f6c8:	40                   	inc    %eax
54f6c9:	ba 00 01 00 00       	mov    $0x100,%edx
54f6ce:	e8 49 9d 05 00       	call   0x5a941c
54f6d3:	50                   	push   %eax
54f6d4:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54f6d7:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f6da:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f6dd:	e8 c6 13 00 00       	call   0x550aa8
54f6e2:	80 bd 77 ff ff ff 00 	cmpb   $0x0,-0x89(%ebp)
54f6e9:	0f 84 b9 00 00 00    	je     0x54f7a8
54f6ef:	c6 85 7f ff ff ff 00 	movb   $0x0,-0x81(%ebp)
54f6f6:	6a 01                	push   $0x1
54f6f8:	6a 00                	push   $0x0
54f6fa:	8d 8d 7f ff ff ff    	lea    -0x81(%ebp),%ecx
54f700:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f703:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f706:	e8 ed 18 00 00       	call   0x550ff8
54f70b:	e9 98 00 00 00       	jmp    0x54f7a8
54f710:	8d 85 31 fc ff ff    	lea    -0x3cf(%ebp),%eax
54f716:	50                   	push   %eax
54f717:	68 ff 00 00 00       	push   $0xff
54f71c:	68 00 01 00 00       	push   $0x100
54f721:	6a ff                	push   $0xffffffff
54f723:	6a 00                	push   $0x0
54f725:	8b 4d dc             	mov    -0x24(%ebp),%ecx
54f728:	b2 01                	mov    $0x1,%dl
54f72a:	a1 08 ee 53 00       	mov    0x53ee08,%eax
54f72f:	e8 30 02 ff ff       	call   0x53f964
54f734:	89 45 d0             	mov    %eax,-0x30(%ebp)
54f737:	b8 00 03 00 00       	mov    $0x300,%eax
54f73c:	e8 6b 30 eb ff       	call   0x4027ac
54f741:	89 45 cc             	mov    %eax,-0x34(%ebp)
54f744:	8d 95 31 fc ff ff    	lea    -0x3cf(%ebp),%edx
54f74a:	8b 45 cc             	mov    -0x34(%ebp),%eax
54f74d:	b9 00 03 00 00       	mov    $0x300,%ecx
54f752:	e8 69 87 eb ff       	call   0x407ec0
54f757:	33 ff                	xor    %edi,%edi
54f759:	8d 04 7f             	lea    (%edi,%edi,2),%eax
54f75c:	8b 55 cc             	mov    -0x34(%ebp),%edx
54f75f:	03 d0                	add    %eax,%edx
54f761:	8d 04 7f             	lea    (%edi,%edi,2),%eax
54f764:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54f767:	8d 44 01 02          	lea    0x2(%ecx,%eax,1),%eax
54f76b:	e8 0c 9d 05 00       	call   0x5a947c
54f770:	47                   	inc    %edi
54f771:	81 ff 00 01 00 00    	cmp    $0x100,%edi
54f777:	75 e0                	jne    0x54f759
54f779:	8b 45 d0             	mov    -0x30(%ebp),%eax
54f77c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
54f780:	75 15                	jne    0x54f797
54f782:	68 00 01 00 00       	push   $0x100
54f787:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54f78a:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f78d:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f790:	e8 13 13 00 00       	call   0x550aa8
54f795:	eb 11                	jmp    0x54f7a8
54f797:	33 c0                	xor    %eax,%eax
54f799:	89 45 e4             	mov    %eax,-0x1c(%ebp)
54f79c:	eb 0a                	jmp    0x54f7a8
54f79e:	33 c0                	xor    %eax,%eax
54f7a0:	89 45 d0             	mov    %eax,-0x30(%ebp)
54f7a3:	33 c0                	xor    %eax,%eax
54f7a5:	89 45 cc             	mov    %eax,-0x34(%ebp)
54f7a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
54f7ab:	8b 10                	mov    (%eax),%edx
54f7ad:	ff 52 08             	call   *0x8(%edx)
54f7b0:	50                   	push   %eax
54f7b1:	8b 45 e8             	mov    -0x18(%ebp),%eax
54f7b4:	50                   	push   %eax
54f7b5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
54f7b8:	50                   	push   %eax
54f7b9:	8b 45 e0             	mov    -0x20(%ebp),%eax
54f7bc:	50                   	push   %eax
54f7bd:	6a 00                	push   $0x0
54f7bf:	6a 00                	push   $0x0
54f7c1:	8b 45 f8             	mov    -0x8(%ebp),%eax
54f7c4:	8b 10                	mov    (%eax),%edx
54f7c6:	ff 52 0c             	call   *0xc(%edx)
54f7c9:	8b c8                	mov    %eax,%ecx
54f7cb:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f7ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f7d1:	e8 96 0e 00 00       	call   0x55066c
54f7d6:	8b 03                	mov    (%ebx),%eax
54f7d8:	6b 40 20 64          	imul   $0x64,0x20(%eax),%eax
54f7dc:	89 85 fc fb ff ff    	mov    %eax,-0x404(%ebp)
54f7e2:	db 85 fc fb ff ff    	fildl  -0x404(%ebp)
54f7e8:	db 2d 44 00 55 00    	fldt   0x550044
54f7ee:	de f9                	fdivrp %st,%st(1)
54f7f0:	e8 cb 34 eb ff       	call   0x402cc0
54f7f5:	50                   	push   %eax
54f7f6:	6a 01                	push   $0x1
54f7f8:	8b 03                	mov    (%ebx),%eax
54f7fa:	6b 40 1c 64          	imul   $0x64,0x1c(%eax),%eax
54f7fe:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
54f804:	db 85 f8 fb ff ff    	fildl  -0x408(%ebp)
54f80a:	db 2d 44 00 55 00    	fldt   0x550044
54f810:	de f9                	fdivrp %st,%st(1)
54f812:	e8 a9 34 eb ff       	call   0x402cc0
54f817:	8b c8                	mov    %eax,%ecx
54f819:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f81c:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f81f:	e8 5c 12 00 00       	call   0x550a80
54f824:	8b 03                	mov    (%ebx),%eax
54f826:	8a 80 1f 01 00 00    	mov    0x11f(%eax),%al
54f82c:	2c 01                	sub    $0x1,%al
54f82e:	72 08                	jb     0x54f838
54f830:	74 17                	je     0x54f849
54f832:	fe c8                	dec    %al
54f834:	74 24                	je     0x54f85a
54f836:	eb 31                	jmp    0x54f869
54f838:	b9 08 00 00 00       	mov    $0x8,%ecx
54f83d:	33 d2                	xor    %edx,%edx
54f83f:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f842:	e8 b1 32 00 00       	call   0x552af8
54f847:	eb 20                	jmp    0x54f869
54f849:	b9 10 00 00 00       	mov    $0x10,%ecx
54f84e:	33 d2                	xor    %edx,%edx
54f850:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f853:	e8 a0 32 00 00       	call   0x552af8
54f858:	eb 0f                	jmp    0x54f869
54f85a:	b9 80 00 00 00       	mov    $0x80,%ecx
54f85f:	33 d2                	xor    %edx,%edx
54f861:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f864:	e8 8f 32 00 00       	call   0x552af8
54f869:	8d 45 c3             	lea    -0x3d(%ebp),%eax
54f86c:	ba 09 00 00 00       	mov    $0x9,%edx
54f871:	e8 5e 86 eb ff       	call   0x407ed4
54f876:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
54f87a:	74 20                	je     0x54f89c
54f87c:	8b 03                	mov    (%ebx),%eax
54f87e:	8a 90 1e 01 00 00    	mov    0x11e(%eax),%dl
54f884:	c1 e2 10             	shl    $0x10,%edx
54f887:	66 8b 90 1c 01 00 00 	mov    0x11c(%eax),%dx
54f88e:	52                   	push   %edx
54f88f:	8b 45 d0             	mov    -0x30(%ebp),%eax
54f892:	e8 09 03 ff ff       	call   0x53fba0
54f897:	88 45 c3             	mov    %al,-0x3d(%ebp)
54f89a:	eb 3c                	jmp    0x54f8d8
54f89c:	8b 03                	mov    (%ebx),%eax
54f89e:	0f b6 80 1e 01 00 00 	movzbl 0x11e(%eax),%eax
54f8a5:	8b d0                	mov    %eax,%edx
54f8a7:	c1 e0 08             	shl    $0x8,%eax
54f8aa:	03 c2                	add    %edx,%eax
54f8ac:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
54f8b0:	8b 03                	mov    (%ebx),%eax
54f8b2:	0f b6 80 1d 01 00 00 	movzbl 0x11d(%eax),%eax
54f8b9:	8b d0                	mov    %eax,%edx
54f8bb:	c1 e0 08             	shl    $0x8,%eax
54f8be:	03 c2                	add    %edx,%eax
54f8c0:	66 89 45 c6          	mov    %ax,-0x3a(%ebp)
54f8c4:	8b 03                	mov    (%ebx),%eax
54f8c6:	0f b6 80 1c 01 00 00 	movzbl 0x11c(%eax),%eax
54f8cd:	8b d0                	mov    %eax,%edx
54f8cf:	c1 e0 08             	shl    $0x8,%eax
54f8d2:	03 c2                	add    %edx,%eax
54f8d4:	66 89 45 c8          	mov    %ax,-0x38(%ebp)
54f8d8:	8d 4d c3             	lea    -0x3d(%ebp),%ecx
54f8db:	8b 55 f0             	mov    -0x10(%ebp),%edx
54f8de:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f8e1:	e8 6e 07 00 00       	call   0x550054
54f8e6:	8b 03                	mov    (%ebx),%eax
54f8e8:	8b 90 20 01 00 00    	mov    0x120(%eax),%edx
54f8ee:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f8f1:	e8 1e 36 00 00       	call   0x552f14
54f8f6:	8b 45 f4             	mov    -0xc(%ebp),%eax
54f8f9:	e8 e2 1c 00 00       	call   0x5515e0
54f8fe:	8b 03                	mov    (%ebx),%eax
54f900:	8b 80 28 01 00 00    	mov    0x128(%eax),%eax
54f906:	8b 10                	mov    (%eax),%edx
54f908:	ff 52 14             	call   *0x14(%edx)
54f90b:	50                   	push   %eax
54f90c:	8b 03                	mov    (%ebx),%eax
54f90e:	8b 80 24 01 00 00    	mov    0x124(%eax),%eax
54f914:	8b 10                	mov    (%eax),%edx
54f916:	ff 52 14             	call   *0x14(%edx)
54f919:	5a                   	pop    %edx
54f91a:	e8 fd 9a 05 00       	call   0x5a941c
54f91f:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
54f925:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
54f92b:	c1 e0 04             	shl    $0x4,%eax
54f92e:	e8 79 2e eb ff       	call   0x4027ac
54f933:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
54f939:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
54f93f:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
54f945:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
54f94b:	48                   	dec    %eax
54f94c:	85 c0                	test   %eax,%eax
54f94e:	0f 8c bd 00 00 00    	jl     0x54fa11
54f954:	40                   	inc    %eax
54f955:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
54f95b:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%ebp)
54f962:	00 00 00
54f965:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
54f96b:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
54f971:	8d 8d f4 fb ff ff    	lea    -0x40c(%ebp),%ecx
54f977:	8b 03                	mov    (%ebx),%eax
54f979:	8b 80 24 01 00 00    	mov    0x124(%eax),%eax
54f97f:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
54f985:	8b 38                	mov    (%eax),%edi
54f987:	ff 57 0c             	call   *0xc(%edi)
54f98a:	8b 85 f4 fb ff ff    	mov    -0x40c(%ebp),%eax
54f990:	e8 83 53 eb ff       	call   0x404d18
54f995:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
54f99b:	89 42 04             	mov    %eax,0x4(%edx)
54f99e:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
54f9a4:	8b 03                	mov    (%ebx),%eax
54f9a6:	8b 80 28 01 00 00    	mov    0x128(%eax),%eax
54f9ac:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
54f9b2:	8b 38                	mov    (%eax),%edi
54f9b4:	ff 57 0c             	call   *0xc(%edi)