408395:	85 db                	test   %ebx,%ebx
408397:	0f 84 fd 00 00 00    	je     0x40849a
40839d:	8b c3                	mov    %ebx,%eax
40839f:	8d 50 02             	lea    0x2(%eax),%edx
4083a2:	66 8b 08             	mov    (%eax),%cx
4083a5:	83 c0 02             	add    $0x2,%eax
4083a8:	66 85 c9             	test   %cx,%cx
4083ab:	75 f5                	jne    0x4083a2
4083ad:	2b c2                	sub    %edx,%eax
4083af:	d1 f8                	sar    $1,%eax
4083b1:	0f 84 e3 00 00 00    	je     0x40849a
4083b7:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
4083bc:	55                   	push   %ebp
4083bd:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4083c1:	74 0f                	je     0x4083d2
4083c3:	8b 44 24 20          	mov    0x20(%esp),%eax
4083c7:	50                   	push   %eax
4083c8:	55                   	push   %ebp
4083c9:	53                   	push   %ebx
4083ca:	e8 d1 ed ff ff       	call   0x4071a0
4083cf:	83 c4 0c             	add    $0xc,%esp
4083d2:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
4083d7:	74 18                	je     0x4083f1
4083d9:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4083dd:	51                   	push   %ecx
4083de:	55                   	push   %ebp
4083df:	53                   	push   %ebx
4083e0:	e8 6b ec ff ff       	call   0x407050
4083e5:	83 c4 0c             	add    $0xc,%esp
4083e8:	85 c0                	test   %eax,%eax
4083ea:	74 05                	je     0x4083f1
4083ec:	5d                   	pop    %ebp
4083ed:	8b c3                	mov    %ebx,%eax
4083ef:	5b                   	pop    %ebx
4083f0:	c3                   	ret
4083f1:	8b c3                	mov    %ebx,%eax
4083f3:	8d 50 02             	lea    0x2(%eax),%edx
4083f6:	66 8b 08             	mov    (%eax),%cx
4083f9:	83 c0 02             	add    $0x2,%eax
4083fc:	66 85 c9             	test   %cx,%cx
4083ff:	75 f5                	jne    0x4083f6
408401:	2b c2                	sub    %edx,%eax
408403:	d1 f8                	sar    $1,%eax
408405:	56                   	push   %esi
408406:	8b d0                	mov    %eax,%edx
408408:	8b c5                	mov    %ebp,%eax
40840a:	57                   	push   %edi
40840b:	8d 70 02             	lea    0x2(%eax),%esi
40840e:	8b ff                	mov    %edi,%edi
408410:	66 8b 08             	mov    (%eax),%cx
408413:	83 c0 02             	add    $0x2,%eax
408416:	66 85 c9             	test   %cx,%cx
408419:	75 f5                	jne    0x408410
40841b:	2b c6                	sub    %esi,%eax
40841d:	d1 f8                	sar    $1,%eax
40841f:	8d 74 10 02          	lea    0x2(%eax,%edx,1),%esi
408423:	8d 14 36             	lea    (%esi,%esi,1),%edx
408426:	52                   	push   %edx
408427:	e8 ea 85 02 00       	call   0x430a16
40842c:	8b f8                	mov    %eax,%edi
40842e:	8b c3                	mov    %ebx,%eax
408430:	83 c4 04             	add    $0x4,%esp
408433:	8d 50 02             	lea    0x2(%eax),%edx
408436:	66 8b 08             	mov    (%eax),%cx
408439:	83 c0 02             	add    $0x2,%eax
40843c:	66 85 c9             	test   %cx,%cx
40843f:	75 f5                	jne    0x408436
408441:	2b c2                	sub    %edx,%eax
408443:	d1 f8                	sar    $1,%eax
408445:	75 1b                	jne    0x408462
408447:	56                   	push   %esi
408448:	55                   	push   %ebp
408449:	57                   	push   %edi
40844a:	e8 5b 86 02 00       	call   0x430aaa
40844f:	83 c4 0c             	add    $0xc,%esp
408452:	53                   	push   %ebx
408453:	e8 45 85 02 00       	call   0x43099d
408458:	83 c4 04             	add    $0x4,%esp
40845b:	8b c7                	mov    %edi,%eax
40845d:	5f                   	pop    %edi
40845e:	5e                   	pop    %esi
40845f:	5d                   	pop    %ebp
408460:	5b                   	pop    %ebx
408461:	c3                   	ret
408462:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
408467:	74 06                	je     0x40846f
408469:	8b cb                	mov    %ebx,%ecx
40846b:	8b c5                	mov    %ebp,%eax
40846d:	eb 04                	jmp    0x408473
40846f:	8b cd                	mov    %ebp,%ecx
408471:	8b c3                	mov    %ebx,%eax
408473:	51                   	push   %ecx
408474:	0f b7 4c 24 2c       	movzwl 0x2c(%esp),%ecx
408479:	51                   	push   %ecx
40847a:	50                   	push   %eax
40847b:	68 64 ce 45 00       	push   $0x45ce64
408480:	56                   	push   %esi
408481:	57                   	push   %edi
408482:	e8 d8 81 02 00       	call   0x43065f
408487:	83 c4 18             	add    $0x18,%esp
40848a:	53                   	push   %ebx
40848b:	e8 0d 85 02 00       	call   0x43099d
408490:	83 c4 04             	add    $0x4,%esp
408493:	8b c7                	mov    %edi,%eax
408495:	5f                   	pop    %edi
408496:	5e                   	pop    %esi
408497:	5d                   	pop    %ebp
408498:	5b                   	pop    %ebx
408499:	c3                   	ret
40849a:	8b 54 24 0c          	mov    0xc(%esp),%edx
40849e:	52                   	push   %edx
40849f:	e8 f4 fd 03 00       	call   0x448298
4084a4:	83 c4 04             	add    $0x4,%esp
4084a7:	5b                   	pop    %ebx
4084a8:	c3                   	ret
4084a9:	cc                   	int3
4084aa:	cc                   	int3
4084ab:	cc                   	int3
4084ac:	cc                   	int3
4084ad:	cc                   	int3
4084ae:	cc                   	int3
4084af:	cc                   	int3
4084b0:	81 ec 2c 0e 00 00    	sub    $0xe2c,%esp
4084b6:	53                   	push   %ebx
4084b7:	55                   	push   %ebp
4084b8:	56                   	push   %esi
4084b9:	8b b4 24 50 0e 00 00 	mov    0xe50(%esp),%esi
4084c0:	57                   	push   %edi
4084c1:	56                   	push   %esi
4084c2:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
4084c9:	00
4084ca:	e8 31 c6 ff ff       	call   0x404b00
4084cf:	8b e8                	mov    %eax,%ebp
4084d1:	68 00 04 00 00       	push   $0x400
4084d6:	8d 84 24 44 06 00 00 	lea    0x644(%esp),%eax
4084dd:	50                   	push   %eax
4084de:	68 98 ce 45 00       	push   $0x45ce98
4084e3:	6a 01                	push   $0x1
4084e5:	68 38 ca 45 00       	push   $0x45ca38
4084ea:	89 6c 24 34          	mov    %ebp,0x34(%esp)
4084ee:	e8 bd fd ff ff       	call   0x4082b0
4084f3:	8b f8                	mov    %eax,%edi
4084f5:	83 c4 18             	add    $0x18,%esp
4084f8:	89 7c 24 14          	mov    %edi,0x14(%esp)
4084fc:	85 ff                	test   %edi,%edi
4084fe:	74 0a                	je     0x40850a
408500:	33 c9                	xor    %ecx,%ecx
408502:	66 89 8c 24 3c 06 00 	mov    %cx,0x63c(%esp)
408509:	00
40850a:	8d 84 24 3c 06 00 00 	lea    0x63c(%esp),%eax
408511:	8d 50 02             	lea    0x2(%eax),%edx
408514:	66 8b 08             	mov    (%eax),%cx
408517:	83 c0 02             	add    $0x2,%eax
40851a:	66 85 c9             	test   %cx,%cx
40851d:	75 f5                	jne    0x408514
40851f:	2b c2                	sub    %edx,%eax
408521:	d1 f8                	sar    $1,%eax
408523:	8d 54 00 04          	lea    0x4(%eax,%eax,1),%edx
408527:	52                   	push   %edx
408528:	e8 e9 84 02 00       	call   0x430a16
40852d:	8b d8                	mov    %eax,%ebx
40852f:	83 c4 04             	add    $0x4,%esp
408532:	33 c0                	xor    %eax,%eax
408534:	66 89 03             	mov    %ax,(%ebx)
408537:	8d 84 24 3c 06 00 00 	lea    0x63c(%esp),%eax
40853e:	89 5c 24 10          	mov    %ebx,0x10(%esp)
408542:	8d 50 02             	lea    0x2(%eax),%edx
408545:	66 8b 08             	mov    (%eax),%cx
408548:	83 c0 02             	add    $0x2,%eax
40854b:	66 85 c9             	test   %cx,%cx
40854e:	75 f5                	jne    0x408545
408550:	2b c2                	sub    %edx,%eax
408552:	d1 f8                	sar    $1,%eax
408554:	40                   	inc    %eax
408555:	50                   	push   %eax
408556:	8d 8c 24 40 06 00 00 	lea    0x640(%esp),%ecx
40855d:	51                   	push   %ecx
40855e:	53                   	push   %ebx
40855f:	e8 46 85 02 00       	call   0x430aaa
408564:	8b 84 24 64 0e 00 00 	mov    0xe64(%esp),%eax
40856b:	83 c4 0c             	add    $0xc,%esp
40856e:	85 c0                	test   %eax,%eax
408570:	74 19                	je     0x40858b
408572:	8b 94 24 5c 0e 00 00 	mov    0xe5c(%esp),%edx
408579:	52                   	push   %edx
40857a:	8d 8c 24 40 06 00 00 	lea    0x640(%esp),%ecx
408581:	51                   	push   %ecx
408582:	50                   	push   %eax
408583:	e8 22 85 02 00       	call   0x430aaa
408588:	83 c4 0c             	add    $0xc,%esp
40858b:	85 ed                	test   %ebp,%ebp
40858d:	74 17                	je     0x4085a6
40858f:	f7 84 24 44 0e 00 00 	testl  $0x400,0xe44(%esp)
408596:	00 04 00 00
40859a:	74 0a                	je     0x4085a6
40859c:	33 d2                	xor    %edx,%edx
40859e:	66 89 94 24 3c 06 00 	mov    %dx,0x63c(%esp)
4085a5:	00
4085a6:	68 04 01 00 00       	push   $0x104
4085ab:	85 f6                	test   %esi,%esi
4085ad:	75 24                	jne    0x4085d3
4085af:	8d 44 24 28          	lea    0x28(%esp),%eax
4085b3:	50                   	push   %eax
4085b4:	e8 47 c7 ff ff       	call   0x404d00
4085b9:	8b f8                	mov    %eax,%edi
4085bb:	83 c4 08             	add    $0x8,%esp
4085be:	89 44 24 14          	mov    %eax,0x14(%esp)
4085c2:	85 ff                	test   %edi,%edi
4085c4:	74 1b                	je     0x4085e1
4085c6:	8b c7                	mov    %edi,%eax
4085c8:	5f                   	pop    %edi
4085c9:	5e                   	pop    %esi
4085ca:	5d                   	pop    %ebp
4085cb:	5b                   	pop    %ebx
4085cc:	81 c4 2c 0e 00 00    	add    $0xe2c,%esp
4085d2:	c3                   	ret
4085d3:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4085d7:	56                   	push   %esi
4085d8:	51                   	push   %ecx
4085d9:	e8 cc 84 02 00       	call   0x430aaa
4085de:	83 c4 0c             	add    $0xc,%esp
4085e1:	85 ed                	test   %ebp,%ebp
4085e3:	8b ac 24 40 0e 00 00 	mov    0xe40(%esp),%ebp
4085ea:	0f 84 29 01 00 00    	je     0x408719
4085f0:	85 f6                	test   %esi,%esi
4085f2:	75 58                	jne    0x40864c
4085f4:	6a 01                	push   $0x1
4085f6:	6a 01                	push   $0x1
4085f8:	8d 94 24 3c 04 00 00 	lea    0x43c(%esp),%edx
4085ff:	68 04 01 00 00       	push   $0x104
408604:	52                   	push   %edx
408605:	e8 36 a8 ff ff       	call   0x402e40
40860a:	8b f8                	mov    %eax,%edi
40860c:	83 c4 10             	add    $0x10,%esp
40860f:	89 7c 24 14          	mov    %edi,0x14(%esp)
408613:	85 ff                	test   %edi,%edi
408615:	75 af                	jne    0x4085c6
408617:	8d 84 24 34 04 00 00 	lea    0x434(%esp),%eax
40861e:	8d 50 02             	lea    0x2(%eax),%edx
408621:	66 8b 08             	mov    (%eax),%cx
408624:	83 c0 02             	add    $0x2,%eax
408627:	66 85 c9             	test   %cx,%cx
40862a:	75 f5                	jne    0x408621
40862c:	2b c2                	sub    %edx,%eax
40862e:	d1 f8                	sar    $1,%eax
408630:	b9 04 01 00 00       	mov    $0x104,%ecx
408635:	2b c8                	sub    %eax,%ecx
408637:	51                   	push   %ecx
408638:	8d 94 24 38 04 00 00 	lea    0x438(%esp),%edx
40863f:	68 74 ce 45 00       	push   $0x45ce74
408644:	52                   	push   %edx
408645:	e8 57 a1 02 00       	call   0x4327a1
40864a:	eb 13                	jmp    0x40865f
40864c:	68 04 01 00 00       	push   $0x104
408651:	8d 84 24 38 04 00 00 	lea    0x438(%esp),%eax
408658:	56                   	push   %esi
408659:	50                   	push   %eax
40865a:	e8 4b 84 02 00       	call   0x430aaa
40865f:	83 c4 0c             	add    $0xc,%esp
408662:	6a 01                	push   $0x1
408664:	6a 00                	push   $0x0
408666:	8d 8c 24 34 02 00 00 	lea    0x234(%esp),%ecx
40866d:	68 04 01 00 00       	push   $0x104
408672:	51                   	push   %ecx
408673:	e8 c8 a7 ff ff       	call   0x402e40
408678:	83 c4 10             	add    $0x10,%esp
40867b:	85 ff                	test   %edi,%edi
40867d:	0f 85 43 ff ff ff    	jne    0x4085c6
408683:	8d 84 24 2c 02 00 00 	lea    0x22c(%esp),%eax
40868a:	8d 50 02             	lea    0x2(%eax),%edx
40868d:	8d 49 00             	lea    0x0(%ecx),%ecx
408690:	66 8b 08             	mov    (%eax),%cx
408693:	83 c0 02             	add    $0x2,%eax
408696:	66 85 c9             	test   %cx,%cx
408699:	75 f5                	jne    0x408690
40869b:	2b c2                	sub    %edx,%eax
40869d:	d1 f8                	sar    $1,%eax
40869f:	ba 04 01 00 00       	mov    $0x104,%edx
4086a4:	2b d0                	sub    %eax,%edx
4086a6:	52                   	push   %edx
4086a7:	8d 84 24 30 02 00 00 	lea    0x230(%esp),%eax
4086ae:	68 74 ce 45 00       	push   $0x45ce74
4086b3:	50                   	push   %eax
4086b4:	e8 e8 a0 02 00       	call   0x4327a1
4086b9:	83 c4 0c             	add    $0xc,%esp
4086bc:	85 ed                	test   %ebp,%ebp
4086be:	74 1a                	je     0x4086da
4086c0:	6a 00                	push   $0x0
4086c2:	8d 8c 24 30 02 00 00 	lea    0x230(%esp),%ecx
4086c9:	51                   	push   %ecx
4086ca:	8d 94 24 3c 04 00 00 	lea    0x43c(%esp),%edx
4086d1:	52                   	push   %edx
4086d2:	ff 15 88 34 47 00    	call   *0x473488
4086d8:	eb 0e                	jmp    0x4086e8
4086da:	8d 84 24 2c 02 00 00 	lea    0x22c(%esp),%eax
4086e1:	50                   	push   %eax
4086e2:	ff 15 5c 34 47 00    	call   *0x47345c
4086e8:	8d 4c 24 24          	lea    0x24(%esp),%ecx
4086ec:	51                   	push   %ecx
4086ed:	e8 ce 9f ff ff       	call   0x4026c0
4086f2:	83 c4 04             	add    $0x4,%esp
4086f5:	85 c0                	test   %eax,%eax
4086f7:	74 20                	je     0x408719
4086f9:	8d 54 24 24          	lea    0x24(%esp),%edx
4086fd:	68 04 01 00 00       	push   $0x104
408702:	52                   	push   %edx
408703:	e8 b8 9f ff ff       	call   0x4026c0
408708:	83 c4 04             	add    $0x4,%esp
40870b:	50                   	push   %eax
40870c:	8d 44 24 2c          	lea    0x2c(%esp),%eax
408710:	50                   	push   %eax
408711:	e8 94 83 02 00       	call   0x430aaa
408716:	83 c4 0c             	add    $0xc,%esp
408719:	6a 2c                	push   $0x2c
40871b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40871f:	51                   	push   %ecx
408720:	53                   	push   %ebx
408721:	85 ed                	test   %ebp,%ebp
408723:	0f 84 ab 01 00 00    	je     0x4088d4
408729:	e8 22 e9 ff ff       	call   0x407050
40872e:	83 c4 0c             	add    $0xc,%esp
408731:	85 c0                	test   %eax,%eax
408733:	74 65                	je     0x40879a
408735:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
40873a:	74 0e                	je     0x40874a
40873c:	8b 84 24 44 0e 00 00 	mov    0xe44(%esp),%eax
408743:	be 01 00 00 00       	mov    $0x1,%esi
408748:	eb 63                	jmp    0x4087ad
40874a:	68 04 01 00 00       	push   $0x104
40874f:	50                   	push   %eax
408750:	8d 94 24 34 02 00 00 	lea    0x234(%esp),%edx
408757:	52                   	push   %edx
408758:	e8 4d 83 02 00       	call   0x430aaa
40875d:	8d 84 24 38 02 00 00 	lea    0x238(%esp),%eax
408764:	6a 2c                	push   $0x2c
408766:	50                   	push   %eax
408767:	e8 4f 87 02 00       	call   0x430ebb
40876c:	83 c4 14             	add    $0x14,%esp
40876f:	85 c0                	test   %eax,%eax
408771:	74 05                	je     0x408778
408773:	33 c9                	xor    %ecx,%ecx
408775:	66 89 08             	mov    %cx,(%eax)
408778:	8d 94 24 2c 02 00 00 	lea    0x22c(%esp),%edx
40877f:	52                   	push   %edx
408780:	e8 0b a0 ff ff       	call   0x402790
408785:	33 c9                	xor    %ecx,%ecx
408787:	83 c4 04             	add    $0x4,%esp
40878a:	84 c0                	test   %al,%al
40878c:	8b 84 24 44 0e 00 00 	mov    0xe44(%esp),%eax
408793:	0f 94 c1             	sete   %cl