54cee6:	56                   	push   %esi
54cee7:	8d 42 ff             	lea    -0x1(%edx),%eax
54ceea:	83 f8 06             	cmp    $0x6,%eax
54ceed:	77 2a                	ja     0x54cf19
54ceef:	8b 45 0c             	mov    0xc(%ebp),%eax
54cef2:	0f b6 92 d8 2f 6b 00 	movzbl 0x6b2fd8(%edx),%edx
54cef9:	8b 75 08             	mov    0x8(%ebp),%esi
54cefc:	57                   	push   %edi
54cefd:	8b 08                	mov    (%eax),%ecx
54ceff:	8b fa                	mov    %edx,%edi
54cf01:	8b 40 04             	mov    0x4(%eax),%eax
54cf04:	4a                   	dec    %edx
54cf05:	88 0c 32             	mov    %cl,(%edx,%esi,1)
54cf08:	0f ac c1 08          	shrd   $0x8,%eax,%ecx
54cf0c:	c1 e8 08             	shr    $0x8,%eax
54cf0f:	85 d2                	test   %edx,%edx
54cf11:	75 f1                	jne    0x54cf04
54cf13:	8b c7                	mov    %edi,%eax
54cf15:	5f                   	pop    %edi
54cf16:	5e                   	pop    %esi
54cf17:	5d                   	pop    %ebp
54cf18:	c3                   	ret
54cf19:	83 fa 0c             	cmp    $0xc,%edx
54cf1c:	72 1e                	jb     0x54cf3c
54cf1e:	8b 45 0c             	mov    0xc(%ebp),%eax
54cf21:	8b 70 0c             	mov    0xc(%eax),%esi
54cf24:	85 f6                	test   %esi,%esi
54cf26:	74 0f                	je     0x54cf37
54cf28:	56                   	push   %esi
54cf29:	ff 70 10             	push   0x10(%eax)
54cf2c:	ff 75 08             	push   0x8(%ebp)
54cf2f:	e8 cc 5f 09 00       	call   0x5e2f00
54cf34:	83 c4 0c             	add    $0xc,%esp
54cf37:	8b c6                	mov    %esi,%eax
54cf39:	5e                   	pop    %esi
54cf3a:	5d                   	pop    %ebp
54cf3b:	c3                   	ret
54cf3c:	33 c0                	xor    %eax,%eax
54cf3e:	5e                   	pop    %esi
54cf3f:	5d                   	pop    %ebp
54cf40:	c3                   	ret
54cf41:	cc                   	int3
54cf42:	cc                   	int3
54cf43:	cc                   	int3
54cf44:	cc                   	int3
54cf45:	cc                   	int3
54cf46:	cc                   	int3
54cf47:	cc                   	int3
54cf48:	cc                   	int3
54cf49:	cc                   	int3
54cf4a:	cc                   	int3
54cf4b:	cc                   	int3
54cf4c:	cc                   	int3
54cf4d:	cc                   	int3
54cf4e:	cc                   	int3
54cf4f:	cc                   	int3
54cf50:	55                   	push   %ebp
54cf51:	8b ec                	mov    %esp,%ebp
54cf53:	8b 45 08             	mov    0x8(%ebp),%eax
54cf56:	3d 80 00 00 00       	cmp    $0x80,%eax
54cf5b:	72 07                	jb     0x54cf64
54cf5d:	83 c0 f4             	add    $0xfffffff4,%eax
54cf60:	d1 e8                	shr    $1,%eax
54cf62:	5d                   	pop    %ebp
54cf63:	c3                   	ret
54cf64:	0f b6 80 d8 2f 6b 00 	movzbl 0x6b2fd8(%eax),%eax
54cf6b:	5d                   	pop    %ebp
54cf6c:	c3                   	ret
54cf6d:	cc                   	int3
54cf6e:	cc                   	int3
54cf6f:	cc                   	int3
54cf70:	55                   	push   %ebp
54cf71:	8b ec                	mov    %esp,%ebp
54cf73:	8b 55 08             	mov    0x8(%ebp),%edx
54cf76:	8b 02                	mov    (%edx),%eax
54cf78:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
54cf7c:	74 07                	je     0x54cf85
54cf7e:	b8 07 00 00 00       	mov    $0x7,%eax
54cf83:	5d                   	pop    %ebp
54cf84:	c3                   	ret
54cf85:	0f b7 82 90 00 00 00 	movzwl 0x90(%edx),%eax
54cf8c:	0f af 45 10          	imul   0x10(%ebp),%eax
54cf90:	ff 75 18             	push   0x18(%ebp)
54cf93:	6a 01                	push   $0x1
54cf95:	6a ff                	push   $0xffffffff
54cf97:	03 45 0c             	add    0xc(%ebp),%eax
54cf9a:	ff 75 14             	push   0x14(%ebp)
54cf9d:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
54cfa0:	8b 42 74             	mov    0x74(%edx),%eax
54cfa3:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
54cfa6:	50                   	push   %eax
54cfa7:	e8 34 eb ff ff       	call   0x54bae0
54cfac:	83 c4 14             	add    $0x14,%esp
54cfaf:	5d                   	pop    %ebp
54cfb0:	c3                   	ret
54cfb1:	cc                   	int3
54cfb2:	cc                   	int3
54cfb3:	cc                   	int3
54cfb4:	cc                   	int3
54cfb5:	cc                   	int3
54cfb6:	cc                   	int3
54cfb7:	cc                   	int3
54cfb8:	cc                   	int3
54cfb9:	cc                   	int3
54cfba:	cc                   	int3
54cfbb:	cc                   	int3
54cfbc:	cc                   	int3
54cfbd:	cc                   	int3
54cfbe:	cc                   	int3
54cfbf:	cc                   	int3
54cfc0:	55                   	push   %ebp
54cfc1:	8b ec                	mov    %esp,%ebp
54cfc3:	53                   	push   %ebx
54cfc4:	8b 5d 08             	mov    0x8(%ebp),%ebx
54cfc7:	56                   	push   %esi
54cfc8:	57                   	push   %edi
54cfc9:	0f b7 83 90 00 00 00 	movzwl 0x90(%ebx),%eax
54cfd0:	8b 3b                	mov    (%ebx),%edi
54cfd2:	66 85 c0             	test   %ax,%ax
54cfd5:	74 1f                	je     0x54cff6
54cfd7:	03 c0                	add    %eax,%eax
54cfd9:	50                   	push   %eax
54cfda:	ff 73 74             	push   0x74(%ebx)
54cfdd:	e8 2e 50 fc ff       	call   0x512010
54cfe2:	8b 43 74             	mov    0x74(%ebx),%eax
54cfe5:	83 c4 08             	add    $0x8,%esp
54cfe8:	85 c0                	test   %eax,%eax
54cfea:	74 0a                	je     0x54cff6
54cfec:	50                   	push   %eax
54cfed:	57                   	push   %edi
54cfee:	e8 7d 43 fd ff       	call   0x521370
54cff3:	83 c4 08             	add    $0x8,%esp
54cff6:	8b 45 0c             	mov    0xc(%ebp),%eax
54cff9:	66 89 83 90 00 00 00 	mov    %ax,0x90(%ebx)
54d000:	6a 00                	push   $0x0
54d002:	8d 34 00             	lea    (%eax,%eax,1),%esi
54d005:	8d 04 b6             	lea    (%esi,%esi,4),%eax
54d008:	c1 e0 03             	shl    $0x3,%eax
54d00b:	50                   	push   %eax
54d00c:	57                   	push   %edi
54d00d:	e8 ce 43 fd ff       	call   0x5213e0
54d012:	83 c4 0c             	add    $0xc,%esp
54d015:	89 43 74             	mov    %eax,0x74(%ebx)
54d018:	85 c0                	test   %eax,%eax
54d01a:	74 21                	je     0x54d03d
54d01c:	85 f6                	test   %esi,%esi
54d01e:	7e 1d                	jle    0x54d03d
54d020:	83 c0 08             	add    $0x8,%eax
54d023:	b9 01 00 00 00       	mov    $0x1,%ecx
54d028:	4e                   	dec    %esi
54d029:	89 78 18             	mov    %edi,0x18(%eax)
54d02c:	66 89 08             	mov    %cx,(%eax)
54d02f:	8d 40 28             	lea    0x28(%eax),%eax
54d032:	c7 40 e8 00 00 00 00 	movl   $0x0,-0x18(%eax)
54d039:	85 f6                	test   %esi,%esi
54d03b:	7f eb                	jg     0x54d028
54d03d:	5f                   	pop    %edi
54d03e:	5e                   	pop    %esi
54d03f:	5b                   	pop    %ebx
54d040:	5d                   	pop    %ebp
54d041:	c3                   	ret
54d042:	cc                   	int3
54d043:	cc                   	int3
54d044:	cc                   	int3
54d045:	cc                   	int3
54d046:	cc                   	int3
54d047:	cc                   	int3
54d048:	cc                   	int3
54d049:	cc                   	int3
54d04a:	cc                   	int3
54d04b:	cc                   	int3
54d04c:	cc                   	int3
54d04d:	cc                   	int3
54d04e:	cc                   	int3
54d04f:	cc                   	int3
54d050:	55                   	push   %ebp
54d051:	8b ec                	mov    %esp,%ebp
54d053:	8b 45 08             	mov    0x8(%ebp),%eax
54d056:	56                   	push   %esi
54d057:	ff 75 0c             	push   0xc(%ebp)
54d05a:	8b 70 08             	mov    0x8(%eax),%esi
54d05d:	50                   	push   %eax
54d05e:	e8 9d 2c fe ff       	call   0x52fd00
54d063:	8b d0                	mov    %eax,%edx
54d065:	83 c4 08             	add    $0x8,%esp
54d068:	85 d2                	test   %edx,%edx
54d06a:	74 29                	je     0x54d095
54d06c:	8b 0e                	mov    (%esi),%ecx
54d06e:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
54d072:	74 0f                	je     0x54d083
54d074:	52                   	push   %edx
54d075:	6a f7                	push   $0xfffffff7
54d077:	51                   	push   %ecx
54d078:	e8 33 6c fb ff       	call   0x503cb0
54d07d:	83 c4 0c             	add    $0xc,%esp
54d080:	5e                   	pop    %esi
54d081:	5d                   	pop    %ebp
54d082:	c3                   	ret
54d083:	8b 46 6c             	mov    0x6c(%esi),%eax
54d086:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
54d089:	8b 46 68             	mov    0x68(%esi),%eax
54d08c:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
54d091:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
54d095:	5e                   	pop    %esi
54d096:	5d                   	pop    %ebp
54d097:	c3                   	ret
54d098:	cc                   	int3
54d099:	cc                   	int3
54d09a:	cc                   	int3
54d09b:	cc                   	int3
54d09c:	cc                   	int3
54d09d:	cc                   	int3
54d09e:	cc                   	int3
54d09f:	cc                   	int3
54d0a0:	55                   	push   %ebp
54d0a1:	8b ec                	mov    %esp,%ebp
54d0a3:	56                   	push   %esi
54d0a4:	8b 75 08             	mov    0x8(%ebp),%esi
54d0a7:	85 f6                	test   %esi,%esi
54d0a9:	74 63                	je     0x54d10e
54d0ab:	8a 45 14             	mov    0x14(%ebp),%al
54d0ae:	88 86 94 00 00 00    	mov    %al,0x94(%esi)
54d0b4:	84 c0                	test   %al,%al
54d0b6:	78 0a                	js     0x54d0c2
54d0b8:	c7 86 d4 00 00 00 00 	movl   $0x0,0xd4(%esi)
54d0bf:	00 00 00
54d0c2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
54d0c6:	8b 45 10             	mov    0x10(%ebp),%eax
54d0c9:	53                   	push   %ebx
54d0ca:	99                   	cltd
54d0cb:	57                   	push   %edi
54d0cc:	8b d8                	mov    %eax,%ebx
54d0ce:	75 0d                	jne    0x54d0dd
54d0d0:	33 ff                	xor    %edi,%edi
54d0d2:	89 be c0 00 00 00    	mov    %edi,0xc0(%esi)
54d0d8:	5f                   	pop    %edi
54d0d9:	5b                   	pop    %ebx
54d0da:	5e                   	pop    %esi
54d0db:	5d                   	pop    %ebp
54d0dc:	c3                   	ret
54d0dd:	83 c0 01             	add    $0x1,%eax
54d0e0:	83 d2 00             	adc    $0x0,%edx
54d0e3:	52                   	push   %edx
54d0e4:	50                   	push   %eax
54d0e5:	ff 36                	push   (%esi)
54d0e7:	e8 f4 42 fd ff       	call   0x5213e0
54d0ec:	8b f8                	mov    %eax,%edi
54d0ee:	83 c4 0c             	add    $0xc,%esp
54d0f1:	85 ff                	test   %edi,%edi
54d0f3:	74 11                	je     0x54d106
54d0f5:	53                   	push   %ebx
54d0f6:	ff 75 0c             	push   0xc(%ebp)
54d0f9:	57                   	push   %edi
54d0fa:	e8 01 5e 09 00       	call   0x5e2f00
54d0ff:	83 c4 0c             	add    $0xc,%esp
54d102:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
54d106:	89 be c0 00 00 00    	mov    %edi,0xc0(%esi)
54d10c:	5f                   	pop    %edi
54d10d:	5b                   	pop    %ebx
54d10e:	5e                   	pop    %esi
54d10f:	5d                   	pop    %ebp
54d110:	c3                   	ret
54d111:	cc                   	int3
54d112:	cc                   	int3
54d113:	cc                   	int3
54d114:	cc                   	int3
54d115:	cc                   	int3
54d116:	cc                   	int3
54d117:	cc                   	int3
54d118:	cc                   	int3
54d119:	cc                   	int3
54d11a:	cc                   	int3
54d11b:	cc                   	int3
54d11c:	cc                   	int3
54d11d:	cc                   	int3
54d11e:	cc                   	int3
54d11f:	cc                   	int3
54d120:	55                   	push   %ebp
54d121:	8b ec                	mov    %esp,%ebp
54d123:	8b 45 0c             	mov    0xc(%ebp),%eax
54d126:	83 f8 20             	cmp    $0x20,%eax
54d129:	7c 0f                	jl     0x54d13a
54d12b:	8b 45 08             	mov    0x8(%ebp),%eax
54d12e:	81 88 d4 00 00 00 00 	orl    $0x80000000,0xd4(%eax)
54d135:	00 00 80
54d138:	5d                   	pop    %ebp
54d139:	c3                   	ret
54d13a:	8b 55 08             	mov    0x8(%ebp),%edx
54d13d:	48                   	dec    %eax
54d13e:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
54d144:	0f ab c1             	bts    %eax,%ecx
54d147:	89 8a d4 00 00 00    	mov    %ecx,0xd4(%edx)
54d14d:	5d                   	pop    %ebp
54d14e:	c3                   	ret
54d14f:	cc                   	int3
54d150:	55                   	push   %ebp
54d151:	8b ec                	mov    %esp,%ebp
54d153:	8b 45 08             	mov    0x8(%ebp),%eax
54d156:	53                   	push   %ebx
54d157:	8b 5d 10             	mov    0x10(%ebp),%ebx
54d15a:	56                   	push   %esi
54d15b:	8b 70 28             	mov    0x28(%eax),%esi
54d15e:	8b 40 2c             	mov    0x2c(%eax),%eax
54d161:	57                   	push   %edi
54d162:	89 45 08             	mov    %eax,0x8(%ebp)
54d165:	8b 7e 20             	mov    0x20(%esi),%edi
54d168:	85 ff                	test   %edi,%edi
54d16a:	75 1e                	jne    0x54d18a
54d16c:	50                   	push   %eax
54d16d:	e8 4e 4c ff ff       	call   0x541dc0
54d172:	8b f8                	mov    %eax,%edi
54d174:	83 c4 04             	add    $0x4,%esp
54d177:	89 7e 20             	mov    %edi,0x20(%esi)
54d17a:	85 ff                	test   %edi,%edi
54d17c:	75 08                	jne    0x54d186
54d17e:	8d 47 07             	lea    0x7(%edi),%eax
54d181:	5f                   	pop    %edi
54d182:	5e                   	pop    %esi
54d183:	5b                   	pop    %ebx
54d184:	5d                   	pop    %ebp
54d185:	c3                   	ret
54d186:	66 89 5f 08          	mov    %bx,0x8(%edi)
54d18a:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
54d18e:	74 31                	je     0x54d1c1
54d190:	80 7e 39 00          	cmpb   $0x0,0x39(%esi)
54d194:	74 0b                	je     0x54d1a1
54d196:	8b 46 10             	mov    0x10(%esi),%eax
54d199:	8b 48 20             	mov    0x20(%eax),%ecx
54d19c:	83 c0 14             	add    $0x14,%eax
54d19f:	eb 26                	jmp    0x54d1c7
54d1a1:	8b 56 14             	mov    0x14(%esi),%edx
54d1a4:	8b 42 08             	mov    0x8(%edx),%eax
54d1a7:	8b 40 04             	mov    0x4(%eax),%eax
54d1aa:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
54d1b1:	2b c8                	sub    %eax,%ecx
54d1b3:	8b 42 0c             	mov    0xc(%edx),%eax
54d1b6:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
54d1b9:	8b 48 20             	mov    0x20(%eax),%ecx
54d1bc:	83 c0 14             	add    $0x14,%eax
54d1bf:	eb 06                	jmp    0x54d1c7
54d1c1:	8b 46 24             	mov    0x24(%esi),%eax
54d1c4:	8d 48 08             	lea    0x8(%eax),%ecx
54d1c7:	8b 00                	mov    (%eax),%eax
54d1c9:	57                   	push   %edi
54d1ca:	51                   	push   %ecx
54d1cb:	50                   	push   %eax
54d1cc:	ff 75 08             	push   0x8(%ebp)
54d1cf:	e8 ec f8 ff ff       	call   0x54cac0
54d1d4:	83 c4 10             	add    $0x10,%esp
54d1d7:	33 c9                	xor    %ecx,%ecx