40840b:	50                   	push   %eax
40840c:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408412:	50                   	push   %eax
408413:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
408419:	50                   	push   %eax
40841a:	6a 00                	push   $0x0
40841c:	68 58 21 40 00       	push   $0x402158
408421:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
408427:	ff 15 4c a2 44 00    	call   *0x44a24c
40842d:	85 c0                	test   %eax,%eax
40842f:	75 3b                	jne    0x40846c
408431:	83 bd f8 ef ff ff 04 	cmpl   $0x4,-0x1008(%ebp)
408438:	0f 85 95 2d 01 00    	jne    0x41b1d3
40843e:	66 8b 85 fc ef ff ff 	mov    -0x1004(%ebp),%ax
408445:	66 a3 d0 e0 42 00    	mov    %ax,0x42e0d0
40844b:	66 85 c0             	test   %ax,%ax
40844e:	0f 84 ac 2d 01 00    	je     0x41b200
408454:	6a 0d                	push   $0xd
408456:	59                   	pop    %ecx
408457:	6a 20                	push   $0x20
408459:	66 3b c1             	cmp    %cx,%ax
40845c:	59                   	pop    %ecx
40845d:	0f 84 a0 2d 01 00    	je     0x41b203
408463:	66 3b c1             	cmp    %cx,%ax
408466:	0f 87 97 2d 01 00    	ja     0x41b203
40846c:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408472:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
408479:	10 00 00
40847c:	50                   	push   %eax
40847d:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408483:	50                   	push   %eax
408484:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40848a:	50                   	push   %eax
40848b:	6a 00                	push   $0x0
40848d:	68 78 21 40 00       	push   $0x402178
408492:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
408498:	ff 15 4c a2 44 00    	call   *0x44a24c
40849e:	85 c0                	test   %eax,%eax
4084a0:	0f 85 a6 2d 01 00    	jne    0x41b24c
4084a6:	83 bd f8 ef ff ff 04 	cmpl   $0x4,-0x1008(%ebp)
4084ad:	0f 85 5c 2d 01 00    	jne    0x41b20f
4084b3:	66 8b 85 fc ef ff ff 	mov    -0x1004(%ebp),%ax
4084ba:	66 a3 cc e0 42 00    	mov    %ax,0x42e0cc
4084c0:	66 85 c0             	test   %ax,%ax
4084c3:	0f 84 73 2d 01 00    	je     0x41b23c
4084c9:	6a 0d                	push   $0xd
4084cb:	59                   	pop    %ecx
4084cc:	6a 20                	push   $0x20
4084ce:	5a                   	pop    %edx
4084cf:	66 3b c1             	cmp    %cx,%ax
4084d2:	0f 84 67 2d 01 00    	je     0x41b23f
4084d8:	66 3b c2             	cmp    %dx,%ax
4084db:	0f 87 5e 2d 01 00    	ja     0x41b23f
4084e1:	66 8b 0d d0 e0 42 00 	mov    0x42e0d0,%cx
4084e8:	66 3b ca             	cmp    %dx,%cx
4084eb:	0f 84 69 2d 01 00    	je     0x41b25a
4084f1:	66 3b c2             	cmp    %dx,%ax
4084f4:	0f 84 74 2d 01 00    	je     0x41b26e
4084fa:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408500:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
408507:	10 00 00
40850a:	50                   	push   %eax
40850b:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408511:	50                   	push   %eax
408512:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
408518:	50                   	push   %eax
408519:	6a 00                	push   $0x0
40851b:	68 a0 21 40 00       	push   $0x4021a0
408520:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
408526:	ff 15 4c a2 44 00    	call   *0x44a24c
40852c:	85 c0                	test   %eax,%eax
40852e:	0f 84 4f 2d 01 00    	je     0x41b283
408534:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
40853a:	ff 15 50 a2 44 00    	call   *0x44a250
408540:	83 c7 04             	add    $0x4,%edi
408543:	83 ee 01             	sub    $0x1,%esi
408546:	89 b5 ec ef ff ff    	mov    %esi,-0x1014(%ebp)
40854c:	0f 85 6b fd ff ff    	jne    0x4082bd
408552:	6a 00                	push   $0x0
408554:	ff 15 bc a3 44 00    	call   *0x44a3bc
40855a:	50                   	push   %eax
40855b:	ff 15 c0 a3 44 00    	call   *0x44a3c0
408561:	59                   	pop    %ecx
408562:	59                   	pop    %ecx
408563:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408566:	5f                   	pop    %edi
408567:	5e                   	pop    %esi
408568:	33 cd                	xor    %ebp,%ecx
40856a:	5b                   	pop    %ebx
40856b:	e8 c0 e5 00 00       	call   0x416b30
408570:	c9                   	leave
408571:	c3                   	ret
408572:	8b ff                	mov    %edi,%edi
408574:	55                   	push   %ebp
408575:	8b ec                	mov    %esp,%ebp
408577:	81 ec 04 01 00 00    	sub    $0x104,%esp
40857d:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
408582:	33 c5                	xor    %ebp,%eax
408584:	89 45 fc             	mov    %eax,-0x4(%ebp)
408587:	53                   	push   %ebx
408588:	56                   	push   %esi
408589:	57                   	push   %edi
40858a:	e8 02 02 00 00       	call   0x408791
40858f:	6a 08                	push   $0x8
408591:	5f                   	pop    %edi
408592:	57                   	push   %edi
408593:	be e0 c9 43 00       	mov    $0x43c9e0,%esi
408598:	8b d8                	mov    %eax,%ebx
40859a:	56                   	push   %esi
40859b:	6a 1e                	push   $0x1e
40859d:	53                   	push   %ebx
40859e:	ff 15 84 a1 44 00    	call   *0x44a184
4085a4:	85 c0                	test   %eax,%eax
4085a6:	0f 84 4d 2d 01 00    	je     0x41b2f9
4085ac:	be 80 00 00 00       	mov    $0x80,%esi
4085b1:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4085b7:	56                   	push   %esi
4085b8:	50                   	push   %eax
4085b9:	6a 23                	push   $0x23
4085bb:	53                   	push   %ebx
4085bc:	ff 15 84 a1 44 00    	call   *0x44a184
4085c2:	85 c0                	test   %eax,%eax
4085c4:	74 3c                	je     0x408602
4085c6:	b9 18 22 40 00       	mov    $0x402218,%ecx
4085cb:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4085d1:	66 8b 10             	mov    (%eax),%dx
4085d4:	66 3b 11             	cmp    (%ecx),%dx
4085d7:	0f 85 aa 01 00 00    	jne    0x408787
4085dd:	66 85 d2             	test   %dx,%dx
4085e0:	74 19                	je     0x4085fb
4085e2:	66 8b 50 02          	mov    0x2(%eax),%dx
4085e6:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4085ea:	0f 85 97 01 00 00    	jne    0x408787
4085f0:	83 c0 04             	add    $0x4,%eax
4085f3:	83 c1 04             	add    $0x4,%ecx
4085f6:	66 85 d2             	test   %dx,%dx
4085f9:	75 d6                	jne    0x4085d1
4085fb:	33 c0                	xor    %eax,%eax
4085fd:	a3 c4 e0 42 00       	mov    %eax,0x42e0c4
408602:	83 25 8c e5 42 00 00 	andl   $0x0,0x42e58c
408609:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40860f:	56                   	push   %esi
408610:	50                   	push   %eax
408611:	6a 21                	push   $0x21
408613:	53                   	push   %ebx
408614:	ff 15 84 a1 44 00    	call   *0x44a184
40861a:	85 c0                	test   %eax,%eax
40861c:	74 20                	je     0x40863e
40861e:	0f b7 85 fc fe ff ff 	movzwl -0x104(%ebp),%eax
408625:	83 e8 30             	sub    $0x30,%eax
408628:	0f 85 03 2d 01 00    	jne    0x41b331
40862e:	21 05 8c e5 42 00    	and    %eax,0x42e58c
408634:	c7 05 88 e5 42 00 04 	movl   $0x402204,0x42e588
40863b:	22 40 00
40863e:	56                   	push   %esi
40863f:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
408645:	c7 05 84 e5 42 00 02 	movl   $0x2,0x42e584
40864c:	00 00 00
40864f:	50                   	push   %eax
408650:	6a 24                	push   $0x24
408652:	53                   	push   %ebx
408653:	ff 15 84 a1 44 00    	call   *0x44a184
408659:	6a 31                	push   $0x31
40865b:	59                   	pop    %ecx
40865c:	85 c0                	test   %eax,%eax
40865e:	74 13                	je     0x408673
408660:	66 39 8d fc fe ff ff 	cmp    %cx,-0x104(%ebp)
408667:	75 0a                	jne    0x408673
408669:	c7 05 84 e5 42 00 04 	movl   $0x4,0x42e584
408670:	00 00 00
408673:	57                   	push   %edi
408674:	be d0 c9 43 00       	mov    $0x43c9d0,%esi
408679:	56                   	push   %esi
40867a:	6a 1d                	push   $0x1d
40867c:	53                   	push   %ebx
40867d:	ff 15 84 a1 44 00    	call   *0x44a184
408683:	85 c0                	test   %eax,%eax
408685:	0f 84 e6 2c 01 00    	je     0x41b371
40868b:	6a 20                	push   $0x20
40868d:	5e                   	pop    %esi
40868e:	56                   	push   %esi
40868f:	bf 70 c9 43 00       	mov    $0x43c970,%edi
408694:	57                   	push   %edi
408695:	6a 31                	push   $0x31
408697:	53                   	push   %ebx
408698:	ff 15 84 a1 44 00    	call   *0x44a184
40869e:	85 c0                	test   %eax,%eax
4086a0:	0f 84 03 2d 01 00    	je     0x41b3a9
4086a6:	56                   	push   %esi
4086a7:	bf 30 c9 43 00       	mov    $0x43c930,%edi
4086ac:	57                   	push   %edi
4086ad:	6a 32                	push   $0x32
4086af:	53                   	push   %ebx
4086b0:	ff 15 84 a1 44 00    	call   *0x44a184
4086b6:	85 c0                	test   %eax,%eax
4086b8:	0f 84 23 2d 01 00    	je     0x41b3e1
4086be:	56                   	push   %esi
4086bf:	bf f0 c8 43 00       	mov    $0x43c8f0,%edi
4086c4:	57                   	push   %edi
4086c5:	6a 33                	push   $0x33
4086c7:	53                   	push   %ebx
4086c8:	ff 15 84 a1 44 00    	call   *0x44a184
4086ce:	85 c0                	test   %eax,%eax
4086d0:	0f 84 43 2d 01 00    	je     0x41b419
4086d6:	56                   	push   %esi
4086d7:	bf b0 c8 43 00       	mov    $0x43c8b0,%edi
4086dc:	57                   	push   %edi
4086dd:	6a 34                	push   $0x34
4086df:	53                   	push   %ebx
4086e0:	ff 15 84 a1 44 00    	call   *0x44a184
4086e6:	85 c0                	test   %eax,%eax
4086e8:	0f 84 63 2d 01 00    	je     0x41b451
4086ee:	56                   	push   %esi
4086ef:	bf 70 c8 43 00       	mov    $0x43c870,%edi
4086f4:	57                   	push   %edi
4086f5:	6a 35                	push   $0x35
4086f7:	53                   	push   %ebx
4086f8:	ff 15 84 a1 44 00    	call   *0x44a184
4086fe:	85 c0                	test   %eax,%eax
408700:	0f 84 83 2d 01 00    	je     0x41b489
408706:	56                   	push   %esi
408707:	bf 30 c8 43 00       	mov    $0x43c830,%edi
40870c:	57                   	push   %edi
40870d:	6a 36                	push   $0x36
40870f:	53                   	push   %ebx
408710:	ff 15 84 a1 44 00    	call   *0x44a184
408716:	85 c0                	test   %eax,%eax
408718:	0f 84 a3 2d 01 00    	je     0x41b4c1
40871e:	56                   	push   %esi
40871f:	bf f0 c7 43 00       	mov    $0x43c7f0,%edi
408724:	57                   	push   %edi
408725:	6a 37                	push   $0x37
408727:	53                   	push   %ebx
408728:	ff 15 84 a1 44 00    	call   *0x44a184
40872e:	85 c0                	test   %eax,%eax
408730:	0f 84 c3 2d 01 00    	je     0x41b4f9
408736:	6a 08                	push   $0x8
408738:	5f                   	pop    %edi
408739:	57                   	push   %edi
40873a:	be c0 c9 43 00       	mov    $0x43c9c0,%esi
40873f:	56                   	push   %esi
408740:	6a 0e                	push   $0xe
408742:	53                   	push   %ebx
408743:	ff 15 84 a1 44 00    	call   *0x44a184
408749:	85 c0                	test   %eax,%eax
40874b:	0f 84 de 2d 01 00    	je     0x41b52f
408751:	57                   	push   %edi
408752:	be b0 c9 43 00       	mov    $0x43c9b0,%esi
408757:	56                   	push   %esi
408758:	6a 0f                	push   $0xf
40875a:	53                   	push   %ebx
40875b:	ff 15 84 a1 44 00    	call   *0x44a184
408761:	85 c0                	test   %eax,%eax
408763:	0f 84 fe 2d 01 00    	je     0x41b567
408769:	68 fc 21 40 00       	push   $0x4021fc
40876e:	6a 00                	push   $0x0
408770:	ff 15 14 a4 44 00    	call   *0x44a414
408776:	59                   	pop    %ecx
408777:	59                   	pop    %ecx
408778:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40877b:	5f                   	pop    %edi
40877c:	5e                   	pop    %esi
40877d:	33 cd                	xor    %ebp,%ecx
40877f:	5b                   	pop    %ebx
408780:	e8 ab e3 00 00       	call   0x416b30
408785:	c9                   	leave
408786:	c3                   	ret
408787:	1b c0                	sbb    %eax,%eax
408789:	83 c8 01             	or     $0x1,%eax
40878c:	e9 6c fe ff ff       	jmp    0x4085fd
408791:	ff 15 98 a1 44 00    	call   *0x44a198
408797:	8b c8                	mov    %eax,%ecx
408799:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
40879f:	66 83 f9 01          	cmp    $0x1,%cx
4087a3:	74 1f                	je     0x4087c4
4087a5:	66 83 f9 0d          	cmp    $0xd,%cx
4087a9:	74 19                	je     0x4087c4
4087ab:	66 83 f9 1e          	cmp    $0x1e,%cx
4087af:	74 13                	je     0x4087c4
4087b1:	66 83 f9 39          	cmp    $0x39,%cx
4087b5:	74 0d                	je     0x4087c4
4087b7:	66 83 f9 49          	cmp    $0x49,%cx
4087bb:	74 07                	je     0x4087c4
4087bd:	66 83 f9 29          	cmp    $0x29,%cx
4087c1:	74 01                	je     0x4087c4
4087c3:	c3                   	ret
4087c4:	b8 09 04 00 00       	mov    $0x409,%eax
4087c9:	c3                   	ret
4087ca:	8b ff                	mov    %edi,%edi
4087cc:	55                   	push   %ebp
4087cd:	8b ec                	mov    %esp,%ebp
4087cf:	83 ec 64             	sub    $0x64,%esp
4087d2:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4087d7:	33 c5                	xor    %ebp,%eax
4087d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4087dc:	56                   	push   %esi
4087dd:	b8 04 ca 43 00       	mov    $0x43ca04,%eax
4087e2:	8b f1                	mov    %ecx,%esi
4087e4:	57                   	push   %edi
4087e5:	50                   	push   %eax
4087e6:	89 75 9c             	mov    %esi,-0x64(%ebp)
4087e9:	a3 a4 25 43 00       	mov    %eax,0x4325a4
4087ee:	ff 15 98 a2 44 00    	call   *0x44a298
4087f4:	ff 35 a4 25 43 00    	push   0x4325a4
4087fa:	ff 15 9c a2 44 00    	call   *0x44a29c
408800:	ff 35 a4 25 43 00    	push   0x4325a4
408806:	33 ff                	xor    %edi,%edi
408808:	89 3d 9c 25 43 00    	mov    %edi,0x43259c
40880e:	ff 15 a8 a2 44 00    	call   *0x44a2a8
408814:	6a 01                	push   $0x1
408816:	68 60 74 42 00       	push   $0x427460
40881b:	ff 15 18 a0 44 00    	call   *0x44a018
408821:	68 20 ca 43 00       	push   $0x43ca20
408826:	6a 01                	push   $0x1
408828:	ff 15 2c a4 44 00    	call   *0x44a42c
40882e:	59                   	pop    %ecx
40882f:	50                   	push   %eax
408830:	ff 15 10 a0 44 00    	call   *0x44a010
408836:	68 1c ca 43 00       	push   $0x43ca1c
40883b:	57                   	push   %edi
40883c:	ff 15 2c a4 44 00    	call   *0x44a42c
408842:	59                   	pop    %ecx
408843:	50                   	push   %eax
408844:	ff 15 10 a0 44 00    	call   *0x44a010
40884a:	e8 c1 5a 00 00       	call   0x40e310
40884f:	e8 80 21 00 00       	call   0x40a9d4
408854:	a3 94 25 43 00       	mov    %eax,0x432594
408859:	e8 38 03 00 00       	call   0x408b96
40885e:	8b ce                	mov    %esi,%ecx
408860:	a3 90 25 43 00       	mov    %eax,0x432590
408865:	e8 09 fa ff ff       	call   0x408273
40886a:	ff 15 e0 a1 44 00    	call   *0x44a1e0
408870:	8d 50 02             	lea    0x2(%eax),%edx
408873:	66 8b 08             	mov    (%eax),%cx
408876:	83 c0 02             	add    $0x2,%eax
408879:	66 3b cf             	cmp    %di,%cx
40887c:	75 f5                	jne    0x408873
40887e:	2b c2                	sub    %edx,%eax
408880:	b9 00 20 00 00       	mov    $0x2000,%ecx
408885:	d1 f8                	sar    $1,%eax
408887:	40                   	inc    %eax
408888:	3b c1                	cmp    %ecx,%eax
40888a:	0f 87 a7 02 00 00    	ja     0x408b37
408890:	8b d1                	mov    %ecx,%edx
408892:	8d 4d a0             	lea    -0x60(%ebp),%ecx
408895:	e8 6b 91 00 00       	call   0x411a05
40889a:	8b 75 a0             	mov    -0x60(%ebp),%esi
40889d:	85 f6                	test   %esi,%esi
40889f:	0f 84 8a 02 00 00    	je     0x408b2f
4088a5:	ff 15 e0 a1 44 00    	call   *0x44a1e0