545733:	8d 04 40             	lea    (%eax,%eax,2),%eax
545736:	0f b6 44 02 01       	movzbl 0x1(%edx,%eax,1),%eax
54573b:	8b 55 b0             	mov    -0x50(%ebp),%edx
54573e:	8d 14 52             	lea    (%edx,%edx,2),%edx
545741:	0f b6 54 11 01       	movzbl 0x1(%ecx,%edx,1),%edx
545746:	2b c2                	sub    %edx,%eax
545748:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54574b:	99                   	cltd
54574c:	33 c2                	xor    %edx,%eax
54574e:	2b c2                	sub    %edx,%eax
545750:	8b 55 b0             	mov    -0x50(%ebp),%edx
545753:	03 f8                	add    %eax,%edi
545755:	8b 45 c0             	mov    -0x40(%ebp),%eax
545758:	8d 14 52             	lea    (%edx,%edx,2),%edx
54575b:	8d 04 40             	lea    (%eax,%eax,2),%eax
54575e:	0f b6 44 01 02       	movzbl 0x2(%ecx,%eax,1),%eax
545763:	8b 4d fc             	mov    -0x4(%ebp),%ecx
545766:	0f b6 54 11 02       	movzbl 0x2(%ecx,%edx,1),%edx
54576b:	2b c2                	sub    %edx,%eax
54576d:	99                   	cltd
54576e:	33 c2                	xor    %edx,%eax
545770:	2b c2                	sub    %edx,%eax
545772:	03 f8                	add    %eax,%edi
545774:	8b 45 bc             	mov    -0x44(%ebp),%eax
545777:	3b f8                	cmp    %eax,%edi
545779:	7f 3c                	jg     0x5457b7
54577b:	ba 08 00 00 00       	mov    $0x8,%edx
545780:	8b c3                	mov    %ebx,%eax
545782:	e8 89 56 00 00       	call   0x54ae10
545787:	89 45 b8             	mov    %eax,-0x48(%ebp)
54578a:	8b 4d b8             	mov    -0x48(%ebp),%ecx
54578d:	85 c9                	test   %ecx,%ecx
54578f:	74 34                	je     0x5457c5
545791:	8b 45 b4             	mov    -0x4c(%ebp),%eax
545794:	8b 4d b8             	mov    -0x48(%ebp),%ecx
545797:	8b 14 b8             	mov    (%eax,%edi,4),%edx
54579a:	89 11                	mov    %edx,(%ecx)
54579c:	8b 55 b8             	mov    -0x48(%ebp),%edx
54579f:	8a 45 c0             	mov    -0x40(%ebp),%al
5457a2:	88 42 04             	mov    %al,0x4(%edx)
5457a5:	8b 45 b8             	mov    -0x48(%ebp),%eax
5457a8:	8a 4d b0             	mov    -0x50(%ebp),%cl
5457ab:	88 48 05             	mov    %cl,0x5(%eax)
5457ae:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5457b1:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5457b4:	89 0c ba             	mov    %ecx,(%edx,%edi,4)
5457b7:	ff 45 b0             	incl   -0x50(%ebp)
5457ba:	8b 45 b0             	mov    -0x50(%ebp),%eax
5457bd:	3b f0                	cmp    %eax,%esi
5457bf:	0f 8f 41 ff ff ff    	jg     0x545706
5457c5:	8b 55 b8             	mov    -0x48(%ebp),%edx
5457c8:	85 d2                	test   %edx,%edx
5457ca:	74 11                	je     0x5457dd
5457cc:	ff 45 c0             	incl   -0x40(%ebp)
5457cf:	8d 4e ff             	lea    -0x1(%esi),%ecx
5457d2:	8b 45 c0             	mov    -0x40(%ebp),%eax
5457d5:	3b c8                	cmp    %eax,%ecx
5457d7:	0f 8f 17 ff ff ff    	jg     0x5456f4
5457dd:	8b 55 b8             	mov    -0x48(%ebp),%edx
5457e0:	85 d2                	test   %edx,%edx
5457e2:	0f 84 c3 01 00 00    	je     0x5459ab
5457e8:	33 c9                	xor    %ecx,%ecx
5457ea:	89 4d c0             	mov    %ecx,-0x40(%ebp)
5457ed:	8b 45 c0             	mov    -0x40(%ebp),%eax
5457f0:	8b 55 bc             	mov    -0x44(%ebp),%edx
5457f3:	3b c2                	cmp    %edx,%eax
5457f5:	0f 8f b0 01 00 00    	jg     0x5459ab
5457fb:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
5457fe:	8b 45 c0             	mov    -0x40(%ebp),%eax
545801:	8b 14 81             	mov    (%ecx,%eax,4),%edx
545804:	85 d2                	test   %edx,%edx
545806:	0f 84 8e 01 00 00    	je     0x54599a
54580c:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
54580f:	8b 45 c0             	mov    -0x40(%ebp),%eax
545812:	8b 14 81             	mov    (%ecx,%eax,4),%edx
545815:	89 55 ac             	mov    %edx,-0x54(%ebp)
545818:	8b 4d ac             	mov    -0x54(%ebp),%ecx
54581b:	85 c9                	test   %ecx,%ecx
54581d:	0f 84 70 01 00 00    	je     0x545993
545823:	8b 45 ac             	mov    -0x54(%ebp),%eax
545826:	33 d2                	xor    %edx,%edx
545828:	8a 50 04             	mov    0x4(%eax),%dl
54582b:	8b 8b 14 02 00 00    	mov    0x214(%ebx),%ecx
545831:	33 c0                	xor    %eax,%eax
545833:	8a 04 11             	mov    (%ecx,%edx,1),%al
545836:	3b f0                	cmp    %eax,%esi
545838:	0f 8e 3b 01 00 00    	jle    0x545979
54583e:	8b 55 ac             	mov    -0x54(%ebp),%edx
545841:	33 c9                	xor    %ecx,%ecx
545843:	8a 4a 05             	mov    0x5(%edx),%cl
545846:	8b 83 14 02 00 00    	mov    0x214(%ebx),%eax
54584c:	33 d2                	xor    %edx,%edx
54584e:	8a 14 08             	mov    (%eax,%ecx,1),%dl
545851:	3b f2                	cmp    %edx,%esi
545853:	0f 8e 20 01 00 00    	jle    0x545979
545859:	f7 c6 01 00 00 00    	test   $0x1,%esi
54585f:	74 18                	je     0x545879
545861:	8b 4d ac             	mov    -0x54(%ebp),%ecx
545864:	33 c0                	xor    %eax,%eax
545866:	8a 41 04             	mov    0x4(%ecx),%al
545869:	89 45 a8             	mov    %eax,-0x58(%ebp)
54586c:	8b 55 ac             	mov    -0x54(%ebp),%edx
54586f:	33 c9                	xor    %ecx,%ecx
545871:	8a 4a 05             	mov    0x5(%edx),%cl
545874:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
545877:	eb 16                	jmp    0x54588f
545879:	8b 45 ac             	mov    -0x54(%ebp),%eax
54587c:	33 d2                	xor    %edx,%edx
54587e:	8a 50 05             	mov    0x5(%eax),%dl
545881:	89 55 a8             	mov    %edx,-0x58(%ebp)
545884:	8b 4d ac             	mov    -0x54(%ebp),%ecx
545887:	33 c0                	xor    %eax,%eax
545889:	8a 41 04             	mov    0x4(%ecx),%al
54588c:	89 45 a4             	mov    %eax,-0x5c(%ebp)
54588f:	8b 93 14 02 00 00    	mov    0x214(%ebx),%edx
545895:	8b 4d a8             	mov    -0x58(%ebp),%ecx
545898:	33 c0                	xor    %eax,%eax
54589a:	4e                   	dec    %esi
54589b:	8a 04 0a             	mov    (%edx,%ecx,1),%al
54589e:	8b 7d fc             	mov    -0x4(%ebp),%edi
5458a1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5458a4:	8d 14 40             	lea    (%eax,%eax,2),%edx
5458a7:	8d 04 76             	lea    (%esi,%esi,2),%eax
5458aa:	03 ca                	add    %edx,%ecx
5458ac:	66 8b 14 07          	mov    (%edi,%eax,1),%dx
5458b0:	66 89 11             	mov    %dx,(%ecx)
5458b3:	8a 54 07 02          	mov    0x2(%edi,%eax,1),%dl
5458b7:	88 51 02             	mov    %dl,0x2(%ecx)
5458ba:	8b 45 08             	mov    0x8(%ebp),%eax
5458bd:	85 c0                	test   %eax,%eax
5458bf:	75 5f                	jne    0x545920
5458c1:	33 c0                	xor    %eax,%eax
5458c3:	8b 55 f8             	mov    -0x8(%ebp),%edx
5458c6:	3b c2                	cmp    %edx,%eax
5458c8:	7d 56                	jge    0x545920
5458ca:	8b 8b b0 01 00 00    	mov    0x1b0(%ebx),%ecx
5458d0:	8b 7d a8             	mov    -0x58(%ebp),%edi
5458d3:	8a 14 01             	mov    (%ecx,%eax,1),%dl
5458d6:	8b 8b 14 02 00 00    	mov    0x214(%ebx),%ecx
5458dc:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
5458df:	3a d1                	cmp    %cl,%dl
5458e1:	75 15                	jne    0x5458f8
5458e3:	8b 93 14 02 00 00    	mov    0x214(%ebx),%edx
5458e9:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5458ec:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
5458ef:	8b 8b b0 01 00 00    	mov    0x1b0(%ebx),%ecx
5458f5:	88 14 01             	mov    %dl,(%ecx,%eax,1)
5458f8:	8b 93 b0 01 00 00    	mov    0x1b0(%ebx),%edx
5458fe:	33 c9                	xor    %ecx,%ecx
545900:	8a 0c 02             	mov    (%edx,%eax,1),%cl
545903:	3b f1                	cmp    %ecx,%esi
545905:	75 11                	jne    0x545918
545907:	8b 8b 14 02 00 00    	mov    0x214(%ebx),%ecx
54590d:	8b 7d a8             	mov    -0x58(%ebp),%edi
545910:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
545913:	51                   	push   %ecx
545914:	59                   	pop    %ecx
545915:	88 0c 02             	mov    %cl,(%edx,%eax,1)
545918:	40                   	inc    %eax
545919:	8b 55 f8             	mov    -0x8(%ebp),%edx
54591c:	3b c2                	cmp    %edx,%eax
54591e:	7c aa                	jl     0x5458ca
545920:	8b 83 14 02 00 00    	mov    0x214(%ebx),%eax
545926:	8b 55 a8             	mov    -0x58(%ebp),%edx
545929:	8a 04 10             	mov    (%eax,%edx,1),%al
54592c:	8b 8b 18 02 00 00    	mov    0x218(%ebx),%ecx
545932:	33 d2                	xor    %edx,%edx
545934:	8a 14 31             	mov    (%ecx,%esi,1),%dl
545937:	8b 8b 14 02 00 00    	mov    0x214(%ebx),%ecx
54593d:	88 04 11             	mov    %al,(%ecx,%edx,1)
545940:	8b 83 14 02 00 00    	mov    0x214(%ebx),%eax
545946:	8b 55 a8             	mov    -0x58(%ebp),%edx
545949:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
54594d:	8b 8b 18 02 00 00    	mov    0x218(%ebx),%ecx
545953:	8b 93 18 02 00 00    	mov    0x218(%ebx),%edx
545959:	8a 14 32             	mov    (%edx,%esi,1),%dl
54595c:	88 14 01             	mov    %dl,(%ecx,%eax,1)
54595f:	8b 83 14 02 00 00    	mov    0x214(%ebx),%eax
545965:	8b 4d a8             	mov    -0x58(%ebp),%ecx
545968:	8b d6                	mov    %esi,%edx
54596a:	88 14 08             	mov    %dl,(%eax,%ecx,1)
54596d:	8a 45 a8             	mov    -0x58(%ebp),%al
545970:	8b 8b 18 02 00 00    	mov    0x218(%ebx),%ecx
545976:	88 04 31             	mov    %al,(%ecx,%esi,1)
545979:	8b 45 10             	mov    0x10(%ebp),%eax
54597c:	3b f0                	cmp    %eax,%esi
54597e:	7e 13                	jle    0x545993
545980:	8b 55 ac             	mov    -0x54(%ebp),%edx
545983:	8b 0a                	mov    (%edx),%ecx
545985:	89 4d ac             	mov    %ecx,-0x54(%ebp)
545988:	8b 45 ac             	mov    -0x54(%ebp),%eax
54598b:	85 c0                	test   %eax,%eax
54598d:	0f 85 90 fe ff ff    	jne    0x545823
545993:	8b 55 10             	mov    0x10(%ebp),%edx
545996:	3b f2                	cmp    %edx,%esi
545998:	7e 11                	jle    0x5459ab
54599a:	ff 45 c0             	incl   -0x40(%ebp)
54599d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5459a0:	8b 45 bc             	mov    -0x44(%ebp),%eax
5459a3:	3b c8                	cmp    %eax,%ecx
5459a5:	0f 8e 50 fe ff ff    	jle    0x5457fb
5459ab:	33 d2                	xor    %edx,%edx
5459ad:	89 55 c0             	mov    %edx,-0x40(%ebp)
5459b0:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
5459b3:	8b 45 c0             	mov    -0x40(%ebp),%eax
5459b6:	8b 14 81             	mov    (%ecx,%eax,4),%edx
5459b9:	85 d2                	test   %edx,%edx
5459bb:	74 22                	je     0x5459df
5459bd:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
5459c0:	8b 45 c0             	mov    -0x40(%ebp),%eax
5459c3:	8b 04 81             	mov    (%ecx,%eax,4),%eax
5459c6:	85 c0                	test   %eax,%eax
5459c8:	74 15                	je     0x5459df
5459ca:	8b 10                	mov    (%eax),%edx
5459cc:	89 55 b8             	mov    %edx,-0x48(%ebp)
5459cf:	8b d0                	mov    %eax,%edx
5459d1:	8b c3                	mov    %ebx,%eax
5459d3:	e8 04 54 00 00       	call   0x54addc
5459d8:	8b 45 b8             	mov    -0x48(%ebp),%eax
5459db:	85 c0                	test   %eax,%eax
5459dd:	75 eb                	jne    0x5459ca
5459df:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5459e2:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5459e5:	33 c0                	xor    %eax,%eax
5459e7:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
5459ea:	ff 45 c0             	incl   -0x40(%ebp)
5459ed:	8b 55 c0             	mov    -0x40(%ebp),%edx
5459f0:	81 fa 01 03 00 00    	cmp    $0x301,%edx
5459f6:	7c b8                	jl     0x5459b0
5459f8:	83 45 bc 60          	addl   $0x60,-0x44(%ebp)
5459fc:	8b 4d 10             	mov    0x10(%ebp),%ecx
5459ff:	3b f1                	cmp    %ecx,%esi
545a01:	0f 8f e3 fc ff ff    	jg     0x5456ea
545a07:	8b 55 b4             	mov    -0x4c(%ebp),%edx
545a0a:	8b c3                	mov    %ebx,%eax
545a0c:	e8 cb 53 00 00       	call   0x54addc
545a11:	8b 93 18 02 00 00    	mov    0x218(%ebx),%edx
545a17:	8b c3                	mov    %ebx,%eax
545a19:	e8 be 53 00 00       	call   0x54addc
545a1e:	8b 93 14 02 00 00    	mov    0x214(%ebx),%edx
545a24:	8b c3                	mov    %ebx,%eax
545a26:	e8 b1 53 00 00       	call   0x54addc
545a2b:	33 c9                	xor    %ecx,%ecx
545a2d:	33 c0                	xor    %eax,%eax
545a2f:	89 8b 18 02 00 00    	mov    %ecx,0x218(%ebx)
545a35:	89 83 14 02 00 00    	mov    %eax,0x214(%ebx)
545a3b:	8b 55 10             	mov    0x10(%ebp),%edx
545a3e:	89 55 f8             	mov    %edx,-0x8(%ebp)
545a41:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
545a47:	85 c9                	test   %ecx,%ecx
545a49:	75 09                	jne    0x545a54
545a4b:	8b 45 fc             	mov    -0x4(%ebp),%eax
545a4e:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
545a54:	66 8b 55 f8          	mov    -0x8(%ebp),%dx
545a58:	66 89 93 d8 00 00 00 	mov    %dx,0xd8(%ebx)
545a5f:	8b 4d 08             	mov    0x8(%ebp),%ecx
545a62:	85 c9                	test   %ecx,%ecx
545a64:	0f 84 01 02 00 00    	je     0x545c6b
545a6a:	c7 45 98 0f 00 00 00 	movl   $0xf,-0x68(%ebp)
545a71:	c7 45 94 20 00 00 00 	movl   $0x20,-0x6c(%ebp)
545a78:	c7 45 90 20 00 00 00 	movl   $0x20,-0x70(%ebp)
545a7f:	c7 45 8c 20 00 00 00 	movl   $0x20,-0x74(%ebp)
545a86:	8b 4d 98             	mov    -0x68(%ebp),%ecx
545a89:	b8 01 00 00 00       	mov    $0x1,%eax
545a8e:	d3 e0                	shl    %cl,%eax
545a90:	89 45 88             	mov    %eax,-0x78(%ebp)
545a93:	8b c3                	mov    %ebx,%eax
545a95:	8b 55 88             	mov    -0x78(%ebp),%edx
545a98:	e8 cb 52 00 00       	call   0x54ad68
545a9d:	89 83 ac 01 00 00    	mov    %eax,0x1ac(%ebx)
545aa3:	8b 55 88             	mov    -0x78(%ebp),%edx
545aa6:	52                   	push   %edx
545aa7:	6a 00                	push   $0x0
545aa9:	8b 8b ac 01 00 00    	mov    0x1ac(%ebx),%ecx
545aaf:	51                   	push   %ecx
545ab0:	e8 6f 08 fe ff       	call   0x526324
545ab5:	83 c4 0c             	add    $0xc,%esp
545ab8:	8b 55 88             	mov    -0x78(%ebp),%edx
545abb:	8b c3                	mov    %ebx,%eax
545abd:	e8 a6 52 00 00       	call   0x54ad68
545ac2:	89 45 9c             	mov    %eax,-0x64(%ebp)
545ac5:	8b 4d 88             	mov    -0x78(%ebp),%ecx
545ac8:	51                   	push   %ecx
545ac9:	68 ff 00 00 00       	push   $0xff
545ace:	8b 45 9c             	mov    -0x64(%ebp),%eax
545ad1:	50                   	push   %eax
545ad2:	e8 4d 08 fe ff       	call   0x526324
545ad7:	83 c4 0c             	add    $0xc,%esp
545ada:	33 d2                	xor    %edx,%edx
545adc:	89 55 a0             	mov    %edx,-0x60(%ebp)
545adf:	8b 4d a0             	mov    -0x60(%ebp),%ecx
545ae2:	8b 45 f8             	mov    -0x8(%ebp),%eax
545ae5:	3b c8                	cmp    %eax,%ecx
545ae7:	0f 8d 74 01 00 00    	jge    0x545c61
545aed:	8b 55 a0             	mov    -0x60(%ebp),%edx
545af0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
545af3:	33 c0                	xor    %eax,%eax
545af5:	8d 14 52             	lea    (%edx,%edx,2),%edx
545af8:	8a 04 11             	mov    (%ecx,%edx,1),%al
545afb:	c1 f8 03             	sar    $0x3,%eax
545afe:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
545b04:	33 c0                	xor    %eax,%eax
545b06:	8b 55 a0             	mov    -0x60(%ebp),%edx
545b09:	8b 4d fc             	mov    -0x4(%ebp),%ecx
545b0c:	8d 14 52             	lea    (%edx,%edx,2),%edx
545b0f:	8a 44 11 01          	mov    0x1(%ecx,%edx,1),%al
545b13:	c1 f8 03             	sar    $0x3,%eax
545b16:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
545b1c:	33 c0                	xor    %eax,%eax
545b1e:	8b 55 a0             	mov    -0x60(%ebp),%edx
545b21:	8b 4d fc             	mov    -0x4(%ebp),%ecx
545b24:	8d 14 52             	lea    (%edx,%edx,2),%edx
545b27:	8a 44 11 02          	mov    0x2(%ecx,%edx,1),%al
545b2b:	33 d2                	xor    %edx,%edx
545b2d:	c1 f8 03             	sar    $0x3,%eax
545b30:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
545b36:	89 55 84             	mov    %edx,-0x7c(%ebp)
545b39:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
545b3c:	8b 45 94             	mov    -0x6c(%ebp),%eax
545b3f:	3b c8                	cmp    %eax,%ecx
545b41:	0f 8d 09 01 00 00    	jge    0x545c50
545b47:	8b 45 84             	mov    -0x7c(%ebp),%eax
545b4a:	8b 95 7c ff ff ff    	mov    -0x84(%ebp),%edx
545b50:	2b c2                	sub    %edx,%eax
545b52:	33 c9                	xor    %ecx,%ecx
545b54:	99                   	cltd
545b55:	33 c2                	xor    %edx,%eax
545b57:	2b c2                	sub    %edx,%eax
545b59:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
545b5f:	8b 45 84             	mov    -0x7c(%ebp),%eax
545b62:	c1 e0 0a             	shl    $0xa,%eax
545b65:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
545b6b:	89 4d 80             	mov    %ecx,-0x80(%ebp)
545b6e:	8b 45 80             	mov    -0x80(%ebp),%eax
545b71:	8b 55 90             	mov    -0x70(%ebp),%edx
545b74:	3b c2                	cmp    %edx,%eax
545b76:	0f 8d c3 00 00 00    	jge    0x545c3f
545b7c:	8b 45 80             	mov    -0x80(%ebp),%eax
545b7f:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
545b85:	2b c2                	sub    %edx,%eax
545b87:	99                   	cltd
545b88:	33 c2                	xor    %edx,%eax
545b8a:	2b c2                	sub    %edx,%eax
545b8c:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
545b92:	03 c8                	add    %eax,%ecx
545b94:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
545b9a:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
545ba0:	3b c2                	cmp    %edx,%eax
545ba2:	7d 08                	jge    0x545bac
545ba4:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx