478eb9:	50                   	push   %eax
478eba:	50                   	push   %eax
478ebb:	50                   	push   %eax
478ebc:	50                   	push   %eax
478ebd:	e8 e2 06 00 00       	call   0x4795a4
478ec2:	83 c4 18             	add    $0x18,%esp
478ec5:	32 c0                	xor    %al,%al
478ec7:	eb 44                	jmp    0x478f0d
478ec9:	ff 76 28             	push   0x28(%esi)
478ecc:	e8 2b fa ff ff       	call   0x4788fc
478ed1:	59                   	pop    %ecx
478ed2:	83 e8 01             	sub    $0x1,%eax
478ed5:	74 2b                	je     0x478f02
478ed7:	83 e8 01             	sub    $0x1,%eax
478eda:	74 1d                	je     0x478ef9
478edc:	48                   	dec    %eax
478edd:	83 e8 01             	sub    $0x1,%eax
478ee0:	74 10                	je     0x478ef2
478ee2:	83 e8 04             	sub    $0x4,%eax
478ee5:	75 be                	jne    0x478ea5
478ee7:	8b 46 14             	mov    0x14(%esi),%eax
478eea:	99                   	cltd
478eeb:	89 07                	mov    %eax,(%edi)
478eed:	89 57 04             	mov    %edx,0x4(%edi)
478ef0:	eb 15                	jmp    0x478f07
478ef2:	8b 46 14             	mov    0x14(%esi),%eax
478ef5:	89 07                	mov    %eax,(%edi)
478ef7:	eb 0e                	jmp    0x478f07
478ef9:	66 8b 46 14          	mov    0x14(%esi),%ax
478efd:	66 89 07             	mov    %ax,(%edi)
478f00:	eb 05                	jmp    0x478f07
478f02:	8a 46 14             	mov    0x14(%esi),%al
478f05:	88 07                	mov    %al,(%edi)
478f07:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
478f0b:	b0 01                	mov    $0x1,%al
478f0d:	5f                   	pop    %edi
478f0e:	5e                   	pop    %esi
478f0f:	c3                   	ret
478f10:	8b 51 1c             	mov    0x1c(%ecx),%edx
478f13:	8b c2                	mov    %edx,%eax
478f15:	c1 e8 05             	shr    $0x5,%eax
478f18:	a8 01                	test   $0x1,%al
478f1a:	74 09                	je     0x478f25
478f1c:	81 ca 80 00 00 00    	or     $0x80,%edx
478f22:	89 51 1c             	mov    %edx,0x1c(%ecx)
478f25:	6a 00                	push   $0x0
478f27:	e8 00 d3 ff ff       	call   0x47622c
478f2c:	c3                   	ret
478f2d:	8b 51 1c             	mov    0x1c(%ecx),%edx
478f30:	8b c2                	mov    %edx,%eax
478f32:	c1 e8 05             	shr    $0x5,%eax
478f35:	a8 01                	test   $0x1,%al
478f37:	74 09                	je     0x478f42
478f39:	81 ca 80 00 00 00    	or     $0x80,%edx
478f3f:	89 51 1c             	mov    %edx,0x1c(%ecx)
478f42:	6a 00                	push   $0x0
478f44:	e8 70 d4 ff ff       	call   0x4763b9
478f49:	c3                   	ret
478f4a:	6a 01                	push   $0x1
478f4c:	c7 41 24 08 00 00 00 	movl   $0x8,0x24(%ecx)
478f53:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
478f5a:	e8 0b d9 ff ff       	call   0x47686a
478f5f:	c3                   	ret
478f60:	6a 01                	push   $0x1
478f62:	c7 41 24 08 00 00 00 	movl   $0x8,0x24(%ecx)
478f69:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
478f70:	e8 82 da ff ff       	call   0x4769f7
478f75:	c3                   	ret
478f76:	8b ff                	mov    %edi,%edi
478f78:	53                   	push   %ebx
478f79:	56                   	push   %esi
478f7a:	8b f1                	mov    %ecx,%esi
478f7c:	57                   	push   %edi
478f7d:	8b 56 10             	mov    0x10(%esi),%edx
478f80:	8d 42 04             	lea    0x4(%edx),%eax
478f83:	89 46 10             	mov    %eax,0x10(%esi)
478f86:	8b 5e 24             	mov    0x24(%esi),%ebx
478f89:	8b 3a                	mov    (%edx),%edi
478f8b:	89 7e 30             	mov    %edi,0x30(%esi)
478f8e:	83 fb ff             	cmp    $0xffffffff,%ebx
478f91:	75 05                	jne    0x478f98
478f93:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
478f98:	ff 76 28             	push   0x28(%esi)
478f9b:	0f b6 46 2d          	movzbl 0x2d(%esi),%eax
478f9f:	50                   	push   %eax
478fa0:	ff 76 04             	push   0x4(%esi)
478fa3:	ff 36                	push   (%esi)
478fa5:	e8 e8 c9 ff ff       	call   0x475992
478faa:	83 c4 10             	add    $0x10,%esp
478fad:	84 c0                	test   %al,%al
478faf:	74 19                	je     0x478fca
478fb1:	85 ff                	test   %edi,%edi
478fb3:	75 08                	jne    0x478fbd
478fb5:	bf f8 1a 4a 00       	mov    $0x4a1af8,%edi
478fba:	89 7e 30             	mov    %edi,0x30(%esi)
478fbd:	53                   	push   %ebx
478fbe:	57                   	push   %edi
478fbf:	c6 46 38 01          	movb   $0x1,0x38(%esi)
478fc3:	e8 53 9b 00 00       	call   0x482b1b
478fc8:	eb 13                	jmp    0x478fdd
478fca:	85 ff                	test   %edi,%edi
478fcc:	75 08                	jne    0x478fd6
478fce:	bf 08 1b 4a 00       	mov    $0x4a1b08,%edi
478fd3:	89 7e 30             	mov    %edi,0x30(%esi)
478fd6:	53                   	push   %ebx
478fd7:	57                   	push   %edi
478fd8:	e8 1c 9a 00 00       	call   0x4829f9
478fdd:	59                   	pop    %ecx
478fde:	59                   	pop    %ecx
478fdf:	5f                   	pop    %edi
478fe0:	89 46 34             	mov    %eax,0x34(%esi)
478fe3:	b0 01                	mov    $0x1,%al
478fe5:	5e                   	pop    %esi
478fe6:	5b                   	pop    %ebx
478fe7:	c3                   	ret
478fe8:	8b ff                	mov    %edi,%edi
478fea:	53                   	push   %ebx
478feb:	56                   	push   %esi
478fec:	8b f1                	mov    %ecx,%esi
478fee:	57                   	push   %edi
478fef:	8b 56 10             	mov    0x10(%esi),%edx
478ff2:	8d 42 04             	lea    0x4(%edx),%eax
478ff5:	89 46 10             	mov    %eax,0x10(%esi)
478ff8:	8b 5e 24             	mov    0x24(%esi),%ebx
478ffb:	8b 3a                	mov    (%edx),%edi
478ffd:	89 7e 30             	mov    %edi,0x30(%esi)
479000:	83 fb ff             	cmp    $0xffffffff,%ebx
479003:	75 05                	jne    0x47900a
479005:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
47900a:	ff 76 28             	push   0x28(%esi)
47900d:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
479011:	50                   	push   %eax
479012:	ff 76 04             	push   0x4(%esi)
479015:	ff 36                	push   (%esi)
479017:	e8 a7 c9 ff ff       	call   0x4759c3
47901c:	83 c4 10             	add    $0x10,%esp
47901f:	84 c0                	test   %al,%al
479021:	74 1b                	je     0x47903e
479023:	85 ff                	test   %edi,%edi
479025:	75 08                	jne    0x47902f
479027:	bf f8 1a 4a 00       	mov    $0x4a1af8,%edi
47902c:	89 7e 30             	mov    %edi,0x30(%esi)
47902f:	53                   	push   %ebx
479030:	57                   	push   %edi
479031:	c6 46 38 01          	movb   $0x1,0x38(%esi)
479035:	e8 e1 9a 00 00       	call   0x482b1b
47903a:	59                   	pop    %ecx
47903b:	59                   	pop    %ecx
47903c:	eb 15                	jmp    0x479053
47903e:	85 ff                	test   %edi,%edi
479040:	75 07                	jne    0x479049
479042:	c7 46 30 08 1b 4a 00 	movl   $0x4a1b08,0x30(%esi)
479049:	6a 00                	push   $0x0
47904b:	53                   	push   %ebx
47904c:	8b ce                	mov    %esi,%ecx
47904e:	e8 09 00 00 00       	call   0x47905c
479053:	5f                   	pop    %edi
479054:	89 46 34             	mov    %eax,0x34(%esi)
479057:	b0 01                	mov    $0x1,%al
479059:	5e                   	pop    %esi
47905a:	5b                   	pop    %ebx
47905b:	c3                   	ret
47905c:	8b ff                	mov    %edi,%edi
47905e:	55                   	push   %ebp
47905f:	8b ec                	mov    %esp,%ebp
479061:	53                   	push   %ebx
479062:	56                   	push   %esi
479063:	8b f1                	mov    %ecx,%esi
479065:	57                   	push   %edi
479066:	8b 5e 08             	mov    0x8(%esi),%ebx
479069:	80 7b 14 00          	cmpb   $0x0,0x14(%ebx)
47906d:	75 07                	jne    0x479076
47906f:	8b cb                	mov    %ebx,%ecx
479071:	e8 9a 00 00 00       	call   0x479110
479076:	8b 76 30             	mov    0x30(%esi),%esi
479079:	33 ff                	xor    %edi,%edi
47907b:	39 7d 08             	cmp    %edi,0x8(%ebp)
47907e:	7e 28                	jle    0x4790a8
479080:	8a 06                	mov    (%esi),%al
479082:	84 c0                	test   %al,%al
479084:	74 22                	je     0x4790a8
479086:	0f b6 c0             	movzbl %al,%eax
479089:	68 00 80 00 00       	push   $0x8000
47908e:	50                   	push   %eax
47908f:	8b 43 0c             	mov    0xc(%ebx),%eax
479092:	ff 30                	push   (%eax)
479094:	e8 f6 01 00 00       	call   0x47928f
479099:	83 c4 0c             	add    $0xc,%esp
47909c:	85 c0                	test   %eax,%eax
47909e:	74 01                	je     0x4790a1
4790a0:	46                   	inc    %esi
4790a1:	46                   	inc    %esi
4790a2:	47                   	inc    %edi
4790a3:	3b 7d 08             	cmp    0x8(%ebp),%edi
4790a6:	7c d8                	jl     0x479080
4790a8:	8b c7                	mov    %edi,%eax
4790aa:	5f                   	pop    %edi
4790ab:	5e                   	pop    %esi
4790ac:	5b                   	pop    %ebx
4790ad:	5d                   	pop    %ebp
4790ae:	c2 08 00             	ret    $0x8
4790b1:	8b ff                	mov    %edi,%edi
4790b3:	55                   	push   %ebp
4790b4:	8b ec                	mov    %esp,%ebp
4790b6:	8b 01                	mov    (%ecx),%eax
4790b8:	48                   	dec    %eax
4790b9:	89 01                	mov    %eax,(%ecx)
4790bb:	8a 4d 08             	mov    0x8(%ebp),%cl
4790be:	84 c9                	test   %cl,%cl
4790c0:	74 14                	je     0x4790d6
4790c2:	38 08                	cmp    %cl,(%eax)
4790c4:	74 10                	je     0x4790d6
4790c6:	e8 6a 0e 00 00       	call   0x479f35
4790cb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4790d1:	e8 4b 05 00 00       	call   0x479621
4790d6:	5d                   	pop    %ebp
4790d7:	c2 04 00             	ret    $0x4
4790da:	8b ff                	mov    %edi,%edi
4790dc:	55                   	push   %ebp
4790dd:	8b ec                	mov    %esp,%ebp
4790df:	8b 01                	mov    (%ecx),%eax
4790e1:	83 c0 fe             	add    $0xfffffffe,%eax
4790e4:	89 01                	mov    %eax,(%ecx)
4790e6:	66 8b 4d 08          	mov    0x8(%ebp),%cx
4790ea:	66 85 c9             	test   %cx,%cx
4790ed:	74 15                	je     0x479104
4790ef:	66 39 08             	cmp    %cx,(%eax)
4790f2:	74 10                	je     0x479104
4790f4:	e8 3c 0e 00 00       	call   0x479f35
4790f9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4790ff:	e8 1d 05 00 00       	call   0x479621
479104:	5d                   	pop    %ebp
479105:	c2 04 00             	ret    $0x4
479108:	cc                   	int3
479109:	cc                   	int3
47910a:	cc                   	int3
47910b:	cc                   	int3
47910c:	cc                   	int3
47910d:	cc                   	int3
47910e:	cc                   	int3
47910f:	cc                   	int3
479110:	8b ff                	mov    %edi,%edi
479112:	55                   	push   %ebp
479113:	8b ec                	mov    %esp,%ebp
479115:	51                   	push   %ecx
479116:	53                   	push   %ebx
479117:	56                   	push   %esi
479118:	57                   	push   %edi
479119:	8b d9                	mov    %ecx,%ebx
47911b:	e8 60 e4 ff ff       	call   0x477580
479120:	ff 73 04             	push   0x4(%ebx)
479123:	8d 73 0c             	lea    0xc(%ebx),%esi
479126:	89 45 fc             	mov    %eax,-0x4(%ebp)
479129:	56                   	push   %esi
47912a:	8b 50 4c             	mov    0x4c(%eax),%edx
47912d:	8d 7b 10             	lea    0x10(%ebx),%edi
479130:	89 16                	mov    %edx,(%esi)
479132:	8b 50 48             	mov    0x48(%eax),%edx
479135:	50                   	push   %eax
479136:	89 17                	mov    %edx,(%edi)
479138:	e8 70 c7 00 00       	call   0x4858ad
47913d:	ff 73 04             	push   0x4(%ebx)
479140:	8b 75 fc             	mov    -0x4(%ebp),%esi
479143:	57                   	push   %edi
479144:	56                   	push   %esi
479145:	e8 c1 c7 00 00       	call   0x48590b
47914a:	8b 86 50 03 00 00    	mov    0x350(%esi),%eax
479150:	83 c4 18             	add    $0x18,%esp
479153:	a8 02                	test   $0x2,%al
479155:	75 0d                	jne    0x479164
479157:	83 c8 02             	or     $0x2,%eax
47915a:	89 86 50 03 00 00    	mov    %eax,0x350(%esi)
479160:	c6 43 14 02          	movb   $0x2,0x14(%ebx)
479164:	5f                   	pop    %edi
479165:	5e                   	pop    %esi
479166:	5b                   	pop    %ebx
479167:	8b e5                	mov    %ebp,%esp
479169:	5d                   	pop    %ebp
47916a:	c3                   	ret
47916b:	83 39 00             	cmpl   $0x0,(%ecx)
47916e:	75 13                	jne    0x479183
479170:	e8 c0 0d 00 00       	call   0x479f35
479175:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47917b:	e8 a1 04 00 00       	call   0x479621
479180:	32 c0                	xor    %al,%al
479182:	c3                   	ret
479183:	b0 01                	mov    $0x1,%al
479185:	c3                   	ret
479186:	8b ff                	mov    %edi,%edi
479188:	55                   	push   %ebp
479189:	8b ec                	mov    %esp,%ebp
47918b:	33 d2                	xor    %edx,%edx
47918d:	39 11                	cmp    %edx,(%ecx)
47918f:	75 20                	jne    0x4791b1
479191:	8b 45 08             	mov    0x8(%ebp),%eax
479194:	50                   	push   %eax
479195:	52                   	push   %edx
479196:	52                   	push   %edx
479197:	52                   	push   %edx
479198:	52                   	push   %edx
479199:	52                   	push   %edx
47919a:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
47919e:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4791a5:	e8 fa 03 00 00       	call   0x4795a4
4791aa:	83 c4 18             	add    $0x18,%esp
4791ad:	32 c0                	xor    %al,%al
4791af:	eb 02                	jmp    0x4791b3
4791b1:	b0 01                	mov    $0x1,%al
4791b3:	5d                   	pop    %ebp
4791b4:	c2 04 00             	ret    $0x4
4791b7:	8b ff                	mov    %edi,%edi
4791b9:	55                   	push   %ebp
4791ba:	8b ec                	mov    %esp,%ebp
4791bc:	53                   	push   %ebx
4791bd:	57                   	push   %edi
4791be:	8b 7d 0c             	mov    0xc(%ebp),%edi
4791c1:	8b d9                	mov    %ecx,%ebx
4791c3:	85 ff                	test   %edi,%edi
4791c5:	74 51                	je     0x479218
4791c7:	8b 03                	mov    (%ebx),%eax
4791c9:	56                   	push   %esi
4791ca:	8b 70 04             	mov    0x4(%eax),%esi
4791cd:	39 70 08             	cmp    %esi,0x8(%eax)
4791d0:	75 0b                	jne    0x4791dd
4791d2:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
4791d6:	8b 45 10             	mov    0x10(%ebp),%eax
4791d9:	74 35                	je     0x479210
4791db:	eb 2b                	jmp    0x479208
4791dd:	2b 70 08             	sub    0x8(%eax),%esi
4791e0:	3b f7                	cmp    %edi,%esi
4791e2:	72 02                	jb     0x4791e6
4791e4:	8b f7                	mov    %edi,%esi
4791e6:	56                   	push   %esi
4791e7:	ff 75 08             	push   0x8(%ebp)
4791ea:	ff 30                	push   (%eax)
4791ec:	e8 2f 24 ff ff       	call   0x46b620
4791f1:	8b 03                	mov    (%ebx),%eax
4791f3:	83 c4 0c             	add    $0xc,%esp
4791f6:	01 30                	add    %esi,(%eax)
4791f8:	8b 03                	mov    (%ebx),%eax
4791fa:	01 70 08             	add    %esi,0x8(%eax)
4791fd:	8b 03                	mov    (%ebx),%eax
4791ff:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
479203:	8b 45 10             	mov    0x10(%ebp),%eax
479206:	74 04                	je     0x47920c
479208:	01 38                	add    %edi,(%eax)
47920a:	eb 0b                	jmp    0x479217
47920c:	3b f7                	cmp    %edi,%esi
47920e:	74 05                	je     0x479215
479210:	83 08 ff             	orl    $0xffffffff,(%eax)