406233:	8b 55 0c             	mov    0xc(%ebp),%edx
406236:	85 d2                	test   %edx,%edx
406238:	74 08                	je     0x406242
40623a:	89 32                	mov    %esi,(%edx)
40623c:	83 c2 04             	add    $0x4,%edx
40623f:	89 55 0c             	mov    %edx,0xc(%ebp)
406242:	8b 45 14             	mov    0x14(%ebp),%eax
406245:	ff 00                	incl   (%eax)
406247:	33 db                	xor    %ebx,%ebx
406249:	43                   	inc    %ebx
40624a:	33 c0                	xor    %eax,%eax
40624c:	eb 02                	jmp    0x406250
40624e:	47                   	inc    %edi
40624f:	40                   	inc    %eax
406250:	8a 17                	mov    (%edi),%dl
406252:	80 fa 5c             	cmp    $0x5c,%dl
406255:	74 f7                	je     0x40624e
406257:	80 fa 22             	cmp    $0x22,%dl
40625a:	75 2e                	jne    0x40628a
40625c:	a8 01                	test   $0x1,%al
40625e:	75 1b                	jne    0x40627b
406260:	8a 55 ff             	mov    -0x1(%ebp),%dl
406263:	84 d2                	test   %dl,%dl
406265:	74 0c                	je     0x406273
406267:	80 7f 01 22          	cmpb   $0x22,0x1(%edi)
40626b:	75 03                	jne    0x406270
40626d:	47                   	inc    %edi
40626e:	eb 0b                	jmp    0x40627b
406270:	8a 55 ff             	mov    -0x1(%ebp),%dl
406273:	33 db                	xor    %ebx,%ebx
406275:	84 d2                	test   %dl,%dl
406277:	0f 94 45 ff          	sete   -0x1(%ebp)
40627b:	d1 e8                	shr    $1,%eax
40627d:	eb 0b                	jmp    0x40628a
40627f:	48                   	dec    %eax
406280:	85 f6                	test   %esi,%esi
406282:	74 04                	je     0x406288
406284:	c6 06 5c             	movb   $0x5c,(%esi)
406287:	46                   	inc    %esi
406288:	ff 01                	incl   (%ecx)
40628a:	85 c0                	test   %eax,%eax
40628c:	75 f1                	jne    0x40627f
40628e:	8a 07                	mov    (%edi),%al
406290:	84 c0                	test   %al,%al
406292:	74 3e                	je     0x4062d2
406294:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
406298:	75 08                	jne    0x4062a2
40629a:	3c 20                	cmp    $0x20,%al
40629c:	74 34                	je     0x4062d2
40629e:	3c 09                	cmp    $0x9,%al
4062a0:	74 30                	je     0x4062d2
4062a2:	85 db                	test   %ebx,%ebx
4062a4:	74 26                	je     0x4062cc
4062a6:	85 f6                	test   %esi,%esi
4062a8:	74 03                	je     0x4062ad
4062aa:	88 06                	mov    %al,(%esi)
4062ac:	46                   	inc    %esi
4062ad:	0f be 07             	movsbl (%edi),%eax
4062b0:	50                   	push   %eax
4062b1:	e8 05 2a 00 00       	call   0x408cbb
4062b6:	59                   	pop    %ecx
4062b7:	8b 4d 18             	mov    0x18(%ebp),%ecx
4062ba:	85 c0                	test   %eax,%eax
4062bc:	74 0c                	je     0x4062ca
4062be:	47                   	inc    %edi
4062bf:	ff 01                	incl   (%ecx)
4062c1:	85 f6                	test   %esi,%esi
4062c3:	74 05                	je     0x4062ca
4062c5:	8a 07                	mov    (%edi),%al
4062c7:	88 06                	mov    %al,(%esi)
4062c9:	46                   	inc    %esi
4062ca:	ff 01                	incl   (%ecx)
4062cc:	47                   	inc    %edi
4062cd:	e9 75 ff ff ff       	jmp    0x406247
4062d2:	85 f6                	test   %esi,%esi
4062d4:	74 04                	je     0x4062da
4062d6:	c6 06 00             	movb   $0x0,(%esi)
4062d9:	46                   	inc    %esi
4062da:	ff 01                	incl   (%ecx)
4062dc:	e9 33 ff ff ff       	jmp    0x406214
4062e1:	8b 55 0c             	mov    0xc(%ebp),%edx
4062e4:	5f                   	pop    %edi
4062e5:	5e                   	pop    %esi
4062e6:	5b                   	pop    %ebx
4062e7:	85 d2                	test   %edx,%edx
4062e9:	74 03                	je     0x4062ee
4062eb:	83 22 00             	andl   $0x0,(%edx)
4062ee:	8b 45 14             	mov    0x14(%ebp),%eax
4062f1:	ff 00                	incl   (%eax)
4062f3:	c9                   	leave
4062f4:	c3                   	ret
4062f5:	8b ff                	mov    %edi,%edi
4062f7:	55                   	push   %ebp
4062f8:	8b ec                	mov    %esp,%ebp
4062fa:	56                   	push   %esi
4062fb:	8b 75 08             	mov    0x8(%ebp),%esi
4062fe:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
406304:	73 39                	jae    0x40633f
406306:	83 c8 ff             	or     $0xffffffff,%eax
406309:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40630c:	33 d2                	xor    %edx,%edx
40630e:	f7 75 10             	divl   0x10(%ebp)
406311:	3b c8                	cmp    %eax,%ecx
406313:	73 2a                	jae    0x40633f
406315:	0f af 4d 10          	imul   0x10(%ebp),%ecx
406319:	c1 e6 02             	shl    $0x2,%esi
40631c:	8b c6                	mov    %esi,%eax
40631e:	f7 d0                	not    %eax
406320:	3b c1                	cmp    %ecx,%eax
406322:	76 1b                	jbe    0x40633f
406324:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
406327:	6a 01                	push   $0x1
406329:	50                   	push   %eax
40632a:	e8 34 16 00 00       	call   0x407963
40632f:	6a 00                	push   $0x0
406331:	8b f0                	mov    %eax,%esi
406333:	e8 41 15 00 00       	call   0x407879
406338:	83 c4 0c             	add    $0xc,%esp
40633b:	8b c6                	mov    %esi,%eax
40633d:	eb 02                	jmp    0x406341
40633f:	33 c0                	xor    %eax,%eax
406341:	5e                   	pop    %esi
406342:	5d                   	pop    %ebp
406343:	c3                   	ret
406344:	8b ff                	mov    %edi,%edi
406346:	55                   	push   %ebp
406347:	8b ec                	mov    %esp,%ebp
406349:	5d                   	pop    %ebp
40634a:	e9 f5 fc ff ff       	jmp    0x406044
40634f:	83 3d a8 6e 41 00 00 	cmpl   $0x0,0x416ea8
406356:	74 03                	je     0x40635b
406358:	33 c0                	xor    %eax,%eax
40635a:	c3                   	ret
40635b:	56                   	push   %esi
40635c:	e8 29 26 00 00       	call   0x40898a
406361:	e8 7b 2b 00 00       	call   0x408ee1
406366:	8b f0                	mov    %eax,%esi
406368:	85 f6                	test   %esi,%esi
40636a:	75 0c                	jne    0x406378
40636c:	50                   	push   %eax
40636d:	e8 07 15 00 00       	call   0x407879
406372:	59                   	pop    %ecx
406373:	83 c8 ff             	or     $0xffffffff,%eax
406376:	5e                   	pop    %esi
406377:	c3                   	ret
406378:	57                   	push   %edi
406379:	56                   	push   %esi
40637a:	e8 2a 00 00 00       	call   0x4063a9
40637f:	59                   	pop    %ecx
406380:	85 c0                	test   %eax,%eax
406382:	75 05                	jne    0x406389
406384:	83 cf ff             	or     $0xffffffff,%edi
406387:	eb 0c                	jmp    0x406395
406389:	a3 b4 6e 41 00       	mov    %eax,0x416eb4
40638e:	33 ff                	xor    %edi,%edi
406390:	a3 a8 6e 41 00       	mov    %eax,0x416ea8
406395:	6a 00                	push   $0x0
406397:	e8 dd 14 00 00       	call   0x407879
40639c:	56                   	push   %esi
40639d:	e8 d7 14 00 00       	call   0x407879
4063a2:	59                   	pop    %ecx
4063a3:	59                   	pop    %ecx
4063a4:	8b c7                	mov    %edi,%eax
4063a6:	5f                   	pop    %edi
4063a7:	5e                   	pop    %esi
4063a8:	c3                   	ret
4063a9:	8b ff                	mov    %edi,%edi
4063ab:	55                   	push   %ebp
4063ac:	8b ec                	mov    %esp,%ebp
4063ae:	51                   	push   %ecx
4063af:	51                   	push   %ecx
4063b0:	53                   	push   %ebx
4063b1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4063b4:	33 d2                	xor    %edx,%edx
4063b6:	56                   	push   %esi
4063b7:	57                   	push   %edi
4063b8:	8b f3                	mov    %ebx,%esi
4063ba:	8a 03                	mov    (%ebx),%al
4063bc:	eb 18                	jmp    0x4063d6
4063be:	3c 3d                	cmp    $0x3d,%al
4063c0:	74 01                	je     0x4063c3
4063c2:	42                   	inc    %edx
4063c3:	8b ce                	mov    %esi,%ecx
4063c5:	8d 79 01             	lea    0x1(%ecx),%edi
4063c8:	8a 01                	mov    (%ecx),%al
4063ca:	41                   	inc    %ecx
4063cb:	84 c0                	test   %al,%al
4063cd:	75 f9                	jne    0x4063c8
4063cf:	2b cf                	sub    %edi,%ecx
4063d1:	46                   	inc    %esi
4063d2:	03 f1                	add    %ecx,%esi
4063d4:	8a 06                	mov    (%esi),%al
4063d6:	84 c0                	test   %al,%al
4063d8:	75 e4                	jne    0x4063be
4063da:	8d 42 01             	lea    0x1(%edx),%eax
4063dd:	6a 04                	push   $0x4
4063df:	50                   	push   %eax
4063e0:	e8 7e 15 00 00       	call   0x407963
4063e5:	8b f0                	mov    %eax,%esi
4063e7:	59                   	pop    %ecx
4063e8:	59                   	pop    %ecx
4063e9:	85 f6                	test   %esi,%esi
4063eb:	75 0a                	jne    0x4063f7
4063ed:	50                   	push   %eax
4063ee:	e8 86 14 00 00       	call   0x407879
4063f3:	33 c0                	xor    %eax,%eax
4063f5:	eb 66                	jmp    0x40645d
4063f7:	89 75 fc             	mov    %esi,-0x4(%ebp)
4063fa:	eb 52                	jmp    0x40644e
4063fc:	8b cb                	mov    %ebx,%ecx
4063fe:	8d 79 01             	lea    0x1(%ecx),%edi
406401:	8a 01                	mov    (%ecx),%al
406403:	41                   	inc    %ecx
406404:	84 c0                	test   %al,%al
406406:	75 f9                	jne    0x406401
406408:	2b cf                	sub    %edi,%ecx
40640a:	8d 41 01             	lea    0x1(%ecx),%eax
40640d:	89 45 f8             	mov    %eax,-0x8(%ebp)
406410:	80 fa 3d             	cmp    $0x3d,%dl
406413:	74 37                	je     0x40644c
406415:	6a 01                	push   $0x1
406417:	50                   	push   %eax
406418:	e8 46 15 00 00       	call   0x407963
40641d:	8b f8                	mov    %eax,%edi
40641f:	59                   	pop    %ecx
406420:	59                   	pop    %ecx
406421:	85 ff                	test   %edi,%edi
406423:	74 3e                	je     0x406463
406425:	53                   	push   %ebx
406426:	ff 75 f8             	push   -0x8(%ebp)
406429:	57                   	push   %edi
40642a:	e8 b3 0b 00 00       	call   0x406fe2
40642f:	83 c4 0c             	add    $0xc,%esp
406432:	85 c0                	test   %eax,%eax
406434:	75 48                	jne    0x40647e
406436:	8b 45 fc             	mov    -0x4(%ebp),%eax
406439:	6a 00                	push   $0x0
40643b:	89 38                	mov    %edi,(%eax)
40643d:	83 c0 04             	add    $0x4,%eax
406440:	89 45 fc             	mov    %eax,-0x4(%ebp)
406443:	e8 31 14 00 00       	call   0x407879
406448:	8b 45 f8             	mov    -0x8(%ebp),%eax
40644b:	59                   	pop    %ecx
40644c:	03 d8                	add    %eax,%ebx
40644e:	8a 13                	mov    (%ebx),%dl
406450:	84 d2                	test   %dl,%dl
406452:	75 a8                	jne    0x4063fc
406454:	6a 00                	push   $0x0
406456:	e8 1e 14 00 00       	call   0x407879
40645b:	8b c6                	mov    %esi,%eax
40645d:	59                   	pop    %ecx
40645e:	5f                   	pop    %edi
40645f:	5e                   	pop    %esi
406460:	5b                   	pop    %ebx
406461:	c9                   	leave
406462:	c3                   	ret
406463:	56                   	push   %esi
406464:	e8 22 00 00 00       	call   0x40648b
406469:	6a 00                	push   $0x0
40646b:	e8 09 14 00 00       	call   0x407879
406470:	6a 00                	push   $0x0
406472:	e8 02 14 00 00       	call   0x407879
406477:	83 c4 0c             	add    $0xc,%esp
40647a:	33 c0                	xor    %eax,%eax
40647c:	eb e0                	jmp    0x40645e
40647e:	33 c0                	xor    %eax,%eax
406480:	50                   	push   %eax
406481:	50                   	push   %eax
406482:	50                   	push   %eax
406483:	50                   	push   %eax
406484:	50                   	push   %eax
406485:	e8 bf f8 ff ff       	call   0x405d49
40648a:	cc                   	int3
40648b:	8b ff                	mov    %edi,%edi
40648d:	55                   	push   %ebp
40648e:	8b ec                	mov    %esp,%ebp
406490:	56                   	push   %esi
406491:	8b 75 08             	mov    0x8(%ebp),%esi
406494:	85 f6                	test   %esi,%esi
406496:	74 1f                	je     0x4064b7
406498:	8b 06                	mov    (%esi),%eax
40649a:	57                   	push   %edi
40649b:	8b fe                	mov    %esi,%edi
40649d:	eb 0c                	jmp    0x4064ab
40649f:	50                   	push   %eax
4064a0:	e8 d4 13 00 00       	call   0x407879
4064a5:	8d 7f 04             	lea    0x4(%edi),%edi
4064a8:	8b 07                	mov    (%edi),%eax
4064aa:	59                   	pop    %ecx
4064ab:	85 c0                	test   %eax,%eax
4064ad:	75 f0                	jne    0x40649f
4064af:	56                   	push   %esi
4064b0:	e8 c4 13 00 00       	call   0x407879
4064b5:	59                   	pop    %ecx
4064b6:	5f                   	pop    %edi
4064b7:	5e                   	pop    %esi
4064b8:	5d                   	pop    %ebp
4064b9:	c3                   	ret
4064ba:	8b ff                	mov    %edi,%edi
4064bc:	55                   	push   %ebp
4064bd:	8b ec                	mov    %esp,%ebp
4064bf:	8b 45 08             	mov    0x8(%ebp),%eax
4064c2:	8b 00                	mov    (%eax),%eax
4064c4:	3b 05 b4 6e 41 00    	cmp    0x416eb4,%eax
4064ca:	74 07                	je     0x4064d3
4064cc:	50                   	push   %eax
4064cd:	e8 b9 ff ff ff       	call   0x40648b
4064d2:	59                   	pop    %ecx
4064d3:	5d                   	pop    %ebp
4064d4:	c3                   	ret
4064d5:	8b ff                	mov    %edi,%edi
4064d7:	55                   	push   %ebp
4064d8:	8b ec                	mov    %esp,%ebp
4064da:	8b 45 08             	mov    0x8(%ebp),%eax
4064dd:	8b 00                	mov    (%eax),%eax
4064df:	3b 05 b0 6e 41 00    	cmp    0x416eb0,%eax
4064e5:	74 07                	je     0x4064ee
4064e7:	50                   	push   %eax
4064e8:	e8 9e ff ff ff       	call   0x40648b
4064ed:	59                   	pop    %ecx
4064ee:	5d                   	pop    %ebp
4064ef:	c3                   	ret
4064f0:	6a 00                	push   $0x0
4064f2:	b8 f9 ee 40 00       	mov    $0x40eef9,%eax
4064f7:	e8 e9 87 00 00       	call   0x40ece5
4064fc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406500:	68 a8 6e 41 00       	push   $0x416ea8
406505:	e8 b0 ff ff ff       	call   0x4064ba
40650a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
406511:	c7 04 24 ac 6e 41 00 	movl   $0x416eac,(%esp)
406518:	e8 b8 ff ff ff       	call   0x4064d5
40651d:	ff 35 b4 6e 41 00    	push   0x416eb4
406523:	e8 63 ff ff ff       	call   0x40648b
406528:	ff 35 b0 6e 41 00    	push   0x416eb0
40652e:	e8 58 ff ff ff       	call   0x40648b
406533:	83 c4 0c             	add    $0xc,%esp
406536:	e8 96 87 00 00       	call   0x40ecd1
40653b:	c3                   	ret
40653c:	cc                   	int3
40653d:	cc                   	int3
40653e:	cc                   	int3
40653f:	cc                   	int3
406540:	cc                   	int3
406541:	e9 09 fe ff ff       	jmp    0x40634f
406546:	8b ff                	mov    %edi,%edi
406548:	53                   	push   %ebx
406549:	56                   	push   %esi
40654a:	e8 3b 24 00 00       	call   0x40898a
40654f:	8b 35 68 70 41 00    	mov    0x417068,%esi
406555:	85 f6                	test   %esi,%esi