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)
479213:	eb 02                	jmp    0x479217
479215:	01 30                	add    %esi,(%eax)
479217:	5e                   	pop    %esi
479218:	5f                   	pop    %edi
479219:	5b                   	pop    %ebx
47921a:	5d                   	pop    %ebp
47921b:	c2 10 00             	ret    $0x10
47921e:	8b ff                	mov    %edi,%edi
479220:	55                   	push   %ebp
479221:	8b ec                	mov    %esp,%ebp
479223:	51                   	push   %ecx
479224:	53                   	push   %ebx
479225:	8b 5d 0c             	mov    0xc(%ebp),%ebx
479228:	8b c1                	mov    %ecx,%eax
47922a:	89 45 fc             	mov    %eax,-0x4(%ebp)
47922d:	85 db                	test   %ebx,%ebx
47922f:	74 59                	je     0x47928a
479231:	8b 00                	mov    (%eax),%eax
479233:	57                   	push   %edi
479234:	8b 78 04             	mov    0x4(%eax),%edi
479237:	39 78 08             	cmp    %edi,0x8(%eax)
47923a:	75 0b                	jne    0x479247
47923c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
479240:	8b 45 10             	mov    0x10(%ebp),%eax
479243:	74 3d                	je     0x479282
479245:	eb 33                	jmp    0x47927a
479247:	2b 78 08             	sub    0x8(%eax),%edi
47924a:	3b fb                	cmp    %ebx,%edi
47924c:	72 02                	jb     0x479250
47924e:	8b fb                	mov    %ebx,%edi
479250:	56                   	push   %esi
479251:	8d 34 3f             	lea    (%edi,%edi,1),%esi
479254:	56                   	push   %esi
479255:	ff 75 08             	push   0x8(%ebp)
479258:	ff 30                	push   (%eax)
47925a:	e8 c1 23 ff ff       	call   0x46b620
47925f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
479262:	83 c4 0c             	add    $0xc,%esp
479265:	8b 01                	mov    (%ecx),%eax
479267:	01 30                	add    %esi,(%eax)
479269:	8b 01                	mov    (%ecx),%eax
47926b:	5e                   	pop    %esi
47926c:	01 78 08             	add    %edi,0x8(%eax)
47926f:	8b 01                	mov    (%ecx),%eax
479271:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
479275:	8b 45 10             	mov    0x10(%ebp),%eax
479278:	74 04                	je     0x47927e
47927a:	01 18                	add    %ebx,(%eax)
47927c:	eb 0b                	jmp    0x479289
47927e:	3b fb                	cmp    %ebx,%edi
479280:	74 05                	je     0x479287
479282:	83 08 ff             	orl    $0xffffffff,(%eax)
479285:	eb 02                	jmp    0x479289
479287:	01 38                	add    %edi,(%eax)
479289:	5f                   	pop    %edi
47928a:	5b                   	pop    %ebx
47928b:	c9                   	leave
47928c:	c2 10 00             	ret    $0x10
47928f:	8b ff                	mov    %edi,%edi
479291:	55                   	push   %ebp
479292:	8b ec                	mov    %esp,%ebp
479294:	8b 4d 0c             	mov    0xc(%ebp),%ecx
479297:	8d 41 01             	lea    0x1(%ecx),%eax
47929a:	3d 00 01 00 00       	cmp    $0x100,%eax
47929f:	77 0c                	ja     0x4792ad
4792a1:	8b 45 08             	mov    0x8(%ebp),%eax
4792a4:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4792a8:	23 45 10             	and    0x10(%ebp),%eax
4792ab:	5d                   	pop    %ebp
4792ac:	c3                   	ret
4792ad:	33 c0                	xor    %eax,%eax
4792af:	5d                   	pop    %ebp
4792b0:	c3                   	ret
4792b1:	8b ff                	mov    %edi,%edi
4792b3:	55                   	push   %ebp
4792b4:	8b ec                	mov    %esp,%ebp
4792b6:	83 ec 28             	sub    $0x28,%esp
4792b9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4792bc:	56                   	push   %esi
4792bd:	ff 75 20             	push   0x20(%ebp)
4792c0:	e8 1b e0 ff ff       	call   0x4772e0
4792c5:	ff 75 24             	push   0x24(%ebp)
4792c8:	8d 45 d8             	lea    -0x28(%ebp),%eax
4792cb:	50                   	push   %eax
4792cc:	ff 75 1c             	push   0x1c(%ebp)
4792cf:	ff 75 18             	push   0x18(%ebp)
4792d2:	ff 75 14             	push   0x14(%ebp)
4792d5:	ff 75 10             	push   0x10(%ebp)
4792d8:	ff 75 0c             	push   0xc(%ebp)
4792db:	ff 75 08             	push   0x8(%ebp)
4792de:	e8 90 bd ff ff       	call   0x475073
4792e3:	83 c4 20             	add    $0x20,%esp
4792e6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4792e9:	8b f0                	mov    %eax,%esi
4792eb:	e8 50 e0 ff ff       	call   0x477340
4792f0:	8b c6                	mov    %esi,%eax
4792f2:	5e                   	pop    %esi
4792f3:	c9                   	leave
4792f4:	c3                   	ret
4792f5:	8b ff                	mov    %edi,%edi
4792f7:	55                   	push   %ebp
4792f8:	8b ec                	mov    %esp,%ebp
4792fa:	83 ec 28             	sub    $0x28,%esp
4792fd:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479300:	56                   	push   %esi
479301:	ff 75 20             	push   0x20(%ebp)
479304:	e8 d7 df ff ff       	call   0x4772e0
479309:	ff 75 24             	push   0x24(%ebp)
47930c:	8d 45 d8             	lea    -0x28(%ebp),%eax
47930f:	50                   	push   %eax
479310:	ff 75 1c             	push   0x1c(%ebp)
479313:	ff 75 18             	push   0x18(%ebp)
479316:	ff 75 14             	push   0x14(%ebp)
479319:	ff 75 10             	push   0x10(%ebp)
47931c:	ff 75 0c             	push   0xc(%ebp)
47931f:	ff 75 08             	push   0x8(%ebp)
479322:	e8 4d be ff ff       	call   0x475174
479327:	83 c4 20             	add    $0x20,%esp
47932a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
47932d:	8b f0                	mov    %eax,%esi
47932f:	e8 0c e0 ff ff       	call   0x477340
479334:	8b c6                	mov    %esi,%eax
479336:	5e                   	pop    %esi
479337:	c9                   	leave
479338:	c3                   	ret
479339:	8b ff                	mov    %edi,%edi
47933b:	55                   	push   %ebp
47933c:	8b ec                	mov    %esp,%ebp
47933e:	83 ec 28             	sub    $0x28,%esp
479341:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479344:	56                   	push   %esi
479345:	ff 75 1c             	push   0x1c(%ebp)
479348:	e8 93 df ff ff       	call   0x4772e0
47934d:	ff 75 20             	push   0x20(%ebp)
479350:	8d 45 d8             	lea    -0x28(%ebp),%eax
479353:	50                   	push   %eax
479354:	ff 75 18             	push   0x18(%ebp)
479357:	ff 75 14             	push   0x14(%ebp)
47935a:	ff 75 10             	push   0x10(%ebp)
47935d:	ff 75 0c             	push   0xc(%ebp)
479360:	ff 75 08             	push   0x8(%ebp)
479363:	e8 15 c2 ff ff       	call   0x47557d
479368:	83 c4 1c             	add    $0x1c,%esp
47936b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
47936e:	8b f0                	mov    %eax,%esi
479370:	e8 cb df ff ff       	call   0x477340
479375:	8b c6                	mov    %esi,%eax
479377:	5e                   	pop    %esi
479378:	c9                   	leave
479379:	c3                   	ret
47937a:	8b ff                	mov    %edi,%edi
47937c:	55                   	push   %ebp
47937d:	8b ec                	mov    %esp,%ebp
47937f:	83 ec 28             	sub    $0x28,%esp
479382:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479385:	56                   	push   %esi
479386:	ff 75 1c             	push   0x1c(%ebp)
479389:	e8 52 df ff ff       	call   0x4772e0
47938e:	ff 75 20             	push   0x20(%ebp)
479391:	8d 45 d8             	lea    -0x28(%ebp),%eax
479394:	50                   	push   %eax
479395:	ff 75 18             	push   0x18(%ebp)
479398:	ff 75 14             	push   0x14(%ebp)
47939b:	ff 75 10             	push   0x10(%ebp)
47939e:	ff 75 0c             	push   0xc(%ebp)
4793a1:	ff 75 08             	push   0x8(%ebp)
4793a4:	e8 48 c3 ff ff       	call   0x4756f1
4793a9:	83 c4 1c             	add    $0x1c,%esp
4793ac:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4793af:	8b f0                	mov    %eax,%esi
4793b1:	e8 8a df ff ff       	call   0x477340
4793b6:	8b c6                	mov    %esi,%eax
4793b8:	5e                   	pop    %esi
4793b9:	c9                   	leave
4793ba:	c3                   	ret