406194:	ff 75 24             	push   0x24(%ebp)
406197:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40619d:	ff 75 20             	push   0x20(%ebp)
4061a0:	8b cb                	mov    %ebx,%ecx
4061a2:	ff 75 1c             	push   0x1c(%ebp)
4061a5:	ff 75 18             	push   0x18(%ebp)
4061a8:	ff 75 14             	push   0x14(%ebp)
4061ab:	50                   	push   %eax
4061ac:	ff 75 10             	push   0x10(%ebp)
4061af:	ff 75 08             	push   0x8(%ebp)
4061b2:	e8 15 fc ff ff       	call   0x405dcc
4061b7:	eb 17                	jmp    0x4061d0
4061b9:	ff 75 14             	push   0x14(%ebp)
4061bc:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
4061c2:	50                   	push   %eax
4061c3:	ff 75 10             	push   0x10(%ebp)
4061c6:	8b cb                	mov    %ebx,%ecx
4061c8:	ff 75 08             	push   0x8(%ebp)
4061cb:	e8 11 f7 ff ff       	call   0x4058e1
4061d0:	56                   	push   %esi
4061d1:	8d 85 80 fe ff ff    	lea    -0x180(%ebp),%eax
4061d7:	50                   	push   %eax
4061d8:	e8 eb 6b 00 00       	call   0x40cdc8
4061dd:	68 00 01 00 00       	push   $0x100
4061e2:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
4061e8:	50                   	push   %eax
4061e9:	e8 da 6b 00 00       	call   0x40cdc8
4061ee:	b0 01                	mov    $0x1,%al
4061f0:	5e                   	pop    %esi
4061f1:	eb 02                	jmp    0x4061f5
4061f3:	32 c0                	xor    %al,%al
4061f5:	5f                   	pop    %edi
4061f6:	5b                   	pop    %ebx
4061f7:	c9                   	leave
4061f8:	c2 20 00             	ret    $0x20
4061fb:	0f b6 44 24 0c       	movzbl 0xc(%esp),%eax
406200:	50                   	push   %eax
406201:	ff 74 24 0c          	push   0xc(%esp)
406205:	ff 74 24 0c          	push   0xc(%esp)
406209:	ff 15 88 a2 42 00    	call   *0x42a288
40620f:	50                   	push   %eax
406210:	ff 15 84 a2 42 00    	call   *0x42a284
406216:	c2 0c 00             	ret    $0xc
406219:	0f b6 44 24 0c       	movzbl 0xc(%esp),%eax
40621e:	f7 d8                	neg    %eax
406220:	1b c0                	sbb    %eax,%eax
406222:	83 e0 09             	and    $0x9,%eax
406225:	50                   	push   %eax
406226:	ff 74 24 0c          	push   0xc(%esp)
40622a:	ff 74 24 0c          	push   0xc(%esp)
40622e:	ff 15 88 a2 42 00    	call   *0x42a288
406234:	50                   	push   %eax
406235:	ff 15 8c a2 42 00    	call   *0x42a28c
40623b:	c2 0c 00             	ret    $0xc
40623e:	55                   	push   %ebp
40623f:	8b ec                	mov    %esp,%ebp
406241:	83 7d 0c 30          	cmpl   $0x30,0xc(%ebp)
406245:	74 24                	je     0x40626b
406247:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40624e:	75 28                	jne    0x406278
406250:	8a 45 20             	mov    0x20(%ebp),%al
406253:	24 01                	and    $0x1,%al
406255:	0f b6 c0             	movzbl %al,%eax
406258:	50                   	push   %eax
406259:	ff 75 18             	push   0x18(%ebp)
40625c:	b9 84 2a 43 00       	mov    $0x432a84,%ecx
406261:	ff 75 08             	push   0x8(%ebp)
406264:	e8 20 5d 00 00       	call   0x40bf89
406269:	eb 0d                	jmp    0x406278
40626b:	ff 75 08             	push   0x8(%ebp)
40626e:	b9 84 2a 43 00       	mov    $0x432a84,%ecx
406273:	e8 c8 57 00 00       	call   0x40ba40
406278:	32 c0                	xor    %al,%al
40627a:	5d                   	pop    %ebp
40627b:	c2 1c 00             	ret    $0x1c
40627e:	8b c1                	mov    %ecx,%eax
406280:	33 c9                	xor    %ecx,%ecx
406282:	88 48 04             	mov    %cl,0x4(%eax)
406285:	89 48 08             	mov    %ecx,0x8(%eax)
406288:	89 48 0c             	mov    %ecx,0xc(%eax)
40628b:	89 48 10             	mov    %ecx,0x10(%eax)
40628e:	c3                   	ret
40628f:	55                   	push   %ebp
406290:	8b ec                	mov    %esp,%ebp
406292:	83 ec 0c             	sub    $0xc,%esp
406295:	53                   	push   %ebx
406296:	56                   	push   %esi
406297:	8b 75 0c             	mov    0xc(%ebp),%esi
40629a:	33 d2                	xor    %edx,%edx
40629c:	8b d9                	mov    %ecx,%ebx
40629e:	8a 0e                	mov    (%esi),%cl
4062a0:	42                   	inc    %edx
4062a1:	33 c0                	xor    %eax,%eax
4062a3:	57                   	push   %edi
4062a4:	8b 7d 14             	mov    0x14(%ebp),%edi
4062a7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4062aa:	88 4d 0f             	mov    %cl,0xf(%ebp)
4062ad:	39 55 10             	cmp    %edx,0x10(%ebp)
4062b0:	0f 86 ad 00 00 00    	jbe    0x406363
4062b6:	3b 45 18             	cmp    0x18(%ebp),%eax
4062b9:	0f 83 a9 00 00 00    	jae    0x406368
4062bf:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4062c3:	75 0e                	jne    0x4062d3
4062c5:	8a 0c 32             	mov    (%edx,%esi,1),%cl
4062c8:	88 4b 04             	mov    %cl,0x4(%ebx)
4062cb:	42                   	inc    %edx
4062cc:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
4062d3:	0f b6 4b 04          	movzbl 0x4(%ebx),%ecx
4062d7:	c1 e9 06             	shr    $0x6,%ecx
4062da:	83 e9 00             	sub    $0x0,%ecx
4062dd:	0f 84 fa 00 00 00    	je     0x4063dd
4062e3:	49                   	dec    %ecx
4062e4:	0f 84 cf 00 00 00    	je     0x4063b9
4062ea:	49                   	dec    %ecx
4062eb:	0f 84 a8 00 00 00    	je     0x406399
4062f1:	49                   	dec    %ecx
4062f2:	75 5e                	jne    0x406352
4062f4:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
4062f8:	42                   	inc    %edx
4062f9:	84 c9                	test   %cl,%cl
4062fb:	79 7c                	jns    0x406379
4062fd:	8a 1c 32             	mov    (%edx,%esi,1),%bl
406300:	83 e1 7f             	and    $0x7f,%ecx
406303:	42                   	inc    %edx
406304:	41                   	inc    %ecx
406305:	41                   	inc    %ecx
406306:	88 5d ff             	mov    %bl,-0x1(%ebp)
406309:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40630c:	85 c9                	test   %ecx,%ecx
40630e:	7e 3f                	jle    0x40634f
406310:	3b 45 18             	cmp    0x18(%ebp),%eax
406313:	73 3a                	jae    0x40634f
406315:	8b 4d 08             	mov    0x8(%ebp),%ecx
406318:	66 0f be 0c 08       	movsbw (%eax,%ecx,1),%cx
40631d:	66 0f b6 7d ff       	movzbw -0x1(%ebp),%di
406322:	66 03 cf             	add    %di,%cx
406325:	bf ff 00 00 00       	mov    $0xff,%edi
40632a:	66 23 cf             	and    %di,%cx
40632d:	66 0f b6 7d 0f       	movzbw 0xf(%ebp),%di
406332:	bb 00 01 00 00       	mov    $0x100,%ebx
406337:	66 0f af fb          	imul   %bx,%di
40633b:	66 03 cf             	add    %di,%cx
40633e:	8b 7d 14             	mov    0x14(%ebp),%edi
406341:	ff 4d f4             	decl   -0xc(%ebp)
406344:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
406348:	40                   	inc    %eax
406349:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40634d:	7f c1                	jg     0x406310
40634f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406352:	c0 63 04 02          	shlb   $0x2,0x4(%ebx)
406356:	83 43 08 fe          	addl   $0xfffffffe,0x8(%ebx)
40635a:	3b 55 10             	cmp    0x10(%ebp),%edx
40635d:	0f 82 53 ff ff ff    	jb     0x4062b6
406363:	3b 45 18             	cmp    0x18(%ebp),%eax
406366:	72 04                	jb     0x40636c
406368:	8b 45 18             	mov    0x18(%ebp),%eax
40636b:	48                   	dec    %eax
40636c:	33 c9                	xor    %ecx,%ecx
40636e:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
406372:	5f                   	pop    %edi
406373:	5e                   	pop    %esi
406374:	5b                   	pop    %ebx
406375:	c9                   	leave
406376:	c2 14 00             	ret    $0x14
406379:	41                   	inc    %ecx
40637a:	41                   	inc    %ecx
40637b:	eb 16                	jmp    0x406393
40637d:	3b 45 18             	cmp    0x18(%ebp),%eax
406380:	73 d0                	jae    0x406352
406382:	8b 5d 08             	mov    0x8(%ebp),%ebx
406385:	66 0f be 1c 18       	movsbw (%eax,%ebx,1),%bx
40638a:	66 89 1c 47          	mov    %bx,(%edi,%eax,2)
40638e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406391:	49                   	dec    %ecx
406392:	40                   	inc    %eax
406393:	85 c9                	test   %ecx,%ecx
406395:	7f e6                	jg     0x40637d
406397:	eb b9                	jmp    0x406352
406399:	66 0f b6 4c 32 01    	movzbw 0x1(%edx,%esi,1),%cx
40639f:	bb 00 01 00 00       	mov    $0x100,%ebx
4063a4:	66 0f af cb          	imul   %bx,%cx
4063a8:	66 0f b6 1c 32       	movzbw (%edx,%esi,1),%bx
4063ad:	66 03 cb             	add    %bx,%cx
4063b0:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063b4:	40                   	inc    %eax
4063b5:	42                   	inc    %edx
4063b6:	42                   	inc    %edx
4063b7:	eb 96                	jmp    0x40634f
4063b9:	66 0f b6 7d 0f       	movzbw 0xf(%ebp),%di
4063be:	66 0f b6 0c 32       	movzbw (%edx,%esi,1),%cx
4063c3:	bb 00 01 00 00       	mov    $0x100,%ebx
4063c8:	66 0f af fb          	imul   %bx,%di
4063cc:	66 03 cf             	add    %di,%cx
4063cf:	8b 7d 14             	mov    0x14(%ebp),%edi
4063d2:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063d6:	40                   	inc    %eax
4063d7:	42                   	inc    %edx
4063d8:	e9 72 ff ff ff       	jmp    0x40634f
4063dd:	66 0f b6 0c 32       	movzbw (%edx,%esi,1),%cx
4063e2:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063e6:	40                   	inc    %eax
4063e7:	42                   	inc    %edx
4063e8:	e9 65 ff ff ff       	jmp    0x406352
4063ed:	33 c0                	xor    %eax,%eax
4063ef:	89 01                	mov    %eax,(%ecx)
4063f1:	89 41 04             	mov    %eax,0x4(%ecx)
4063f4:	c6 41 08 01          	movb   $0x1,0x8(%ecx)
4063f8:	88 41 09             	mov    %al,0x9(%ecx)
4063fb:	88 41 0a             	mov    %al,0xa(%ecx)
4063fe:	88 41 0b             	mov    %al,0xb(%ecx)
406401:	88 41 0c             	mov    %al,0xc(%ecx)
406404:	c3                   	ret
406405:	32 c0                	xor    %al,%al
406407:	c2 04 00             	ret    $0x4
40640a:	8b 54 24 04          	mov    0x4(%esp),%edx
40640e:	8b c2                	mov    %edx,%eax
406410:	48                   	dec    %eax
406411:	74 0d                	je     0x406420
406413:	48                   	dec    %eax
406414:	74 24                	je     0x40643a
406416:	48                   	dec    %eax
406417:	74 14                	je     0x40642d
406419:	2d fc 00 00 00       	sub    $0xfc,%eax
40641e:	75 05                	jne    0x406425
406420:	83 39 00             	cmpl   $0x0,(%ecx)
406423:	75 02                	jne    0x406427
406425:	89 11                	mov    %edx,(%ecx)
406427:	ff 41 04             	incl   0x4(%ecx)
40642a:	c2 04 00             	ret    $0x4
40642d:	83 39 0b             	cmpl   $0xb,(%ecx)
406430:	74 f5                	je     0x406427
406432:	c7 01 03 00 00 00    	movl   $0x3,(%ecx)
406438:	eb ed                	jmp    0x406427
40643a:	8b 01                	mov    (%ecx),%eax
40643c:	85 c0                	test   %eax,%eax
40643e:	74 05                	je     0x406445
406440:	83 f8 01             	cmp    $0x1,%eax
406443:	75 e2                	jne    0x406427
406445:	c7 01 02 00 00 00    	movl   $0x2,(%ecx)
40644b:	eb da                	jmp    0x406427
40644d:	55                   	push   %ebp
40644e:	8b ec                	mov    %esp,%ebp
406450:	56                   	push   %esi
406451:	8b 75 08             	mov    0x8(%ebp),%esi
406454:	81 fe ff 00 00 00    	cmp    $0xff,%esi
40645a:	75 06                	jne    0x406462
40645c:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
406460:	74 17                	je     0x406479
406462:	56                   	push   %esi
406463:	e8 a2 ff ff ff       	call   0x40640a
406468:	68 00 d1 42 00       	push   $0x42d100
40646d:	8d 45 08             	lea    0x8(%ebp),%eax
406470:	50                   	push   %eax
406471:	89 75 08             	mov    %esi,0x8(%ebp)
406474:	e8 64 5e 01 00       	call   0x41c2dd
406479:	5e                   	pop    %esi
40647a:	5d                   	pop    %ebp
40647b:	c2 04 00             	ret    $0x4
40647e:	e8 6a ff ff ff       	call   0x4063ed
406483:	8b c1                	mov    %ecx,%eax
406485:	c3                   	ret
406486:	80 79 09 00          	cmpb   $0x0,0x9(%ecx)
40648a:	75 05                	jne    0x406491
40648c:	e9 36 b2 00 00       	jmp    0x4116c7
406491:	32 c0                	xor    %al,%al
406493:	c2 08 00             	ret    $0x8
406496:	56                   	push   %esi
406497:	6a 07                	push   $0x7
406499:	8b f1                	mov    %ecx,%esi
40649b:	e8 c9 b6 ff ff       	call   0x401b69
4064a0:	6a 08                	push   $0x8
4064a2:	8b ce                	mov    %esi,%ecx
4064a4:	e8 61 ff ff ff       	call   0x40640a
4064a9:	5e                   	pop    %esi
4064aa:	c3                   	ret
4064ab:	e9 9d ff ff ff       	jmp    0x40644d
4064b0:	55                   	push   %ebp
4064b1:	8b ec                	mov    %esp,%ebp
4064b3:	83 ec 4c             	sub    $0x4c,%esp
4064b6:	8b 45 08             	mov    0x8(%ebp),%eax
4064b9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4064bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064c0:	8b 45 0c             	mov    0xc(%ebp),%eax
4064c3:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4064c6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4064c9:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4064d0:	e8 9d ae 00 00       	call   0x411372
4064d5:	c9                   	leave
4064d6:	c2 08 00             	ret    $0x8
4064d9:	55                   	push   %ebp
4064da:	8b ec                	mov    %esp,%ebp
4064dc:	83 ec 4c             	sub    $0x4c,%esp
4064df:	8b 45 08             	mov    0x8(%ebp),%eax
4064e2:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4064e6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064e9:	8b 45 0c             	mov    0xc(%ebp),%eax
4064ec:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4064ef:	8b 45 10             	mov    0x10(%ebp),%eax
4064f2:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4064f5:	89 45 b8             	mov    %eax,-0x48(%ebp)
4064f8:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
4064ff:	e8 6e ae 00 00       	call   0x411372
406504:	c9                   	leave
406505:	c2 0c 00             	ret    $0xc
406508:	56                   	push   %esi
406509:	8b f1                	mov    %ecx,%esi
40650b:	e8 86 ff ff ff       	call   0x406496
406510:	6a 08                	push   $0x8
406512:	8b ce                	mov    %esi,%ecx
406514:	e8 34 ff ff ff       	call   0x40644d
406519:	5e                   	pop    %esi
40651a:	c3                   	ret
40651b:	56                   	push   %esi
40651c:	8b f1                	mov    %ecx,%esi
40651e:	80 7e 0b 00          	cmpb   $0x0,0xb(%esi)
406522:	75 0b                	jne    0x40652f
406524:	ff 74 24 08          	push   0x8(%esp)
406528:	6a 0a                	push   $0xa
40652a:	e8 81 ff ff ff       	call   0x4064b0
40652f:	6a 02                	push   $0x2
406531:	8b ce                	mov    %esi,%ecx
406533:	e8 15 ff ff ff       	call   0x40644d
406538:	5e                   	pop    %esi
406539:	c2 04 00             	ret    $0x4
40653c:	56                   	push   %esi
40653d:	8b f1                	mov    %ecx,%esi
40653f:	80 7e 0b 00          	cmpb   $0x0,0xb(%esi)
406543:	75 0b                	jne    0x406550
406545:	ff 74 24 08          	push   0x8(%esp)
406549:	6a 0b                	push   $0xb
40654b:	e8 60 ff ff ff       	call   0x4064b0
406550:	6a 02                	push   $0x2
406552:	8b ce                	mov    %esi,%ecx
406554:	e8 f4 fe ff ff       	call   0x40644d
406559:	5e                   	pop    %esi
40655a:	c2 04 00             	ret    $0x4
40655d:	55                   	push   %ebp
40655e:	8b ec                	mov    %esp,%ebp
406560:	81 ec 00 08 00 00    	sub    $0x800,%esp
406566:	8d 45 10             	lea    0x10(%ebp),%eax
406569:	50                   	push   %eax
40656a:	6a 00                	push   $0x0
40656c:	ff 75 0c             	push   0xc(%ebp)
40656f:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
406575:	68 00 04 00 00       	push   $0x400
40657a:	50                   	push   %eax
40657b:	e8 57 3e 01 00       	call   0x41a3d7
406580:	83 c4 14             	add    $0x14,%esp
406583:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
406589:	50                   	push   %eax