4080e7:	6a 09                	push   $0x9
4080e9:	e8 8e d6 ff ff       	call   0x40577c
4080ee:	59                   	pop    %ecx
4080ef:	57                   	push   %edi
4080f0:	ff 36                	push   (%esi)
4080f2:	e8 f9 20 00 00       	call   0x40a1f0
4080f7:	59                   	pop    %ecx
4080f8:	83 c6 04             	add    $0x4,%esi
4080fb:	59                   	pop    %ecx
4080fc:	03 fd                	add    %ebp,%edi
4080fe:	38 1f                	cmp    %bl,(%edi)
408100:	75 c9                	jne    0x4080cb
408102:	5d                   	pop    %ebp
408103:	ff 35 e4 17 41 00    	push   0x4117e4
408109:	e8 c9 ed ff ff       	call   0x406ed7
40810e:	59                   	pop    %ecx
40810f:	89 1d e4 17 41 00    	mov    %ebx,0x4117e4
408115:	89 1e                	mov    %ebx,(%esi)
408117:	5f                   	pop    %edi
408118:	5e                   	pop    %esi
408119:	c7 05 c4 1e 41 00 01 	movl   $0x1,0x411ec4
408120:	00 00 00
408123:	5b                   	pop    %ebx
408124:	c3                   	ret
408125:	55                   	push   %ebp
408126:	8b ec                	mov    %esp,%ebp
408128:	51                   	push   %ecx
408129:	51                   	push   %ecx
40812a:	53                   	push   %ebx
40812b:	33 db                	xor    %ebx,%ebx
40812d:	39 1d c8 1e 41 00    	cmp    %ebx,0x411ec8
408133:	56                   	push   %esi
408134:	57                   	push   %edi
408135:	75 05                	jne    0x40813c
408137:	e8 9c 35 00 00       	call   0x40b6d8
40813c:	be d0 18 41 00       	mov    $0x4118d0,%esi
408141:	68 04 01 00 00       	push   $0x104
408146:	56                   	push   %esi
408147:	53                   	push   %ebx
408148:	ff 15 0c d1 40 00    	call   *0x40d10c
40814e:	a1 04 2f 41 00       	mov    0x412f04,%eax
408153:	89 35 b4 18 41 00    	mov    %esi,0x4118b4
408159:	8b fe                	mov    %esi,%edi
40815b:	38 18                	cmp    %bl,(%eax)
40815d:	74 02                	je     0x408161
40815f:	8b f8                	mov    %eax,%edi
408161:	8d 45 f8             	lea    -0x8(%ebp),%eax
408164:	50                   	push   %eax
408165:	8d 45 fc             	lea    -0x4(%ebp),%eax
408168:	50                   	push   %eax
408169:	53                   	push   %ebx
40816a:	53                   	push   %ebx
40816b:	57                   	push   %edi
40816c:	e8 4d 00 00 00       	call   0x4081be
408171:	8b 45 f8             	mov    -0x8(%ebp),%eax
408174:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408177:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40817a:	50                   	push   %eax
40817b:	e8 0d f2 ff ff       	call   0x40738d
408180:	8b f0                	mov    %eax,%esi
408182:	83 c4 18             	add    $0x18,%esp
408185:	3b f3                	cmp    %ebx,%esi
408187:	75 08                	jne    0x408191
408189:	6a 08                	push   $0x8
40818b:	e8 ec d5 ff ff       	call   0x40577c
408190:	59                   	pop    %ecx
408191:	8d 45 f8             	lea    -0x8(%ebp),%eax
408194:	50                   	push   %eax
408195:	8d 45 fc             	lea    -0x4(%ebp),%eax
408198:	50                   	push   %eax
408199:	8b 45 fc             	mov    -0x4(%ebp),%eax
40819c:	8d 04 86             	lea    (%esi,%eax,4),%eax
40819f:	50                   	push   %eax
4081a0:	56                   	push   %esi
4081a1:	57                   	push   %edi
4081a2:	e8 17 00 00 00       	call   0x4081be
4081a7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4081aa:	83 c4 14             	add    $0x14,%esp
4081ad:	48                   	dec    %eax
4081ae:	89 35 9c 18 41 00    	mov    %esi,0x41189c
4081b4:	5f                   	pop    %edi
4081b5:	5e                   	pop    %esi
4081b6:	a3 98 18 41 00       	mov    %eax,0x411898
4081bb:	5b                   	pop    %ebx
4081bc:	c9                   	leave
4081bd:	c3                   	ret
4081be:	55                   	push   %ebp
4081bf:	8b ec                	mov    %esp,%ebp
4081c1:	8b 4d 18             	mov    0x18(%ebp),%ecx
4081c4:	8b 45 14             	mov    0x14(%ebp),%eax
4081c7:	53                   	push   %ebx
4081c8:	56                   	push   %esi
4081c9:	83 21 00             	andl   $0x0,(%ecx)
4081cc:	8b 75 10             	mov    0x10(%ebp),%esi
4081cf:	57                   	push   %edi
4081d0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4081d3:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4081d9:	8b 45 08             	mov    0x8(%ebp),%eax
4081dc:	85 ff                	test   %edi,%edi
4081de:	74 08                	je     0x4081e8
4081e0:	89 37                	mov    %esi,(%edi)
4081e2:	83 c7 04             	add    $0x4,%edi
4081e5:	89 7d 0c             	mov    %edi,0xc(%ebp)
4081e8:	80 38 22             	cmpb   $0x22,(%eax)
4081eb:	75 44                	jne    0x408231
4081ed:	8a 50 01             	mov    0x1(%eax),%dl
4081f0:	40                   	inc    %eax
4081f1:	80 fa 22             	cmp    $0x22,%dl
4081f4:	74 29                	je     0x40821f
4081f6:	84 d2                	test   %dl,%dl
4081f8:	74 25                	je     0x40821f
4081fa:	0f b6 d2             	movzbl %dl,%edx
4081fd:	f6 82 81 1c 41 00 04 	testb  $0x4,0x411c81(%edx)
408204:	74 0c                	je     0x408212
408206:	ff 01                	incl   (%ecx)
408208:	85 f6                	test   %esi,%esi
40820a:	74 06                	je     0x408212
40820c:	8a 10                	mov    (%eax),%dl
40820e:	88 16                	mov    %dl,(%esi)
408210:	46                   	inc    %esi
408211:	40                   	inc    %eax
408212:	ff 01                	incl   (%ecx)
408214:	85 f6                	test   %esi,%esi
408216:	74 d5                	je     0x4081ed
408218:	8a 10                	mov    (%eax),%dl
40821a:	88 16                	mov    %dl,(%esi)
40821c:	46                   	inc    %esi
40821d:	eb ce                	jmp    0x4081ed
40821f:	ff 01                	incl   (%ecx)
408221:	85 f6                	test   %esi,%esi
408223:	74 04                	je     0x408229
408225:	80 26 00             	andb   $0x0,(%esi)
408228:	46                   	inc    %esi
408229:	80 38 22             	cmpb   $0x22,(%eax)
40822c:	75 46                	jne    0x408274
40822e:	40                   	inc    %eax
40822f:	eb 43                	jmp    0x408274
408231:	ff 01                	incl   (%ecx)
408233:	85 f6                	test   %esi,%esi
408235:	74 05                	je     0x40823c
408237:	8a 10                	mov    (%eax),%dl
408239:	88 16                	mov    %dl,(%esi)
40823b:	46                   	inc    %esi
40823c:	8a 10                	mov    (%eax),%dl
40823e:	40                   	inc    %eax
40823f:	0f b6 da             	movzbl %dl,%ebx
408242:	f6 83 81 1c 41 00 04 	testb  $0x4,0x411c81(%ebx)
408249:	74 0c                	je     0x408257
40824b:	ff 01                	incl   (%ecx)
40824d:	85 f6                	test   %esi,%esi
40824f:	74 05                	je     0x408256
408251:	8a 18                	mov    (%eax),%bl
408253:	88 1e                	mov    %bl,(%esi)
408255:	46                   	inc    %esi
408256:	40                   	inc    %eax
408257:	80 fa 20             	cmp    $0x20,%dl
40825a:	74 09                	je     0x408265
40825c:	84 d2                	test   %dl,%dl
40825e:	74 09                	je     0x408269
408260:	80 fa 09             	cmp    $0x9,%dl
408263:	75 cc                	jne    0x408231
408265:	84 d2                	test   %dl,%dl
408267:	75 03                	jne    0x40826c
408269:	48                   	dec    %eax
40826a:	eb 08                	jmp    0x408274
40826c:	85 f6                	test   %esi,%esi
40826e:	74 04                	je     0x408274
408270:	80 66 ff 00          	andb   $0x0,-0x1(%esi)
408274:	83 65 18 00          	andl   $0x0,0x18(%ebp)
408278:	80 38 00             	cmpb   $0x0,(%eax)
40827b:	0f 84 e0 00 00 00    	je     0x408361
408281:	8a 10                	mov    (%eax),%dl
408283:	80 fa 20             	cmp    $0x20,%dl
408286:	74 05                	je     0x40828d
408288:	80 fa 09             	cmp    $0x9,%dl
40828b:	75 03                	jne    0x408290
40828d:	40                   	inc    %eax
40828e:	eb f1                	jmp    0x408281
408290:	80 38 00             	cmpb   $0x0,(%eax)
408293:	0f 84 c8 00 00 00    	je     0x408361
408299:	85 ff                	test   %edi,%edi
40829b:	74 08                	je     0x4082a5
40829d:	89 37                	mov    %esi,(%edi)
40829f:	83 c7 04             	add    $0x4,%edi
4082a2:	89 7d 0c             	mov    %edi,0xc(%ebp)
4082a5:	8b 55 14             	mov    0x14(%ebp),%edx
4082a8:	ff 02                	incl   (%edx)
4082aa:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
4082b1:	33 db                	xor    %ebx,%ebx
4082b3:	80 38 5c             	cmpb   $0x5c,(%eax)
4082b6:	75 04                	jne    0x4082bc
4082b8:	40                   	inc    %eax
4082b9:	43                   	inc    %ebx
4082ba:	eb f7                	jmp    0x4082b3
4082bc:	80 38 22             	cmpb   $0x22,(%eax)
4082bf:	75 2c                	jne    0x4082ed
4082c1:	f6 c3 01             	test   $0x1,%bl
4082c4:	75 25                	jne    0x4082eb
4082c6:	33 ff                	xor    %edi,%edi
4082c8:	39 7d 18             	cmp    %edi,0x18(%ebp)
4082cb:	74 0d                	je     0x4082da
4082cd:	80 78 01 22          	cmpb   $0x22,0x1(%eax)
4082d1:	8d 50 01             	lea    0x1(%eax),%edx
4082d4:	75 04                	jne    0x4082da
4082d6:	8b c2                	mov    %edx,%eax
4082d8:	eb 03                	jmp    0x4082dd
4082da:	89 7d 08             	mov    %edi,0x8(%ebp)
4082dd:	8b 7d 0c             	mov    0xc(%ebp),%edi
4082e0:	33 d2                	xor    %edx,%edx
4082e2:	39 55 18             	cmp    %edx,0x18(%ebp)
4082e5:	0f 94 c2             	sete   %dl
4082e8:	89 55 18             	mov    %edx,0x18(%ebp)
4082eb:	d1 eb                	shr    $1,%ebx
4082ed:	8b d3                	mov    %ebx,%edx
4082ef:	4b                   	dec    %ebx
4082f0:	85 d2                	test   %edx,%edx
4082f2:	74 0e                	je     0x408302
4082f4:	43                   	inc    %ebx
4082f5:	85 f6                	test   %esi,%esi
4082f7:	74 04                	je     0x4082fd
4082f9:	c6 06 5c             	movb   $0x5c,(%esi)
4082fc:	46                   	inc    %esi
4082fd:	ff 01                	incl   (%ecx)
4082ff:	4b                   	dec    %ebx
408300:	75 f3                	jne    0x4082f5
408302:	8a 10                	mov    (%eax),%dl
408304:	84 d2                	test   %dl,%dl
408306:	74 4a                	je     0x408352
408308:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40830c:	75 0a                	jne    0x408318
40830e:	80 fa 20             	cmp    $0x20,%dl
408311:	74 3f                	je     0x408352
408313:	80 fa 09             	cmp    $0x9,%dl
408316:	74 3a                	je     0x408352
408318:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40831c:	74 2e                	je     0x40834c
40831e:	85 f6                	test   %esi,%esi
408320:	74 19                	je     0x40833b
408322:	0f b6 da             	movzbl %dl,%ebx
408325:	f6 83 81 1c 41 00 04 	testb  $0x4,0x411c81(%ebx)
40832c:	74 06                	je     0x408334
40832e:	88 16                	mov    %dl,(%esi)
408330:	46                   	inc    %esi
408331:	40                   	inc    %eax
408332:	ff 01                	incl   (%ecx)
408334:	8a 10                	mov    (%eax),%dl
408336:	88 16                	mov    %dl,(%esi)
408338:	46                   	inc    %esi
408339:	eb 0f                	jmp    0x40834a
40833b:	0f b6 d2             	movzbl %dl,%edx
40833e:	f6 82 81 1c 41 00 04 	testb  $0x4,0x411c81(%edx)
408345:	74 03                	je     0x40834a
408347:	40                   	inc    %eax
408348:	ff 01                	incl   (%ecx)
40834a:	ff 01                	incl   (%ecx)
40834c:	40                   	inc    %eax
40834d:	e9 58 ff ff ff       	jmp    0x4082aa
408352:	85 f6                	test   %esi,%esi
408354:	74 04                	je     0x40835a
408356:	80 26 00             	andb   $0x0,(%esi)
408359:	46                   	inc    %esi
40835a:	ff 01                	incl   (%ecx)
40835c:	e9 17 ff ff ff       	jmp    0x408278
408361:	85 ff                	test   %edi,%edi
408363:	74 03                	je     0x408368
408365:	83 27 00             	andl   $0x0,(%edi)
408368:	8b 45 14             	mov    0x14(%ebp),%eax
40836b:	5f                   	pop    %edi
40836c:	5e                   	pop    %esi
40836d:	5b                   	pop    %ebx
40836e:	ff 00                	incl   (%eax)
408370:	5d                   	pop    %ebp
408371:	c3                   	ret
408372:	51                   	push   %ecx
408373:	51                   	push   %ecx
408374:	a1 d4 19 41 00       	mov    0x4119d4,%eax
408379:	53                   	push   %ebx
40837a:	55                   	push   %ebp
40837b:	8b 2d 20 d1 40 00    	mov    0x40d120,%ebp
408381:	56                   	push   %esi
408382:	57                   	push   %edi
408383:	33 db                	xor    %ebx,%ebx
408385:	33 f6                	xor    %esi,%esi
408387:	33 ff                	xor    %edi,%edi
408389:	3b c3                	cmp    %ebx,%eax
40838b:	75 33                	jne    0x4083c0
40838d:	ff d5                	call   *%ebp
40838f:	8b f0                	mov    %eax,%esi
408391:	3b f3                	cmp    %ebx,%esi
408393:	74 0c                	je     0x4083a1
408395:	c7 05 d4 19 41 00 01 	movl   $0x1,0x4119d4
40839c:	00 00 00
40839f:	eb 28                	jmp    0x4083c9
4083a1:	ff 15 1c d1 40 00    	call   *0x40d11c
4083a7:	8b f8                	mov    %eax,%edi
4083a9:	3b fb                	cmp    %ebx,%edi
4083ab:	0f 84 ea 00 00 00    	je     0x40849b
4083b1:	c7 05 d4 19 41 00 02 	movl   $0x2,0x4119d4
4083b8:	00 00 00
4083bb:	e9 8f 00 00 00       	jmp    0x40844f
4083c0:	83 f8 01             	cmp    $0x1,%eax
4083c3:	0f 85 81 00 00 00    	jne    0x40844a
4083c9:	3b f3                	cmp    %ebx,%esi
4083cb:	75 0c                	jne    0x4083d9
4083cd:	ff d5                	call   *%ebp
4083cf:	8b f0                	mov    %eax,%esi
4083d1:	3b f3                	cmp    %ebx,%esi
4083d3:	0f 84 c2 00 00 00    	je     0x40849b
4083d9:	66 39 1e             	cmp    %bx,(%esi)
4083dc:	8b c6                	mov    %esi,%eax
4083de:	74 0e                	je     0x4083ee
4083e0:	40                   	inc    %eax
4083e1:	40                   	inc    %eax
4083e2:	66 39 18             	cmp    %bx,(%eax)
4083e5:	75 f9                	jne    0x4083e0
4083e7:	40                   	inc    %eax
4083e8:	40                   	inc    %eax
4083e9:	66 39 18             	cmp    %bx,(%eax)
4083ec:	75 f2                	jne    0x4083e0
4083ee:	2b c6                	sub    %esi,%eax
4083f0:	8b 3d 18 d1 40 00    	mov    0x40d118,%edi
4083f6:	d1 f8                	sar    $1,%eax
4083f8:	53                   	push   %ebx
4083f9:	53                   	push   %ebx
4083fa:	40                   	inc    %eax
4083fb:	53                   	push   %ebx
4083fc:	53                   	push   %ebx
4083fd:	50                   	push   %eax
4083fe:	56                   	push   %esi
4083ff:	53                   	push   %ebx
408400:	53                   	push   %ebx
408401:	89 44 24 34          	mov    %eax,0x34(%esp)
408405:	ff d7                	call   *%edi
408407:	8b e8                	mov    %eax,%ebp
408409:	3b eb                	cmp    %ebx,%ebp
40840b:	74 32                	je     0x40843f
40840d:	55                   	push   %ebp
40840e:	e8 7a ef ff ff       	call   0x40738d
408413:	3b c3                	cmp    %ebx,%eax
408415:	59                   	pop    %ecx
408416:	89 44 24 10          	mov    %eax,0x10(%esp)
40841a:	74 23                	je     0x40843f
40841c:	53                   	push   %ebx
40841d:	53                   	push   %ebx
40841e:	55                   	push   %ebp
40841f:	50                   	push   %eax
408420:	ff 74 24 24          	push   0x24(%esp)
408424:	56                   	push   %esi
408425:	53                   	push   %ebx
408426:	53                   	push   %ebx