406257:	72 35                	jb     0x40628e
406259:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
40625f:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406266:	8b c2                	mov    %edx,%eax
406268:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40626e:	72 14                	jb     0x406284
406270:	8b 50 fc             	mov    -0x4(%eax),%edx
406273:	83 c1 23             	add    $0x23,%ecx
406276:	2b c2                	sub    %edx,%eax
406278:	83 c0 fc             	add    $0xfffffffc,%eax
40627b:	83 f8 1f             	cmp    $0x1f,%eax
40627e:	0f 87 a1 02 00 00    	ja     0x406525
406284:	51                   	push   %ecx
406285:	52                   	push   %edx
406286:	e8 83 56 01 00       	call   0x41b90e
40628b:	83 c4 08             	add    $0x8,%esp
40628e:	8b 85 24 fd ff ff    	mov    -0x2dc(%ebp),%eax
406294:	85 c0                	test   %eax,%eax
406296:	0f 45 d8             	cmovne %eax,%ebx
406299:	8b cb                	mov    %ebx,%ecx
40629b:	8d 51 02             	lea    0x2(%ecx),%edx
40629e:	66 90                	xchg   %ax,%ax
4062a0:	66 8b 01             	mov    (%ecx),%ax
4062a3:	83 c1 02             	add    $0x2,%ecx
4062a6:	66 85 c0             	test   %ax,%ax
4062a9:	75 f5                	jne    0x4062a0
4062ab:	2b ca                	sub    %edx,%ecx
4062ad:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
4062b2:	8b 56 10             	mov    0x10(%esi),%edx
4062b5:	2b c2                	sub    %edx,%eax
4062b7:	d1 f9                	sar    $1,%ecx
4062b9:	3b c1                	cmp    %ecx,%eax
4062bb:	0f 82 55 02 00 00    	jb     0x406516
4062c1:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4062c5:	8b c6                	mov    %esi,%eax
4062c7:	72 02                	jb     0x4062cb
4062c9:	8b 06                	mov    (%esi),%eax
4062cb:	52                   	push   %edx
4062cc:	50                   	push   %eax
4062cd:	51                   	push   %ecx
4062ce:	53                   	push   %ebx
4062cf:	51                   	push   %ecx
4062d0:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
4062d6:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
4062dc:	e8 8f 6b 00 00       	call   0x40ce70
4062e1:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
4062e7:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
4062eb:	50                   	push   %eax
4062ec:	8b cf                	mov    %edi,%ecx
4062ee:	e8 fd 43 00 00       	call   0x40a6f0
4062f3:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4062f7:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
4062fd:	83 f9 08             	cmp    $0x8,%ecx
406300:	72 35                	jb     0x406337
406302:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
406308:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40630f:	8b c2                	mov    %edx,%eax
406311:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406317:	72 14                	jb     0x40632d
406319:	8b 50 fc             	mov    -0x4(%eax),%edx
40631c:	83 c1 23             	add    $0x23,%ecx
40631f:	2b c2                	sub    %edx,%eax
406321:	83 c0 fc             	add    $0xfffffffc,%eax
406324:	83 f8 1f             	cmp    $0x1f,%eax
406327:	0f 87 f8 01 00 00    	ja     0x406525
40632d:	51                   	push   %ecx
40632e:	52                   	push   %edx
40632f:	e8 da 55 01 00       	call   0x41b90e
406334:	83 c4 08             	add    $0x8,%esp
406337:	68 b0 00 00 00       	push   $0xb0
40633c:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406342:	6a 00                	push   $0x0
406344:	50                   	push   %eax
406345:	e8 96 76 01 00       	call   0x41d9e0
40634a:	83 c4 08             	add    $0x8,%esp
40634d:	8d 8d 28 fd ff ff    	lea    -0x2d8(%ebp),%ecx
406353:	e8 48 2d 00 00       	call   0x4090a0
406358:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
40635c:	ff 15 5c f0 43 00    	call   *0x43f05c
406362:	50                   	push   %eax
406363:	8d 8d 38 fd ff ff    	lea    -0x2c8(%ebp),%ecx
406369:	e8 d2 2e 00 00       	call   0x409240
40636e:	8d 85 c4 fc ff ff    	lea    -0x33c(%ebp),%eax
406374:	50                   	push   %eax
406375:	8d 8d 40 fd ff ff    	lea    -0x2c0(%ebp),%ecx
40637b:	e8 e0 41 00 00       	call   0x40a560
406380:	8d 8d 28 fd ff ff    	lea    -0x2d8(%ebp),%ecx
406386:	e8 c5 f5 ff ff       	call   0x405950
40638b:	56                   	push   %esi
40638c:	8d 95 c4 fc ff ff    	lea    -0x33c(%ebp),%edx
406392:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
406396:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
40639c:	e8 5f 56 00 00       	call   0x40ba00
4063a1:	83 c4 04             	add    $0x4,%esp
4063a4:	50                   	push   %eax
4063a5:	8b cf                	mov    %edi,%ecx
4063a7:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
4063ab:	e8 40 43 00 00       	call   0x40a6f0
4063b0:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
4063b4:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
4063ba:	83 f9 08             	cmp    $0x8,%ecx
4063bd:	72 35                	jb     0x4063f4
4063bf:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
4063c5:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4063cc:	8b c2                	mov    %edx,%eax
4063ce:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4063d4:	72 14                	jb     0x4063ea
4063d6:	8b 50 fc             	mov    -0x4(%eax),%edx
4063d9:	83 c1 23             	add    $0x23,%ecx
4063dc:	2b c2                	sub    %edx,%eax
4063de:	83 c0 fc             	add    $0xfffffffc,%eax
4063e1:	83 f8 1f             	cmp    $0x1f,%eax
4063e4:	0f 87 36 01 00 00    	ja     0x406520
4063ea:	51                   	push   %ecx
4063eb:	52                   	push   %edx
4063ec:	e8 1d 55 01 00       	call   0x41b90e
4063f1:	83 c4 08             	add    $0x8,%esp
4063f4:	33 c0                	xor    %eax,%eax
4063f6:	c7 85 1c fd ff ff 00 	movl   $0x0,-0x2e4(%ebp)
4063fd:	00 00 00
406400:	88 45 fc             	mov    %al,-0x4(%ebp)
406403:	8b 8d d8 fc ff ff    	mov    -0x328(%ebp),%ecx
406409:	c7 85 20 fd ff ff 07 	movl   $0x7,-0x2e0(%ebp)
406410:	00 00 00
406413:	66 89 85 0c fd ff ff 	mov    %ax,-0x2f4(%ebp)
40641a:	83 f9 08             	cmp    $0x8,%ecx
40641d:	72 35                	jb     0x406454
40641f:	8b 95 c4 fc ff ff    	mov    -0x33c(%ebp),%edx
406425:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40642c:	8b c2                	mov    %edx,%eax
40642e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406434:	72 14                	jb     0x40644a
406436:	8b 50 fc             	mov    -0x4(%eax),%edx
406439:	83 c1 23             	add    $0x23,%ecx
40643c:	2b c2                	sub    %edx,%eax
40643e:	83 c0 fc             	add    $0xfffffffc,%eax
406441:	83 f8 1f             	cmp    $0x1f,%eax
406444:	0f 87 d6 00 00 00    	ja     0x406520
40644a:	51                   	push   %ecx
40644b:	52                   	push   %edx
40644c:	e8 bd 54 01 00       	call   0x41b90e
406451:	83 c4 08             	add    $0x8,%esp
406454:	83 bd ec fd ff ff 08 	cmpl   $0x8,-0x214(%ebp)
40645b:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
406461:	8b 57 14             	mov    0x14(%edi),%edx
406464:	8b c2                	mov    %edx,%eax
406466:	0f 43 8d d8 fd ff ff 	cmovae -0x228(%ebp),%ecx
40646d:	8b 5f 10             	mov    0x10(%edi),%ebx
406470:	2b c3                	sub    %ebx,%eax
406472:	8b b5 e8 fd ff ff    	mov    -0x218(%ebp),%esi
406478:	3b f0                	cmp    %eax,%esi
40647a:	77 29                	ja     0x4064a5
40647c:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
40647f:	89 47 10             	mov    %eax,0x10(%edi)
406482:	83 fa 08             	cmp    $0x8,%edx
406485:	72 02                	jb     0x406489
406487:	8b 3f                	mov    (%edi),%edi
406489:	8d 04 36             	lea    (%esi,%esi,1),%eax
40648c:	50                   	push   %eax
40648d:	51                   	push   %ecx
40648e:	8d 04 5f             	lea    (%edi,%ebx,2),%eax
406491:	50                   	push   %eax
406492:	e8 b9 6f 01 00       	call   0x41d450
406497:	83 c4 0c             	add    $0xc,%esp
40649a:	8d 04 33             	lea    (%ebx,%esi,1),%eax
40649d:	33 c9                	xor    %ecx,%ecx
40649f:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4064a3:	eb 17                	jmp    0x4064bc
4064a5:	56                   	push   %esi
4064a6:	51                   	push   %ecx
4064a7:	c6 85 24 fd ff ff 00 	movb   $0x0,-0x2dc(%ebp)
4064ae:	8b cf                	mov    %edi,%ecx
4064b0:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
4064b6:	56                   	push   %esi
4064b7:	e8 84 c2 ff ff       	call   0x402740
4064bc:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
4064c2:	83 f9 08             	cmp    $0x8,%ecx
4064c5:	72 31                	jb     0x4064f8
4064c7:	8b 95 d8 fd ff ff    	mov    -0x228(%ebp),%edx
4064cd:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4064d4:	8b c2                	mov    %edx,%eax
4064d6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4064dc:	72 10                	jb     0x4064ee
4064de:	8b 50 fc             	mov    -0x4(%eax),%edx
4064e1:	83 c1 23             	add    $0x23,%ecx
4064e4:	2b c2                	sub    %edx,%eax
4064e6:	83 c0 fc             	add    $0xfffffffc,%eax
4064e9:	83 f8 1f             	cmp    $0x1f,%eax
4064ec:	77 37                	ja     0x406525
4064ee:	51                   	push   %ecx
4064ef:	52                   	push   %edx
4064f0:	e8 19 54 01 00       	call   0x41b90e
4064f5:	83 c4 08             	add    $0x8,%esp
4064f8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4064fb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406502:	59                   	pop    %ecx
406503:	5f                   	pop    %edi
406504:	5e                   	pop    %esi
406505:	5b                   	pop    %ebx
406506:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406509:	33 cd                	xor    %ebp,%ecx
40650b:	e8 c0 53 01 00       	call   0x41b8d0
406510:	8b e5                	mov    %ebp,%esp
406512:	5d                   	pop    %ebp
406513:	c2 2c 00             	ret    $0x2c
406516:	e8 85 ad ff ff       	call   0x4012a0
40651b:	e8 5f a5 01 00       	call   0x420a7f
406520:	e8 5a a5 01 00       	call   0x420a7f
406525:	e8 55 a5 01 00       	call   0x420a7f
40652a:	66 90                	xchg   %ax,%ax
40652c:	ca 5b 40             	lret   $0x405b
40652f:	00 c1                	add    %al,%cl
406531:	5b                   	pop    %ebx
406532:	40                   	inc    %eax
406533:	00 b8 5b 40 00 4a    	add    %bh,0x4a00405b(%eax)
406539:	5b                   	pop    %ebx
40653a:	40                   	inc    %eax
40653b:	00 af 5b 40 00 a6    	add    %ch,-0x59ffbfa5(%edi)
406541:	5b                   	pop    %ebx
406542:	40                   	inc    %eax
406543:	00 d3                	add    %dl,%bl
406545:	5b                   	pop    %ebx
406546:	40                   	inc    %eax
406547:	00 dc                	add    %bl,%ah
406549:	5b                   	pop    %ebx
40654a:	40                   	inc    %eax
40654b:	00 00                	add    %al,(%eax)
40654d:	07                   	pop    %es
40654e:	07                   	pop    %es
40654f:	07                   	pop    %es
406550:	07                   	pop    %es
406551:	07                   	pop    %es
406552:	07                   	pop    %es
406553:	07                   	pop    %es
406554:	07                   	pop    %es
406555:	07                   	pop    %es
406556:	01 07                	add    %eax,(%edi)
406558:	07                   	pop    %es
406559:	07                   	pop    %es
40655a:	07                   	pop    %es
40655b:	07                   	pop    %es
40655c:	07                   	pop    %es
40655d:	07                   	pop    %es
40655e:	07                   	pop    %es
40655f:	07                   	pop    %es
406560:	02 07                	add    (%edi),%al
406562:	07                   	pop    %es
406563:	07                   	pop    %es
406564:	07                   	pop    %es
406565:	07                   	pop    %es
406566:	07                   	pop    %es
406567:	07                   	pop    %es
406568:	07                   	pop    %es
406569:	07                   	pop    %es
40656a:	03 07                	add    (%edi),%eax
40656c:	07                   	pop    %es
40656d:	07                   	pop    %es
40656e:	07                   	pop    %es
40656f:	07                   	pop    %es
406570:	07                   	pop    %es
406571:	07                   	pop    %es
406572:	07                   	pop    %es
406573:	07                   	pop    %es
406574:	04 07                	add    $0x7,%al
406576:	07                   	pop    %es
406577:	07                   	pop    %es
406578:	07                   	pop    %es
406579:	07                   	pop    %es
40657a:	07                   	pop    %es
40657b:	07                   	pop    %es
40657c:	07                   	pop    %es
40657d:	07                   	pop    %es
40657e:	05 07 07 07 07       	add    $0x7070707,%eax
406583:	07                   	pop    %es
406584:	07                   	pop    %es
406585:	07                   	pop    %es
406586:	07                   	pop    %es
406587:	07                   	pop    %es
406588:	06                   	push   %es
406589:	cc                   	int3
40658a:	cc                   	int3
40658b:	cc                   	int3
40658c:	cc                   	int3
40658d:	cc                   	int3
40658e:	cc                   	int3
40658f:	cc                   	int3
406590:	55                   	push   %ebp
406591:	8b ec                	mov    %esp,%ebp
406593:	6a ff                	push   $0xffffffff
406595:	68 4b d7 43 00       	push   $0x43d74b
40659a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4065a0:	50                   	push   %eax
4065a1:	b8 5c 20 00 00       	mov    $0x205c,%eax
4065a6:	e8 85 63 01 00       	call   0x41c930
4065ab:	a1 14 40 45 00       	mov    0x454014,%eax
4065b0:	33 c5                	xor    %ebp,%eax
4065b2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4065b5:	53                   	push   %ebx
4065b6:	56                   	push   %esi
4065b7:	57                   	push   %edi
4065b8:	50                   	push   %eax
4065b9:	8d 45 f4             	lea    -0xc(%ebp),%eax
4065bc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4065c2:	8b f9                	mov    %ecx,%edi
4065c4:	8b 45 14             	mov    0x14(%ebp),%eax
4065c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4065ca:	8b 55 10             	mov    0x10(%ebp),%edx
4065cd:	8b 75 28             	mov    0x28(%ebp),%esi
4065d0:	89 85 ac df ff ff    	mov    %eax,-0x2054(%ebp)
4065d6:	8b 45 18             	mov    0x18(%ebp),%eax
4065d9:	89 85 b0 df ff ff    	mov    %eax,-0x2050(%ebp)
4065df:	8b 45 1c             	mov    0x1c(%ebp),%eax
4065e2:	89 85 a0 df ff ff    	mov    %eax,-0x2060(%ebp)
4065e8:	8b 45 20             	mov    0x20(%ebp),%eax
4065eb:	89 85 a4 df ff ff    	mov    %eax,-0x205c(%ebp)
4065f1:	8b 45 24             	mov    0x24(%ebp),%eax
4065f4:	89 85 b4 df ff ff    	mov    %eax,-0x204c(%ebp)
4065fa:	8b 45 08             	mov    0x8(%ebp),%eax
4065fd:	89 8d b8 df ff ff    	mov    %ecx,-0x2048(%ebp)
406603:	89 95 bc df ff ff    	mov    %edx,-0x2044(%ebp)
406609:	89 b5 a8 df ff ff    	mov    %esi,-0x2058(%ebp)
40660f:	39 47 64             	cmp    %eax,0x64(%edi)
406612:	0f 8f 99 02 00 00    	jg     0x4068b1
406618:	8a 5d 34             	mov    0x34(%ebp),%bl
40661b:	84 db                	test   %bl,%bl
40661d:	0f 84 98 00 00 00    	je     0x4066bb
406623:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
406629:	85 c0                	test   %eax,%eax
40662b:	74 76                	je     0x4066a3
40662d:	80 bf d1 00 00 00 00 	cmpb   $0x0,0xd1(%edi)
406634:	74 6d                	je     0x4066a3
406636:	8b 00                	mov    (%eax),%eax
406638:	85 c0                	test   %eax,%eax
40663a:	74 67                	je     0x4066a3
40663c:	68 d0 07 00 00       	push   $0x7d0
406641:	50                   	push   %eax
406642:	ff 15 d0 f0 43 00    	call   *0x43f0d0
406648:	85 c0                	test   %eax,%eax
40664a:	74 07                	je     0x406653
40664c:	3d 80 00 00 00       	cmp    $0x80,%eax
406651:	75 50                	jne    0x4066a3
406653:	8b 8f f8 00 00 00    	mov    0xf8(%edi),%ecx
406659:	2b 8f f0 00 00 00    	sub    0xf0(%edi),%ecx
40665f:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
406665:	1b 87 f4 00 00 00    	sbb    0xf4(%edi),%eax
40666b:	78 42                	js     0x4066af
40666d:	7f 08                	jg     0x406677
40666f:	81 f9 84 03 00 00    	cmp    $0x384,%ecx
406675:	72 38                	jb     0x4066af
406677:	51                   	push   %ecx