54a884:	89 4d f4             	mov    %ecx,-0xc(%ebp)
54a887:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
54a88b:	74 11                	je     0x54a89e
54a88d:	8b 41 0c             	mov    0xc(%ecx),%eax
54a890:	8b 71 10             	mov    0x10(%ecx),%esi
54a893:	c1 e8 02             	shr    $0x2,%eax
54a896:	89 45 fc             	mov    %eax,-0x4(%ebp)
54a899:	89 75 e8             	mov    %esi,-0x18(%ebp)
54a89c:	eb 02                	jmp    0x54a8a0
54a89e:	33 c0                	xor    %eax,%eax
54a8a0:	33 d2                	xor    %edx,%edx
54a8a2:	33 c9                	xor    %ecx,%ecx
54a8a4:	89 55 ec             	mov    %edx,-0x14(%ebp)
54a8a7:	83 f8 02             	cmp    $0x2,%eax
54a8aa:	72 28                	jb     0x54a8d4
54a8ac:	48                   	dec    %eax
54a8ad:	33 db                	xor    %ebx,%ebx
54a8af:	89 45 ec             	mov    %eax,-0x14(%ebp)
54a8b2:	8b f8                	mov    %eax,%edi
54a8b4:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
54a8b7:	03 50 04             	add    0x4(%eax),%edx
54a8ba:	8b 44 8e 04          	mov    0x4(%esi,%ecx,4),%eax
54a8be:	83 c1 02             	add    $0x2,%ecx
54a8c1:	03 58 04             	add    0x4(%eax),%ebx
54a8c4:	3b cf                	cmp    %edi,%ecx
54a8c6:	7c ec                	jl     0x54a8b4
54a8c8:	8b 7d e4             	mov    -0x1c(%ebp),%edi
54a8cb:	8b 45 fc             	mov    -0x4(%ebp),%eax
54a8ce:	89 5d ec             	mov    %ebx,-0x14(%ebp)
54a8d1:	8b 5d 08             	mov    0x8(%ebp),%ebx
54a8d4:	3b c8                	cmp    %eax,%ecx
54a8d6:	7d 0b                	jge    0x54a8e3
54a8d8:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
54a8db:	8b 4d f8             	mov    -0x8(%ebp),%ecx
54a8de:	03 48 04             	add    0x4(%eax),%ecx
54a8e1:	eb 03                	jmp    0x54a8e6
54a8e3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
54a8e6:	8b 45 ec             	mov    -0x14(%ebp),%eax
54a8e9:	03 c2                	add    %edx,%eax
54a8eb:	03 c8                	add    %eax,%ecx
54a8ed:	89 4d f8             	mov    %ecx,-0x8(%ebp)
54a8f0:	8b 73 24             	mov    0x24(%ebx),%esi
54a8f3:	8d 46 01             	lea    0x1(%esi),%eax
54a8f6:	89 43 24             	mov    %eax,0x24(%ebx)
54a8f9:	3b f1                	cmp    %ecx,%esi
54a8fb:	0f 8d 15 01 00 00    	jge    0x54aa16
54a901:	8b 55 e8             	mov    -0x18(%ebp),%edx
54a904:	8b 43 6c             	mov    0x6c(%ebx),%eax
54a907:	3b f0                	cmp    %eax,%esi
54a909:	7d 05                	jge    0x54a910
54a90b:	8b 43 68             	mov    0x68(%ebx),%eax
54a90e:	eb 22                	jmp    0x54a932
54a910:	2b f0                	sub    %eax,%esi
54a912:	33 c9                	xor    %ecx,%ecx
54a914:	8b 02                	mov    (%edx),%eax
54a916:	8b 40 04             	mov    0x4(%eax),%eax
54a919:	3b f0                	cmp    %eax,%esi
54a91b:	7c 10                	jl     0x54a92d
54a91d:	0f 1f 00             	nopl   (%eax)
54a920:	41                   	inc    %ecx
54a921:	2b f0                	sub    %eax,%esi
54a923:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
54a926:	8b 40 04             	mov    0x4(%eax),%eax
54a929:	3b f0                	cmp    %eax,%esi
54a92b:	7d f3                	jge    0x54a920
54a92d:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
54a930:	8b 00                	mov    (%eax),%eax
54a932:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
54a936:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
54a939:	8d 04 88             	lea    (%eax,%ecx,4),%eax
54a93c:	89 45 08             	mov    %eax,0x8(%ebp)
54a93f:	0f 84 a0 00 00 00    	je     0x54a9e5
54a945:	80 78 01 fc          	cmpb   $0xfc,0x1(%eax)
54a949:	0f 85 96 00 00 00    	jne    0x54a9e5
54a94f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54a952:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
54a959:	89 45 ec             	mov    %eax,-0x14(%ebp)
54a95c:	83 c0 04             	add    $0x4,%eax
54a95f:	89 45 e8             	mov    %eax,-0x18(%ebp)
54a962:	33 c0                	xor    %eax,%eax
54a964:	85 c9                	test   %ecx,%ecx
54a966:	7e 16                	jle    0x54a97e
54a968:	8b 4d 08             	mov    0x8(%ebp),%ecx
54a96b:	8b 49 10             	mov    0x10(%ecx),%ecx
54a96e:	66 90                	xchg   %ax,%ax
54a970:	39 0c 82             	cmp    %ecx,(%edx,%eax,4)
54a973:	74 06                	je     0x54a97b
54a975:	40                   	inc    %eax
54a976:	3b 45 fc             	cmp    -0x4(%ebp),%eax
54a979:	7c f5                	jl     0x54a970
54a97b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54a97e:	3b c1                	cmp    %ecx,%eax
54a980:	75 63                	jne    0x54a9e5
54a982:	33 c0                	xor    %eax,%eax
54a984:	85 c9                	test   %ecx,%ecx
54a986:	0f 95 c0             	setne  %al
54a989:	50                   	push   %eax
54a98a:	ff 75 e8             	push   -0x18(%ebp)
54a98d:	ff 75 f4             	push   -0xc(%ebp)
54a990:	e8 5b 0b 00 00       	call   0x54b4f0
54a995:	83 c4 0c             	add    $0xc,%esp
54a998:	89 43 28             	mov    %eax,0x28(%ebx)
54a99b:	85 c0                	test   %eax,%eax
54a99d:	0f 85 88 00 00 00    	jne    0x54aa2b
54a9a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
54a9a6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
54a9a9:	8b 7d f8             	mov    -0x8(%ebp),%edi
54a9ac:	8b 50 10             	mov    0x10(%eax),%edx
54a9af:	8b 45 08             	mov    0x8(%ebp),%eax
54a9b2:	8b 40 10             	mov    0x10(%eax),%eax
54a9b5:	89 04 11             	mov    %eax,(%ecx,%edx,1)
54a9b8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54a9bb:	8b 45 f4             	mov    -0xc(%ebp),%eax
54a9be:	41                   	inc    %ecx
54a9bf:	89 4d fc             	mov    %ecx,-0x4(%ebp)
54a9c2:	66 83 48 08 10       	orw    $0x10,0x8(%eax)
54a9c7:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
54a9ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
54a9d1:	89 41 0c             	mov    %eax,0xc(%ecx)
54a9d4:	8b 4d 08             	mov    0x8(%ebp),%ecx
54a9d7:	8b 41 10             	mov    0x10(%ecx),%eax
54a9da:	03 78 04             	add    0x4(%eax),%edi
54a9dd:	89 7d f8             	mov    %edi,-0x8(%ebp)
54a9e0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
54a9e3:	eb 03                	jmp    0x54a9e8
54a9e5:	8b 4d 08             	mov    0x8(%ebp),%ecx
54a9e8:	8b 83 98 00 00 00    	mov    0x98(%ebx),%eax
54a9ee:	24 0c                	and    $0xc,%al
54a9f0:	3c 08                	cmp    $0x8,%al
54a9f2:	72 45                	jb     0x54aa39
54a9f4:	8a 01                	mov    (%ecx),%al
54a9f6:	3c ae                	cmp    $0xae,%al
54a9f8:	74 3f                	je     0x54aa39
54a9fa:	3c 3e                	cmp    $0x3e,%al
54a9fc:	75 06                	jne    0x54aa04
54a9fe:	83 7b 24 01          	cmpl   $0x1,0x24(%ebx)
54aa02:	7f 35                	jg     0x54aa39
54aa04:	8b 73 24             	mov    0x24(%ebx),%esi
54aa07:	8d 46 01             	lea    0x1(%esi),%eax
54aa0a:	89 43 24             	mov    %eax,0x24(%ebx)
54aa0d:	3b 75 f8             	cmp    -0x8(%ebp),%esi
54aa10:	0f 8c ee fe ff ff    	jl     0x54a904
54aa16:	be 65 00 00 00       	mov    $0x65,%esi
54aa1b:	c7 43 28 00 00 00 00 	movl   $0x0,0x28(%ebx)
54aa22:	5f                   	pop    %edi
54aa23:	8b c6                	mov    %esi,%eax
54aa25:	5e                   	pop    %esi
54aa26:	5b                   	pop    %ebx
54aa27:	8b e5                	mov    %ebp,%esp
54aa29:	5d                   	pop    %ebp
54aa2a:	c3                   	ret
54aa2b:	be 01 00 00 00       	mov    $0x1,%esi
54aa30:	5f                   	pop    %edi
54aa31:	8b c6                	mov    %esi,%eax
54aa33:	5e                   	pop    %esi
54aa34:	5b                   	pop    %ebx
54aa35:	8b e5                	mov    %ebp,%esp
54aa37:	5d                   	pop    %ebp
54aa38:	c3                   	ret
54aa39:	8b 45 e0             	mov    -0x20(%ebp),%eax
54aa3c:	83 b8 10 01 00 00 00 	cmpl   $0x0,0x110(%eax)
54aa43:	74 2e                	je     0x54aa73
54aa45:	a1 1c 68 6b 00       	mov    0x6b681c,%eax
54aa4a:	b9 dc c2 6b 00       	mov    $0x6bc2dc,%ecx
54aa4f:	85 c0                	test   %eax,%eax
54aa51:	c7 43 28 09 00 00 00 	movl   $0x9,0x28(%ebx)
54aa58:	be 01 00 00 00       	mov    $0x1,%esi
54aa5d:	0f 45 c8             	cmovne %eax,%ecx
54aa60:	51                   	push   %ecx
54aa61:	53                   	push   %ebx
54aa62:	e8 49 7d ff ff       	call   0x5427b0
54aa67:	83 c4 08             	add    $0x8,%esp
54aa6a:	8b c6                	mov    %esi,%eax
54aa6c:	5f                   	pop    %edi
54aa6d:	5e                   	pop    %esi
54aa6e:	5b                   	pop    %ebx
54aa6f:	8b e5                	mov    %ebp,%esp
54aa71:	5d                   	pop    %ebp
54aa72:	c3                   	ret
54aa73:	8b 8b 98 00 00 00    	mov    0x98(%ebx),%ecx
54aa79:	b8 04 00 00 00       	mov    $0x4,%eax
54aa7e:	80 e1 0c             	and    $0xc,%cl
54aa81:	3a c8                	cmp    %al,%cl
54aa83:	75 5b                	jne    0x54aae0
54aa85:	66 89 47 08          	mov    %ax,0x8(%edi)
54aa89:	8b c6                	mov    %esi,%eax
54aa8b:	8b 75 08             	mov    0x8(%ebp),%esi
54aa8e:	99                   	cltd
54aa8f:	89 07                	mov    %eax,(%edi)
54aa91:	b8 02 0a 00 00       	mov    $0xa02,%eax
54aa96:	89 57 04             	mov    %edx,0x4(%edi)
54aa99:	66 89 47 30          	mov    %ax,0x30(%edi)
54aa9d:	0f b6 06             	movzbl (%esi),%eax
54aaa0:	8b 0c 85 e0 2c 6b 00 	mov    0x6b2ce0(,%eax,4),%ecx
54aaa7:	89 4f 38             	mov    %ecx,0x38(%edi)
54aaaa:	85 c9                	test   %ecx,%ecx
54aaac:	75 0f                	jne    0x54aabd
54aaae:	89 4f 34             	mov    %ecx,0x34(%edi)
54aab1:	8d 41 04             	lea    0x4(%ecx),%eax
54aab4:	c6 47 32 01          	movb   $0x1,0x32(%edi)
54aab8:	83 c7 50             	add    $0x50,%edi
54aabb:	eb 26                	jmp    0x54aae3
54aabd:	8d 51 01             	lea    0x1(%ecx),%edx
54aac0:	8a 01                	mov    (%ecx),%al
54aac2:	41                   	inc    %ecx
54aac3:	84 c0                	test   %al,%al
54aac5:	75 f9                	jne    0x54aac0
54aac7:	2b ca                	sub    %edx,%ecx
54aac9:	c6 47 32 01          	movb   $0x1,0x32(%edi)
54aacd:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
54aad3:	b8 04 00 00 00       	mov    $0x4,%eax
54aad8:	89 4f 34             	mov    %ecx,0x34(%edi)
54aadb:	83 c7 50             	add    $0x50,%edi
54aade:	eb 03                	jmp    0x54aae3
54aae0:	8b 75 08             	mov    0x8(%ebp),%esi
54aae3:	66 89 47 08          	mov    %ax,0x8(%edi)
54aae7:	b9 04 00 00 00       	mov    $0x4,%ecx
54aaec:	8b 46 04             	mov    0x4(%esi),%eax
54aaef:	99                   	cltd
54aaf0:	89 07                	mov    %eax,(%edi)
54aaf2:	89 57 04             	mov    %edx,0x4(%edi)
54aaf5:	66 89 4f 30          	mov    %cx,0x30(%edi)
54aaf9:	8b 46 08             	mov    0x8(%esi),%eax
54aafc:	99                   	cltd
54aafd:	89 47 28             	mov    %eax,0x28(%edi)
54ab00:	89 57 2c             	mov    %edx,0x2c(%edi)
54ab03:	66 89 4f 58          	mov    %cx,0x58(%edi)
54ab07:	8b 46 0c             	mov    0xc(%esi),%eax
54ab0a:	99                   	cltd
54ab0b:	89 47 50             	mov    %eax,0x50(%edi)
54ab0e:	89 57 54             	mov    %edx,0x54(%edi)
54ab11:	83 c7 78             	add    $0x78,%edi
54ab14:	83 7f 18 64          	cmpl   $0x64,0x18(%edi)
54ab18:	7d 1d                	jge    0x54ab37
54ab1a:	6a 00                	push   $0x0
54ab1c:	6a 64                	push   $0x64
54ab1e:	57                   	push   %edi
54ab1f:	e8 cc 09 00 00       	call   0x54b4f0
54ab24:	83 c4 0c             	add    $0xc,%esp
54ab27:	85 c0                	test   %eax,%eax
54ab29:	74 17                	je     0x54ab42
54ab2b:	5f                   	pop    %edi
54ab2c:	5e                   	pop    %esi
54ab2d:	b8 01 00 00 00       	mov    $0x1,%eax
54ab32:	5b                   	pop    %ebx
54ab33:	8b e5                	mov    %ebp,%esp
54ab35:	5d                   	pop    %ebp
54ab36:	c3                   	ret
54ab37:	8b 47 14             	mov    0x14(%edi),%eax
54ab3a:	66 83 67 08 2d       	andw   $0x2d,0x8(%edi)
54ab3f:	89 47 10             	mov    %eax,0x10(%edi)
54ab42:	ff 77 18             	push   0x18(%edi)
54ab45:	b8 02 02 00 00       	mov    $0x202,%eax
54ab4a:	ff 77 10             	push   0x10(%edi)
54ab4d:	66 89 47 08          	mov    %ax,0x8(%edi)
54ab51:	56                   	push   %esi
54ab52:	e8 c9 34 fb ff       	call   0x4fe020
54ab57:	8b 4f 10             	mov    0x10(%edi),%ecx
54ab5a:	83 c4 0c             	add    $0xc,%esp
54ab5d:	89 45 e0             	mov    %eax,-0x20(%ebp)
54ab60:	ba 01 00 00 00       	mov    $0x1,%edx
54ab65:	3b c1                	cmp    %ecx,%eax
54ab67:	74 73                	je     0x54abdc
54ab69:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
54ab70:	85 c0                	test   %eax,%eax
54ab72:	75 1c                	jne    0x54ab90
54ab74:	b8 00 24 00 00       	mov    $0x2400,%eax
54ab79:	66 85 47 08          	test   %ax,0x8(%edi)
54ab7d:	74 0b                	je     0x54ab8a
54ab7f:	57                   	push   %edi
54ab80:	e8 cb 02 01 00       	call   0x55ae50
54ab85:	83 c4 04             	add    $0x4,%esp
54ab88:	eb 6f                	jmp    0x54abf9
54ab8a:	66 89 57 08          	mov    %dx,0x8(%edi)
54ab8e:	eb 69                	jmp    0x54abf9
54ab90:	8b f0                	mov    %eax,%esi
54ab92:	8d 4e 01             	lea    0x1(%esi),%ecx
54ab95:	8a 06                	mov    (%esi),%al
54ab97:	46                   	inc    %esi
54ab98:	84 c0                	test   %al,%al
54ab9a:	75 f9                	jne    0x54ab95
54ab9c:	2b f1                	sub    %ecx,%esi
54ab9e:	b8 00 24 00 00       	mov    $0x2400,%eax
54aba3:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
54aba9:	66 85 47 08          	test   %ax,0x8(%edi)
54abad:	75 06                	jne    0x54abb5
54abaf:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
54abb3:	74 09                	je     0x54abbe
54abb5:	57                   	push   %edi
54abb6:	e8 55 02 01 00       	call   0x55ae10
54abbb:	83 c4 04             	add    $0x4,%esp
54abbe:	8b 45 e0             	mov    -0x20(%ebp),%eax
54abc1:	89 47 10             	mov    %eax,0x10(%edi)
54abc4:	b8 02 0a 00 00       	mov    $0xa02,%eax
54abc9:	89 77 0c             	mov    %esi,0xc(%edi)
54abcc:	8b 75 08             	mov    0x8(%ebp),%esi
54abcf:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
54abd6:	66 89 47 08          	mov    %ax,0x8(%edi)
54abda:	eb 19                	jmp    0x54abf5
54abdc:	85 c9                	test   %ecx,%ecx
54abde:	74 12                	je     0x54abf2
54abe0:	8d 51 01             	lea    0x1(%ecx),%edx
54abe3:	8a 01                	mov    (%ecx),%al
54abe5:	41                   	inc    %ecx
54abe6:	84 c0                	test   %al,%al
54abe8:	75 f9                	jne    0x54abe3
54abea:	2b ca                	sub    %edx,%ecx
54abec:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
54abf2:	89 4f 0c             	mov    %ecx,0xc(%edi)
54abf5:	c6 47 0a 01          	movb   $0x1,0xa(%edi)
54abf9:	8b 83 98 00 00 00    	mov    0x98(%ebx),%eax
54abff:	83 c7 28             	add    $0x28,%edi
54ac02:	24 0c                	and    $0xc,%al
54ac04:	3c 04                	cmp    $0x4,%al
54ac06:	75 62                	jne    0x54ac6a
54ac08:	83 7f 18 04          	cmpl   $0x4,0x18(%edi)
54ac0c:	7d 1d                	jge    0x54ac2b
54ac0e:	6a 00                	push   $0x0
54ac10:	6a 04                	push   $0x4
54ac12:	57                   	push   %edi
54ac13:	e8 d8 08 00 00       	call   0x54b4f0
54ac18:	83 c4 0c             	add    $0xc,%esp
54ac1b:	85 c0                	test   %eax,%eax
54ac1d:	74 17                	je     0x54ac36
54ac1f:	5f                   	pop    %edi
54ac20:	5e                   	pop    %esi
54ac21:	b8 01 00 00 00       	mov    $0x1,%eax
54ac26:	5b                   	pop    %ebx
54ac27:	8b e5                	mov    %ebp,%esp
54ac29:	5d                   	pop    %ebp
54ac2a:	c3                   	ret
54ac2b:	8b 47 14             	mov    0x14(%edi),%eax
54ac2e:	66 83 67 08 2d       	andw   $0x2d,0x8(%edi)
54ac33:	89 47 10             	mov    %eax,0x10(%edi)
54ac36:	b8 02 02 00 00       	mov    $0x202,%eax
54ac3b:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
54ac42:	66 89 47 08          	mov    %ax,0x8(%edi)
54ac46:	0f b7 46 02          	movzwl 0x2(%esi),%eax
54ac4a:	50                   	push   %eax
54ac4b:	68 a8 86 6b 00       	push   $0x6b86a8
54ac50:	ff 77 10             	push   0x10(%edi)
54ac53:	6a 03                	push   $0x3
54ac55:	e8 96 fb f9 ff       	call   0x4ea7f0
54ac5a:	b8 01 00 00 00       	mov    $0x1,%eax
54ac5f:	c6 47 0a 01          	movb   $0x1,0xa(%edi)
54ac63:	83 c4 10             	add    $0x10,%esp
54ac66:	66 89 47 30          	mov    %ax,0x30(%edi)
54ac6a:	8b 8b 98 00 00 00    	mov    0x98(%ebx),%ecx
54ac70:	b8 03 00 00 00       	mov    $0x3,%eax
54ac75:	c1 e9 02             	shr    $0x2,%ecx