4160d6:	33 c0                	xor    %eax,%eax
4160d8:	40                   	inc    %eax
4160d9:	e9 f6 01 00 00       	jmp    0x4162d4
4160de:	83 fe 01             	cmp    $0x1,%esi
4160e1:	7e 04                	jle    0x4160e7
4160e3:	6a 03                	push   $0x3
4160e5:	eb e4                	jmp    0x4160cb
4160e7:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4160ea:	51                   	push   %ecx
4160eb:	50                   	push   %eax
4160ec:	ff 15 80 b1 41 00    	call   *0x41b180
4160f2:	85 c0                	test   %eax,%eax
4160f4:	74 a5                	je     0x41609b
4160f6:	85 f6                	test   %esi,%esi
4160f8:	7e 2f                	jle    0x416129
4160fa:	6a 02                	push   $0x2
4160fc:	58                   	pop    %eax
4160fd:	39 45 e8             	cmp    %eax,-0x18(%ebp)
416100:	72 e1                	jb     0x4160e3
416102:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
416106:	8d 4d ee             	lea    -0x12(%ebp),%ecx
416109:	74 d8                	je     0x4160e3
41610b:	8a 51 01             	mov    0x1(%ecx),%dl
41610e:	84 d2                	test   %dl,%dl
416110:	74 d1                	je     0x4160e3
416112:	8a 1f                	mov    (%edi),%bl
416114:	3a 19                	cmp    (%ecx),%bl
416116:	72 08                	jb     0x416120
416118:	3a da                	cmp    %dl,%bl
41611a:	0f 86 b4 01 00 00    	jbe    0x4162d4
416120:	03 c8                	add    %eax,%ecx
416122:	80 39 00             	cmpb   $0x0,(%ecx)
416125:	75 e4                	jne    0x41610b
416127:	eb ba                	jmp    0x4160e3
416129:	85 db                	test   %ebx,%ebx
41612b:	7e 35                	jle    0x416162
41612d:	6a 02                	push   $0x2
41612f:	58                   	pop    %eax
416130:	39 45 e8             	cmp    %eax,-0x18(%ebp)
416133:	72 a1                	jb     0x4160d6
416135:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
416139:	8d 4d ee             	lea    -0x12(%ebp),%ecx
41613c:	74 98                	je     0x4160d6
41613e:	8b 75 dc             	mov    -0x24(%ebp),%esi
416141:	8a 51 01             	mov    0x1(%ecx),%dl
416144:	84 d2                	test   %dl,%dl
416146:	74 8e                	je     0x4160d6
416148:	8a 1e                	mov    (%esi),%bl
41614a:	3a 19                	cmp    (%ecx),%bl
41614c:	72 08                	jb     0x416156
41614e:	3a da                	cmp    %dl,%bl
416150:	0f 86 7e 01 00 00    	jbe    0x4162d4
416156:	03 c8                	add    %eax,%ecx
416158:	80 39 00             	cmpb   $0x0,(%ecx)
41615b:	75 e4                	jne    0x416141
41615d:	e9 74 ff ff ff       	jmp    0x4160d6
416162:	33 ff                	xor    %edi,%edi
416164:	57                   	push   %edi
416165:	57                   	push   %edi
416166:	56                   	push   %esi
416167:	ff 75 e0             	push   -0x20(%ebp)
41616a:	6a 09                	push   $0x9
41616c:	ff 75 24             	push   0x24(%ebp)
41616f:	ff 15 2c b1 41 00    	call   *0x41b12c
416175:	89 45 d8             	mov    %eax,-0x28(%ebp)
416178:	85 c0                	test   %eax,%eax
41617a:	0f 84 1b ff ff ff    	je     0x41609b
416180:	8d 14 00             	lea    (%eax,%eax,1),%edx
416183:	8d 4a 08             	lea    0x8(%edx),%ecx
416186:	3b d1                	cmp    %ecx,%edx
416188:	1b c0                	sbb    %eax,%eax
41618a:	85 c1                	test   %eax,%ecx
41618c:	74 59                	je     0x4161e7
41618e:	8d 4a 08             	lea    0x8(%edx),%ecx
416191:	3b d1                	cmp    %ecx,%edx
416193:	1b c0                	sbb    %eax,%eax
416195:	23 c1                	and    %ecx,%eax
416197:	8d 4a 08             	lea    0x8(%edx),%ecx
41619a:	3d 00 04 00 00       	cmp    $0x400,%eax
41619f:	77 20                	ja     0x4161c1
4161a1:	3b d1                	cmp    %ecx,%edx
4161a3:	1b c0                	sbb    %eax,%eax
4161a5:	23 c1                	and    %ecx,%eax
4161a7:	e8 24 22 00 00       	call   0x4183d0
4161ac:	8b c4                	mov    %esp,%eax
4161ae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4161b1:	85 c0                	test   %eax,%eax
4161b3:	0f 84 0f 01 00 00    	je     0x4162c8
4161b9:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
4161bf:	eb 1e                	jmp    0x4161df
4161c1:	3b d1                	cmp    %ecx,%edx
4161c3:	1b c0                	sbb    %eax,%eax
4161c5:	23 c1                	and    %ecx,%eax
4161c7:	50                   	push   %eax
4161c8:	e8 91 36 ff ff       	call   0x40985e
4161cd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4161d0:	59                   	pop    %ecx
4161d1:	85 c0                	test   %eax,%eax
4161d3:	0f 84 ef 00 00 00    	je     0x4162c8
4161d9:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
4161df:	83 c0 08             	add    $0x8,%eax
4161e2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4161e5:	eb 05                	jmp    0x4161ec
4161e7:	8b c7                	mov    %edi,%eax
4161e9:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4161ec:	85 c0                	test   %eax,%eax
4161ee:	0f 84 d4 00 00 00    	je     0x4162c8
4161f4:	ff 75 d8             	push   -0x28(%ebp)
4161f7:	50                   	push   %eax
4161f8:	56                   	push   %esi
4161f9:	ff 75 e0             	push   -0x20(%ebp)
4161fc:	8b 75 24             	mov    0x24(%ebp),%esi
4161ff:	6a 01                	push   $0x1
416201:	56                   	push   %esi
416202:	ff 15 2c b1 41 00    	call   *0x41b12c
416208:	85 c0                	test   %eax,%eax
41620a:	0f 84 b8 00 00 00    	je     0x4162c8
416210:	57                   	push   %edi
416211:	57                   	push   %edi
416212:	53                   	push   %ebx
416213:	ff 75 dc             	push   -0x24(%ebp)
416216:	6a 09                	push   $0x9
416218:	56                   	push   %esi
416219:	ff 15 2c b1 41 00    	call   *0x41b12c
41621f:	89 45 e0             	mov    %eax,-0x20(%ebp)
416222:	85 c0                	test   %eax,%eax
416224:	0f 84 9e 00 00 00    	je     0x4162c8
41622a:	8d 14 00             	lea    (%eax,%eax,1),%edx
41622d:	8d 4a 08             	lea    0x8(%edx),%ecx
416230:	3b d1                	cmp    %ecx,%edx
416232:	1b c0                	sbb    %eax,%eax
416234:	85 c1                	test   %eax,%ecx
416236:	74 4a                	je     0x416282
416238:	8d 4a 08             	lea    0x8(%edx),%ecx
41623b:	3b d1                	cmp    %ecx,%edx
41623d:	1b c0                	sbb    %eax,%eax
41623f:	23 c1                	and    %ecx,%eax
416241:	8d 4a 08             	lea    0x8(%edx),%ecx
416244:	3d 00 04 00 00       	cmp    $0x400,%eax
416249:	77 19                	ja     0x416264
41624b:	3b d1                	cmp    %ecx,%edx
41624d:	1b c0                	sbb    %eax,%eax
41624f:	23 c1                	and    %ecx,%eax
416251:	e8 7a 21 00 00       	call   0x4183d0
416256:	8b f4                	mov    %esp,%esi
416258:	85 f6                	test   %esi,%esi
41625a:	74 60                	je     0x4162bc
41625c:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
416262:	eb 19                	jmp    0x41627d
416264:	3b d1                	cmp    %ecx,%edx
416266:	1b c0                	sbb    %eax,%eax
416268:	23 c1                	and    %ecx,%eax
41626a:	50                   	push   %eax
41626b:	e8 ee 35 ff ff       	call   0x40985e
416270:	8b f0                	mov    %eax,%esi
416272:	59                   	pop    %ecx
416273:	85 f6                	test   %esi,%esi
416275:	74 45                	je     0x4162bc
416277:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
41627d:	83 c6 08             	add    $0x8,%esi
416280:	eb 02                	jmp    0x416284
416282:	8b f7                	mov    %edi,%esi
416284:	85 f6                	test   %esi,%esi
416286:	74 34                	je     0x4162bc
416288:	ff 75 e0             	push   -0x20(%ebp)
41628b:	56                   	push   %esi
41628c:	53                   	push   %ebx
41628d:	ff 75 dc             	push   -0x24(%ebp)
416290:	6a 01                	push   $0x1
416292:	ff 75 24             	push   0x24(%ebp)
416295:	ff 15 2c b1 41 00    	call   *0x41b12c
41629b:	85 c0                	test   %eax,%eax
41629d:	74 1d                	je     0x4162bc
41629f:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4162a2:	57                   	push   %edi
4162a3:	57                   	push   %edi
4162a4:	57                   	push   %edi
4162a5:	ff 75 e0             	push   -0x20(%ebp)
4162a8:	56                   	push   %esi
4162a9:	ff 75 d8             	push   -0x28(%ebp)
4162ac:	53                   	push   %ebx
4162ad:	ff 75 10             	push   0x10(%ebp)
4162b0:	ff 75 d4             	push   -0x2c(%ebp)
4162b3:	e8 08 5b ff ff       	call   0x40bdc0
4162b8:	8b f8                	mov    %eax,%edi
4162ba:	eb 03                	jmp    0x4162bf
4162bc:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4162bf:	56                   	push   %esi
4162c0:	e8 90 aa ff ff       	call   0x410d55
4162c5:	59                   	pop    %ecx
4162c6:	eb 03                	jmp    0x4162cb
4162c8:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4162cb:	53                   	push   %ebx
4162cc:	e8 84 aa ff ff       	call   0x410d55
4162d1:	59                   	pop    %ecx
4162d2:	8b c7                	mov    %edi,%eax
4162d4:	8d 65 c8             	lea    -0x38(%ebp),%esp
4162d7:	5f                   	pop    %edi
4162d8:	5e                   	pop    %esi
4162d9:	5b                   	pop    %ebx
4162da:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4162dd:	33 cd                	xor    %ebp,%ecx
4162df:	e8 72 cc fe ff       	call   0x402f56
4162e4:	8b e5                	mov    %ebp,%esp
4162e6:	5d                   	pop    %ebp
4162e7:	c3                   	ret
4162e8:	8b ff                	mov    %edi,%edi
4162ea:	55                   	push   %ebp
4162eb:	8b ec                	mov    %esp,%ebp
4162ed:	83 ec 10             	sub    $0x10,%esp
4162f0:	ff 75 08             	push   0x8(%ebp)
4162f3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4162f6:	e8 b6 f3 fe ff       	call   0x4056b1
4162fb:	ff 75 24             	push   0x24(%ebp)
4162fe:	8d 45 f4             	lea    -0xc(%ebp),%eax
416301:	ff 75 20             	push   0x20(%ebp)
416304:	ff 75 1c             	push   0x1c(%ebp)
416307:	ff 75 18             	push   0x18(%ebp)
41630a:	ff 75 14             	push   0x14(%ebp)
41630d:	ff 75 10             	push   0x10(%ebp)
416310:	ff 75 0c             	push   0xc(%ebp)
416313:	50                   	push   %eax
416314:	e8 27 fd ff ff       	call   0x416040
416319:	83 c4 20             	add    $0x20,%esp
41631c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
416320:	74 0a                	je     0x41632c
416322:	8b 4d f0             	mov    -0x10(%ebp),%ecx
416325:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
41632c:	8b e5                	mov    %ebp,%esp
41632e:	5d                   	pop    %ebp
41632f:	c3                   	ret
416330:	8b ff                	mov    %edi,%edi
416332:	55                   	push   %ebp
416333:	8b ec                	mov    %esp,%ebp
416335:	8b 55 08             	mov    0x8(%ebp),%edx
416338:	33 c9                	xor    %ecx,%ecx
41633a:	f7 c2 80 7e 00 00    	test   $0x7e80,%edx
416340:	74 67                	je     0x4163a9
416342:	84 d2                	test   %dl,%dl
416344:	79 03                	jns    0x416349
416346:	6a 10                	push   $0x10
416348:	59                   	pop    %ecx
416349:	57                   	push   %edi
41634a:	bf 00 02 00 00       	mov    $0x200,%edi
41634f:	85 d7                	test   %edx,%edi
416351:	74 03                	je     0x416356
416353:	83 c9 08             	or     $0x8,%ecx
416356:	f7 c2 00 04 00 00    	test   $0x400,%edx
41635c:	74 03                	je     0x416361
41635e:	83 c9 04             	or     $0x4,%ecx
416361:	f7 c2 00 08 00 00    	test   $0x800,%edx
416367:	74 03                	je     0x41636c
416369:	83 c9 02             	or     $0x2,%ecx
41636c:	f7 c2 00 10 00 00    	test   $0x1000,%edx
416372:	74 03                	je     0x416377
416374:	83 c9 01             	or     $0x1,%ecx
416377:	56                   	push   %esi
416378:	be 00 60 00 00       	mov    $0x6000,%esi
41637d:	8b c2                	mov    %edx,%eax
41637f:	23 c6                	and    %esi,%eax
416381:	3b c6                	cmp    %esi,%eax
416383:	5e                   	pop    %esi
416384:	75 08                	jne    0x41638e
416386:	81 c9 00 03 00 00    	or     $0x300,%ecx
41638c:	eb 1a                	jmp    0x4163a8
41638e:	f7 c2 00 40 00 00    	test   $0x4000,%edx
416394:	74 08                	je     0x41639e
416396:	81 c9 00 01 00 00    	or     $0x100,%ecx
41639c:	eb 0a                	jmp    0x4163a8
41639e:	f7 c2 00 20 00 00    	test   $0x2000,%edx
4163a4:	74 02                	je     0x4163a8
4163a6:	0b cf                	or     %edi,%ecx
4163a8:	5f                   	pop    %edi
4163a9:	8b c1                	mov    %ecx,%eax
4163ab:	5d                   	pop    %ebp
4163ac:	c3                   	ret
4163ad:	8b ff                	mov    %edi,%edi
4163af:	55                   	push   %ebp
4163b0:	8b ec                	mov    %esp,%ebp
4163b2:	8b 55 08             	mov    0x8(%ebp),%edx
4163b5:	33 c9                	xor    %ecx,%ecx
4163b7:	f7 c2 3d 0c 00 00    	test   $0xc3d,%edx
4163bd:	74 5d                	je     0x41641c
4163bf:	f6 c2 01             	test   $0x1,%dl
4163c2:	74 03                	je     0x4163c7
4163c4:	6a 10                	push   $0x10
4163c6:	59                   	pop    %ecx
4163c7:	f6 c2 04             	test   $0x4,%dl
4163ca:	74 03                	je     0x4163cf
4163cc:	83 c9 08             	or     $0x8,%ecx
4163cf:	f6 c2 08             	test   $0x8,%dl
4163d2:	74 03                	je     0x4163d7
4163d4:	83 c9 04             	or     $0x4,%ecx
4163d7:	f6 c2 10             	test   $0x10,%dl
4163da:	74 03                	je     0x4163df
4163dc:	83 c9 02             	or     $0x2,%ecx
4163df:	f6 c2 20             	test   $0x20,%dl
4163e2:	74 03                	je     0x4163e7
4163e4:	83 c9 01             	or     $0x1,%ecx
4163e7:	56                   	push   %esi
4163e8:	be 00 0c 00 00       	mov    $0xc00,%esi
4163ed:	8b c2                	mov    %edx,%eax
4163ef:	23 c6                	and    %esi,%eax
4163f1:	3b c6                	cmp    %esi,%eax
4163f3:	5e                   	pop    %esi
4163f4:	75 08                	jne    0x4163fe
4163f6:	81 c9 00 03 00 00    	or     $0x300,%ecx
4163fc:	eb 1e                	jmp    0x41641c
4163fe:	f7 c2 00 08 00 00    	test   $0x800,%edx
416404:	74 08                	je     0x41640e
416406:	81 c9 00 01 00 00    	or     $0x100,%ecx
41640c:	eb 0e                	jmp    0x41641c
41640e:	f7 c2 00 04 00 00    	test   $0x400,%edx
416414:	74 06                	je     0x41641c
416416:	81 c9 00 02 00 00    	or     $0x200,%ecx
41641c:	8b c1                	mov    %ecx,%eax
41641e:	5d                   	pop    %ebp
41641f:	c3                   	ret
416420:	8b ff                	mov    %edi,%edi
416422:	55                   	push   %ebp
416423:	8b ec                	mov    %esp,%ebp
416425:	8b 55 08             	mov    0x8(%ebp),%edx
416428:	33 c9                	xor    %ecx,%ecx
41642a:	f7 c2 1f 03 00 00    	test   $0x31f,%edx
416430:	74 5b                	je     0x41648d
416432:	f6 c2 10             	test   $0x10,%dl
416435:	74 01                	je     0x416438
416437:	41                   	inc    %ecx
416438:	f6 c2 08             	test   $0x8,%dl
41643b:	74 03                	je     0x416440
41643d:	83 c9 04             	or     $0x4,%ecx
416440:	f6 c2 04             	test   $0x4,%dl
416443:	74 03                	je     0x416448
416445:	83 c9 08             	or     $0x8,%ecx
416448:	f6 c2 02             	test   $0x2,%dl
41644b:	74 03                	je     0x416450
41644d:	83 c9 10             	or     $0x10,%ecx
416450:	f6 c2 01             	test   $0x1,%dl
416453:	74 03                	je     0x416458
416455:	83 c9 20             	or     $0x20,%ecx
416458:	56                   	push   %esi
416459:	be 00 03 00 00       	mov    $0x300,%esi
41645e:	8b c2                	mov    %edx,%eax
416460:	23 c6                	and    %esi,%eax
416462:	3b c6                	cmp    %esi,%eax
416464:	5e                   	pop    %esi
416465:	75 08                	jne    0x41646f
416467:	81 c9 00 0c 00 00    	or     $0xc00,%ecx
41646d:	eb 1e                	jmp    0x41648d
41646f:	f7 c2 00 02 00 00    	test   $0x200,%edx