408593:	c6 85 e8 fc ff ff 01 	movb   $0x1,-0x318(%ebp)
40859a:	eb 07                	jmp    0x4085a3
40859c:	c6 85 e8 fc ff ff 00 	movb   $0x0,-0x318(%ebp)
4085a3:	33 c0                	xor    %eax,%eax
4085a5:	c7 85 78 fd ff ff 00 	movl   $0x0,-0x288(%ebp)
4085ac:	00 00 00
4085af:	c7 85 88 fd ff ff 00 	movl   $0x0,-0x278(%ebp)
4085b6:	00 00 00
4085b9:	c7 85 8c fd ff ff 07 	movl   $0x7,-0x274(%ebp)
4085c0:	00 00 00
4085c3:	66 89 85 78 fd ff ff 	mov    %ax,-0x288(%ebp)
4085ca:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4085ce:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
4085d4:	6a 1e                	push   $0x1e
4085d6:	68 ac 06 4b 00       	push   $0x4b06ac
4085db:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
4085e1:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
4085e7:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
4085ed:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
4085f3:	e8 68 9a ff ff       	call   0x402060
4085f8:	8d 85 f8 fc ff ff    	lea    -0x308(%ebp),%eax
4085fe:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
408602:	50                   	push   %eax
408603:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
408609:	8b cf                	mov    %edi,%ecx
40860b:	50                   	push   %eax
40860c:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
408612:	50                   	push   %eax
408613:	e8 48 a8 00 00       	call   0x412e60
408618:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40861c:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
408622:	83 f9 08             	cmp    $0x8,%ecx
408625:	72 35                	jb     0x40865c
408627:	8b 95 cc fd ff ff    	mov    -0x234(%ebp),%edx
40862d:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
408634:	8b c2                	mov    %edx,%eax
408636:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40863c:	72 14                	jb     0x408652
40863e:	8b 50 fc             	mov    -0x4(%eax),%edx
408641:	83 c1 23             	add    $0x23,%ecx
408644:	2b c2                	sub    %edx,%eax
408646:	83 c0 fc             	add    $0xfffffffc,%eax
408649:	83 f8 1f             	cmp    $0x1f,%eax
40864c:	0f 87 7d 14 00 00    	ja     0x409acf
408652:	51                   	push   %ecx
408653:	52                   	push   %edx
408654:	e8 af 13 06 00       	call   0x469a08
408659:	83 c4 08             	add    $0x8,%esp
40865c:	33 c0                	xor    %eax,%eax
40865e:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
408665:	00 00 00
408668:	66 89 85 cc fd ff ff 	mov    %ax,-0x234(%ebp)
40866f:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
408674:	c7 85 e0 fd ff ff 07 	movl   $0x7,-0x220(%ebp)
40867b:	00 00 00
40867e:	85 c0                	test   %eax,%eax
408680:	75 36                	jne    0x4086b8
408682:	68 84 00 00 00       	push   $0x84
408687:	e8 4c 13 06 00       	call   0x4699d8
40868c:	8b f0                	mov    %eax,%esi
40868e:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
408694:	68 84 00 00 00       	push   $0x84
408699:	6a 00                	push   $0x0
40869b:	56                   	push   %esi
40869c:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
4086a0:	e8 0b 35 06 00       	call   0x46bbb0
4086a5:	83 c4 10             	add    $0x10,%esp
4086a8:	8b ce                	mov    %esi,%ecx
4086aa:	e8 d1 d5 ff ff       	call   0x405c80
4086af:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4086b3:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
4086b8:	83 bd 8c fd ff ff 08 	cmpl   $0x8,-0x274(%ebp)
4086bf:	8d 50 04             	lea    0x4(%eax),%edx
4086c2:	8b 02                	mov    (%edx),%eax
4086c4:	8d 8d 78 fd ff ff    	lea    -0x288(%ebp),%ecx
4086ca:	0f 43 8d 78 fd ff ff 	cmovae -0x288(%ebp),%ecx
4086d1:	51                   	push   %ecx
4086d2:	68 30 08 4b 00       	push   $0x4b0830
4086d7:	8b 70 14             	mov    0x14(%eax),%esi
4086da:	8b ce                	mov    %esi,%ecx
4086dc:	52                   	push   %edx
4086dd:	ff 15 d4 e2 49 00    	call   *0x49e2d4
4086e3:	ff d6                	call   *%esi
4086e5:	33 c0                	xor    %eax,%eax
4086e7:	c7 85 60 fd ff ff 00 	movl   $0x0,-0x2a0(%ebp)
4086ee:	00 00 00
4086f1:	83 c4 0c             	add    $0xc,%esp
4086f4:	c7 85 70 fd ff ff 00 	movl   $0x0,-0x290(%ebp)
4086fb:	00 00 00
4086fe:	c7 85 74 fd ff ff 07 	movl   $0x7,-0x28c(%ebp)
408705:	00 00 00
408708:	66 89 85 60 fd ff ff 	mov    %ax,-0x2a0(%ebp)
40870f:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
408713:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
408719:	6a 1c                	push   $0x1c
40871b:	68 c0 08 4b 00       	push   $0x4b08c0
408720:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
408726:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
40872c:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
408732:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
408738:	e8 23 99 ff ff       	call   0x402060
40873d:	8d 85 f8 fc ff ff    	lea    -0x308(%ebp),%eax
408743:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
408747:	50                   	push   %eax
408748:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
40874e:	8b cf                	mov    %edi,%ecx
408750:	50                   	push   %eax
408751:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
408757:	50                   	push   %eax
408758:	e8 03 a7 00 00       	call   0x412e60
40875d:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
408761:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
408767:	83 f9 08             	cmp    $0x8,%ecx
40876a:	72 35                	jb     0x4087a1
40876c:	8b 95 cc fd ff ff    	mov    -0x234(%ebp),%edx
408772:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
408779:	8b c2                	mov    %edx,%eax
40877b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
408781:	72 14                	jb     0x408797
408783:	8b 50 fc             	mov    -0x4(%eax),%edx
408786:	83 c1 23             	add    $0x23,%ecx
408789:	2b c2                	sub    %edx,%eax
40878b:	83 c0 fc             	add    $0xfffffffc,%eax
40878e:	83 f8 1f             	cmp    $0x1f,%eax
408791:	0f 87 3d 13 00 00    	ja     0x409ad4
408797:	51                   	push   %ecx
408798:	52                   	push   %edx
408799:	e8 6a 12 06 00       	call   0x469a08
40879e:	83 c4 08             	add    $0x8,%esp
4087a1:	33 c0                	xor    %eax,%eax
4087a3:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
4087aa:	00 00 00
4087ad:	66 89 85 cc fd ff ff 	mov    %ax,-0x234(%ebp)
4087b4:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
4087b9:	c7 85 e0 fd ff ff 07 	movl   $0x7,-0x220(%ebp)
4087c0:	00 00 00
4087c3:	85 c0                	test   %eax,%eax
4087c5:	75 36                	jne    0x4087fd
4087c7:	68 84 00 00 00       	push   $0x84
4087cc:	e8 07 12 06 00       	call   0x4699d8
4087d1:	8b f0                	mov    %eax,%esi
4087d3:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
4087d9:	68 84 00 00 00       	push   $0x84
4087de:	6a 00                	push   $0x0
4087e0:	56                   	push   %esi
4087e1:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
4087e5:	e8 c6 33 06 00       	call   0x46bbb0
4087ea:	83 c4 10             	add    $0x10,%esp
4087ed:	8b ce                	mov    %esi,%ecx
4087ef:	e8 8c d4 ff ff       	call   0x405c80
4087f4:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
4087f8:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
4087fd:	83 bd 74 fd ff ff 08 	cmpl   $0x8,-0x28c(%ebp)
408804:	8d 50 04             	lea    0x4(%eax),%edx
408807:	8b 02                	mov    (%edx),%eax
408809:	8d 8d 60 fd ff ff    	lea    -0x2a0(%ebp),%ecx
40880f:	0f 43 8d 60 fd ff ff 	cmovae -0x2a0(%ebp),%ecx
408816:	51                   	push   %ecx
408817:	68 00 09 4b 00       	push   $0x4b0900
40881c:	8b 70 14             	mov    0x14(%eax),%esi
40881f:	8b ce                	mov    %esi,%ecx
408821:	52                   	push   %edx
408822:	ff 15 d4 e2 49 00    	call   *0x49e2d4
408828:	ff d6                	call   *%esi
40882a:	0f 57 c0             	xorps  %xmm0,%xmm0
40882d:	c7 85 b0 fd ff ff 00 	movl   $0x0,-0x250(%ebp)
408834:	00 00 00
408837:	66 0f d6 85 a8 fd ff 	movq   %xmm0,-0x258(%ebp)
40883e:	ff
40883f:	83 c4 0c             	add    $0xc,%esp
408842:	c7 85 a8 fd ff ff 00 	movl   $0x0,-0x258(%ebp)
408849:	00 00 00
40884c:	c7 85 ac fd ff ff 00 	movl   $0x0,-0x254(%ebp)
408853:	00 00 00
408856:	c7 85 b0 fd ff ff 00 	movl   $0x0,-0x250(%ebp)
40885d:	00 00 00
408860:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
408864:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
40886a:	6a 1a                	push   $0x1a
40886c:	68 8c 09 4b 00       	push   $0x4b098c
408871:	c7 85 f8 fc ff ff 00 	movl   $0x0,-0x308(%ebp)
408878:	00 00 00
40887b:	c7 85 cc fd ff ff 00 	movl   $0x0,-0x234(%ebp)
408882:	00 00 00
408885:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
40888c:	00 00 00
40888f:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
408896:	00 00 00
408899:	e8 c2 97 ff ff       	call   0x402060
40889e:	8d 85 f8 fc ff ff    	lea    -0x308(%ebp),%eax
4088a4:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
4088a8:	50                   	push   %eax
4088a9:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
4088af:	8b cf                	mov    %edi,%ecx
4088b1:	50                   	push   %eax
4088b2:	e8 69 a3 00 00       	call   0x412c20
4088b7:	85 c0                	test   %eax,%eax
4088b9:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
4088bd:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
4088c3:	0f 95 c0             	setne  %al
4088c6:	88 85 ff fc ff ff    	mov    %al,-0x301(%ebp)
4088cc:	83 f9 08             	cmp    $0x8,%ecx
4088cf:	72 3b                	jb     0x40890c
4088d1:	8b 95 cc fd ff ff    	mov    -0x234(%ebp),%edx
4088d7:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4088de:	8b c2                	mov    %edx,%eax
4088e0:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4088e6:	72 14                	jb     0x4088fc
4088e8:	8b 50 fc             	mov    -0x4(%eax),%edx
4088eb:	83 c1 23             	add    $0x23,%ecx
4088ee:	2b c2                	sub    %edx,%eax
4088f0:	83 c0 fc             	add    $0xfffffffc,%eax
4088f3:	83 f8 1f             	cmp    $0x1f,%eax
4088f6:	0f 87 dd 11 00 00    	ja     0x409ad9
4088fc:	51                   	push   %ecx
4088fd:	52                   	push   %edx
4088fe:	e8 05 11 06 00       	call   0x469a08
408903:	8a 85 ff fc ff ff    	mov    -0x301(%ebp),%al
408909:	83 c4 08             	add    $0x8,%esp
40890c:	33 c9                	xor    %ecx,%ecx
40890e:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
408915:	00 00 00
408918:	c7 85 e0 fd ff ff 07 	movl   $0x7,-0x220(%ebp)
40891f:	00 00 00
408922:	66 89 8d cc fd ff ff 	mov    %cx,-0x234(%ebp)
408929:	84 c0                	test   %al,%al
40892b:	0f 84 a0 03 00 00    	je     0x408cd1
408931:	0f 57 c0             	xorps  %xmm0,%xmm0
408934:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40893a:	66 0f d6 85 54 fd ff 	movq   %xmm0,-0x2ac(%ebp)
408941:	ff
408942:	89 8d 54 fd ff ff    	mov    %ecx,-0x2ac(%ebp)
408948:	89 8d 58 fd ff ff    	mov    %ecx,-0x2a8(%ebp)
40894e:	89 8d 5c fd ff ff    	mov    %ecx,-0x2a4(%ebp)
408954:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
408958:	6a 21                	push   $0x21
40895a:	89 8d ec fc ff ff    	mov    %ecx,-0x314(%ebp)
408960:	89 8d 90 fd ff ff    	mov    %ecx,-0x270(%ebp)
408966:	89 8d a0 fd ff ff    	mov    %ecx,-0x260(%ebp)
40896c:	89 8d a4 fd ff ff    	mov    %ecx,-0x25c(%ebp)
408972:	8d 8d 90 fd ff ff    	lea    -0x270(%ebp),%ecx
408978:	68 c8 09 4b 00       	push   $0x4b09c8
40897d:	e8 de 96 ff ff       	call   0x402060
408982:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
408988:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
40898c:	50                   	push   %eax
40898d:	8d 85 f8 fc ff ff    	lea    -0x308(%ebp),%eax
408993:	8b cf                	mov    %edi,%ecx
408995:	50                   	push   %eax
408996:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
40899c:	50                   	push   %eax
40899d:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
4089a3:	50                   	push   %eax
4089a4:	e8 f7 a2 00 00       	call   0x412ca0
4089a9:	50                   	push   %eax
4089aa:	8d 8d 54 fd ff ff    	lea    -0x2ac(%ebp),%ecx
4089b0:	e8 bb 1b 00 00       	call   0x40a570
4089b5:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
4089bb:	85 c9                	test   %ecx,%ecx
4089bd:	74 58                	je     0x408a17
4089bf:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
4089c5:	2b c1                	sub    %ecx,%eax
4089c7:	c1 f8 02             	sar    $0x2,%eax
4089ca:	8d 14 85 00 00 00 00 	lea    0x0(,%eax,4),%edx
4089d1:	8b c1                	mov    %ecx,%eax
4089d3:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4089d9:	72 14                	jb     0x4089ef
4089db:	8b 48 fc             	mov    -0x4(%eax),%ecx
4089de:	83 c2 23             	add    $0x23,%edx
4089e1:	2b c1                	sub    %ecx,%eax
4089e3:	83 c0 fc             	add    $0xfffffffc,%eax
4089e6:	83 f8 1f             	cmp    $0x1f,%eax
4089e9:	0f 87 ef 10 00 00    	ja     0x409ade
4089ef:	52                   	push   %edx
4089f0:	51                   	push   %ecx
4089f1:	e8 12 10 06 00       	call   0x469a08
4089f6:	83 c4 08             	add    $0x8,%esp
4089f9:	c7 85 d8 fd ff ff 00 	movl   $0x0,-0x228(%ebp)
408a00:	00 00 00
408a03:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
408a0a:	00 00 00
408a0d:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
408a14:	00 00 00
408a17:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
408a1b:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
408a21:	83 f9 08             	cmp    $0x8,%ecx
408a24:	72 35                	jb     0x408a5b
408a26:	8b 95 90 fd ff ff    	mov    -0x270(%ebp),%edx
408a2c:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
408a33:	8b c2                	mov    %edx,%eax
408a35:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
408a3b:	72 14                	jb     0x408a51
408a3d:	8b 50 fc             	mov    -0x4(%eax),%edx
408a40:	83 c1 23             	add    $0x23,%ecx
408a43:	2b c2                	sub    %edx,%eax
408a45:	83 c0 fc             	add    $0xfffffffc,%eax
408a48:	83 f8 1f             	cmp    $0x1f,%eax
408a4b:	0f 87 8d 10 00 00    	ja     0x409ade
408a51:	51                   	push   %ecx
408a52:	52                   	push   %edx
408a53:	e8 b0 0f 06 00       	call   0x469a08
408a58:	83 c4 08             	add    $0x8,%esp
408a5b:	8b 8d 54 fd ff ff    	mov    -0x2ac(%ebp),%ecx
408a61:	33 ff                	xor    %edi,%edi
408a63:	39 bd f8 fc ff ff    	cmp    %edi,-0x308(%ebp)
408a69:	0f 8e 17 02 00 00    	jle    0x408c86
408a6f:	8b 85 58 fd ff ff    	mov    -0x2a8(%ebp),%eax
408a75:	2b c1                	sub    %ecx,%eax
408a77:	89 8d ec fc ff ff    	mov    %ecx,-0x314(%ebp)
408a7d:	c1 f8 02             	sar    $0x2,%eax
408a80:	89 85 f4 fc ff ff    	mov    %eax,-0x30c(%ebp)
408a86:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
408a8d:	00 00 00
408a90:	33 f6                	xor    %esi,%esi
408a92:	c7 85 cc fd ff ff 00 	movl   $0x0,-0x234(%ebp)
408a99:	00 00 00
408a9c:	ba 07 00 00 00       	mov    $0x7,%edx
408aa1:	89 b5 dc fd ff ff    	mov    %esi,-0x224(%ebp)
408aa7:	33 c0                	xor    %eax,%eax
408aa9:	89 95 e0 fd ff ff    	mov    %edx,-0x220(%ebp)
408aaf:	66 89 85 cc fd ff ff 	mov    %ax,-0x234(%ebp)
408ab6:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
408aba:	39 bd f4 fc ff ff    	cmp    %edi,-0x30c(%ebp)
408ac0:	76 56                	jbe    0x408b18
408ac2:	85 ff                	test   %edi,%edi
408ac4:	8b c1                	mov    %ecx,%eax
408ac6:	0f 4f 85 ec fc ff ff 	cmovg  -0x314(%ebp),%eax
408acd:	8b 00                	mov    (%eax),%eax
408acf:	85 c0                	test   %eax,%eax
408ad1:	74 45                	je     0x408b18
408ad3:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
408ad9:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
408adf:	e8 ec 15 02 00       	call   0x42a0d0
408ae4:	8b d0                	mov    %eax,%edx
408ae6:	8b ca                	mov    %edx,%ecx
408ae8:	8d 71 02             	lea    0x2(%ecx),%esi
408aeb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
408af0:	66 8b 01             	mov    (%ecx),%ax
408af3:	83 c1 02             	add    $0x2,%ecx
408af6:	66 85 c0             	test   %ax,%ax
408af9:	75 f5                	jne    0x408af0
408afb:	2b ce                	sub    %esi,%ecx
408afd:	d1 f9                	sar    $1,%ecx
408aff:	51                   	push   %ecx
408b00:	52                   	push   %edx
408b01:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
408b07:	e8 f4 a2 ff ff       	call   0x402e00
408b0c:	8b 95 e0 fd ff ff    	mov    -0x220(%ebp),%edx
408b12:	8b b5 dc fd ff ff    	mov    -0x224(%ebp),%esi
408b18:	83 fa 08             	cmp    $0x8,%edx