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
408796:	8b f1                	mov    %ecx,%esi
408798:	eb 13                	jmp    0x4087ad
40879a:	8b 84 24 44 0e 00 00 	mov    0xe44(%esp),%eax
4087a1:	ba 00 00 00 00       	mov    $0x0,%edx
4087a6:	a8 03                	test   $0x3,%al
4087a8:	0f 95 c2             	setne  %dl
4087ab:	8b f2                	mov    %edx,%esi
4087ad:	8b c8                	mov    %eax,%ecx
4087af:	c1 e9 0c             	shr    $0xc,%ecx
4087b2:	83 e1 01             	and    $0x1,%ecx
4087b5:	0b f1                	or     %ecx,%esi
4087b7:	a8 01                	test   $0x1,%al
4087b9:	75 08                	jne    0x4087c3
4087bb:	a8 02                	test   $0x2,%al
4087bd:	74 04                	je     0x4087c3
4087bf:	33 ed                	xor    %ebp,%ebp
4087c1:	eb 05                	jmp    0x4087c8
4087c3:	bd 01 00 00 00       	mov    $0x1,%ebp
4087c8:	8b c3                	mov    %ebx,%eax
4087ca:	8d 50 02             	lea    0x2(%eax),%edx
4087cd:	8d 49 00             	lea    0x0(%ecx),%ecx
4087d0:	66 8b 08             	mov    (%eax),%cx
4087d3:	83 c0 02             	add    $0x2,%eax
4087d6:	66 85 c9             	test   %cx,%cx
4087d9:	75 f5                	jne    0x4087d0
4087db:	2b c2                	sub    %edx,%eax
4087dd:	d1 f8                	sar    $1,%eax
4087df:	0f 84 dc 00 00 00    	je     0x4088c1
4087e5:	85 f6                	test   %esi,%esi
4087e7:	74 10                	je     0x4087f9
4087e9:	6a 2c                	push   $0x2c
4087eb:	8d 54 24 28          	lea    0x28(%esp),%edx
4087ef:	52                   	push   %edx
4087f0:	53                   	push   %ebx
4087f1:	e8 aa e9 ff ff       	call   0x4071a0
4087f6:	83 c4 0c             	add    $0xc,%esp
4087f9:	6a 2c                	push   $0x2c
4087fb:	8d 44 24 28          	lea    0x28(%esp),%eax
4087ff:	50                   	push   %eax
408800:	53                   	push   %ebx
408801:	e8 4a e8 ff ff       	call   0x407050
408806:	83 c4 0c             	add    $0xc,%esp
408809:	85 c0                	test   %eax,%eax
40880b:	0f 85 cb 00 00 00    	jne    0x4088dc
408811:	8b c3                	mov    %ebx,%eax
408813:	8d 50 02             	lea    0x2(%eax),%edx
408816:	66 8b 08             	mov    (%eax),%cx
408819:	83 c0 02             	add    $0x2,%eax
40881c:	66 85 c9             	test   %cx,%cx
40881f:	75 f5                	jne    0x408816
408821:	2b c2                	sub    %edx,%eax
408823:	d1 f8                	sar    $1,%eax
408825:	8b d0                	mov    %eax,%edx
408827:	8d 44 24 24          	lea    0x24(%esp),%eax
40882b:	8d 70 02             	lea    0x2(%eax),%esi
40882e:	8b ff                	mov    %edi,%edi
408830:	66 8b 08             	mov    (%eax),%cx
408833:	83 c0 02             	add    $0x2,%eax
408836:	66 85 c9             	test   %cx,%cx
408839:	75 f5                	jne    0x408830
40883b:	2b c6                	sub    %esi,%eax
40883d:	d1 f8                	sar    $1,%eax
40883f:	8d 74 10 02          	lea    0x2(%eax,%edx,1),%esi
408843:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
408846:	51                   	push   %ecx
408847:	e8 ca 81 02 00       	call   0x430a16
40884c:	8b f8                	mov    %eax,%edi
40884e:	8b c3                	mov    %ebx,%eax
408850:	83 c4 04             	add    $0x4,%esp
408853:	8d 50 02             	lea    0x2(%eax),%edx
408856:	66 8b 08             	mov    (%eax),%cx
408859:	83 c0 02             	add    $0x2,%eax
40885c:	66 85 c9             	test   %cx,%cx
40885f:	75 f5                	jne    0x408856
408861:	2b c2                	sub    %edx,%eax
408863:	d1 f8                	sar    $1,%eax
408865:	75 22                	jne    0x408889
408867:	56                   	push   %esi
408868:	8d 54 24 28          	lea    0x28(%esp),%edx
40886c:	52                   	push   %edx
40886d:	57                   	push   %edi
40886e:	e8 37 82 02 00       	call   0x430aaa
408873:	83 c4 0c             	add    $0xc,%esp
408876:	53                   	push   %ebx
408877:	e8 21 81 02 00       	call   0x43099d
40887c:	89 7c 24 14          	mov    %edi,0x14(%esp)
408880:	8b 7c 24 18          	mov    0x18(%esp),%edi
408884:	83 c4 04             	add    $0x4,%esp
408887:	eb 53                	jmp    0x4088dc
408889:	85 ed                	test   %ebp,%ebp
40888b:	74 08                	je     0x408895
40888d:	8b cb                	mov    %ebx,%ecx
40888f:	8d 44 24 24          	lea    0x24(%esp),%eax
408893:	eb 06                	jmp    0x40889b
408895:	8d 4c 24 24          	lea    0x24(%esp),%ecx
408899:	8b c3                	mov    %ebx,%eax
40889b:	51                   	push   %ecx
40889c:	6a 2c                	push   $0x2c
40889e:	50                   	push   %eax
40889f:	68 64 ce 45 00       	push   $0x45ce64
4088a4:	56                   	push   %esi
4088a5:	57                   	push   %edi
4088a6:	e8 b4 7d 02 00       	call   0x43065f
4088ab:	83 c4 18             	add    $0x18,%esp
4088ae:	53                   	push   %ebx
4088af:	e8 e9 80 02 00       	call   0x43099d
4088b4:	89 7c 24 14          	mov    %edi,0x14(%esp)
4088b8:	8b 7c 24 18          	mov    0x18(%esp),%edi
4088bc:	83 c4 04             	add    $0x4,%esp
4088bf:	eb 1b                	jmp    0x4088dc
4088c1:	8d 44 24 24          	lea    0x24(%esp),%eax
4088c5:	50                   	push   %eax
4088c6:	e8 cd f9 03 00       	call   0x448298
4088cb:	83 c4 04             	add    $0x4,%esp
4088ce:	89 44 24 10          	mov    %eax,0x10(%esp)
4088d2:	eb 08                	jmp    0x4088dc
4088d4:	e8 c7 e8 ff ff       	call   0x4071a0
4088d9:	83 c4 0c             	add    $0xc,%esp
4088dc:	8b 9c 24 44 0e 00 00 	mov    0xe44(%esp),%ebx
4088e3:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4088e7:	f6 c3 08             	test   $0x8,%bl
4088ea:	74 24                	je     0x408910
4088ec:	8b 84 24 4c 0e 00 00 	mov    0xe4c(%esp),%eax
4088f3:	85 c0                	test   %eax,%eax
4088f5:	74 42                	je     0x408939
4088f7:	8b d3                	mov    %ebx,%edx
4088f9:	6a 2c                	push   $0x2c
4088fb:	c1 ea 04             	shr    $0x4,%edx
4088fe:	83 e2 01             	and    $0x1,%edx
408901:	52                   	push   %edx
408902:	6a 01                	push   $0x1
408904:	50                   	push   %eax
408905:	55                   	push   %ebp
408906:	e8 15 e9 ff ff       	call   0x407220
40890b:	83 c4 14             	add    $0x14,%esp
40890e:	eb 32                	jmp    0x408942
408910:	f6 c3 04             	test   $0x4,%bl
408913:	74 29                	je     0x40893e
408915:	8b 84 24 48 0e 00 00 	mov    0xe48(%esp),%eax
40891c:	85 c0                	test   %eax,%eax
40891e:	74 19                	je     0x408939
408920:	8b cb                	mov    %ebx,%ecx
408922:	6a 2c                	push   $0x2c
408924:	c1 e9 04             	shr    $0x4,%ecx
408927:	83 e1 01             	and    $0x1,%ecx
40892a:	51                   	push   %ecx
40892b:	6a 00                	push   $0x0
40892d:	50                   	push   %eax
40892e:	55                   	push   %ebp
40892f:	e8 ec e8 ff ff       	call   0x407220
408934:	83 c4 14             	add    $0x14,%esp
408937:	eb 09                	jmp    0x408942
408939:	bf 57 00 00 00       	mov    $0x57,%edi
40893e:	8b 44 24 18          	mov    0x18(%esp),%eax
408942:	8b b4 24 50 0e 00 00 	mov    0xe50(%esp),%esi
408949:	85 f6                	test   %esi,%esi
40894b:	74 0a                	je     0x408957
40894d:	85 c0                	test   %eax,%eax
40894f:	75 06                	jne    0x408957
408951:	c7 06 fa ff ff ff    	movl   $0xfffffffa,(%esi)
408957:	83 ff 57             	cmp    $0x57,%edi
40895a:	75 10                	jne    0x40896c
40895c:	5f                   	pop    %edi
40895d:	5e                   	pop    %esi
40895e:	5d                   	pop    %ebp
40895f:	b8 57 00 00 00       	mov    $0x57,%eax
408964:	5b                   	pop    %ebx
408965:	81 c4 2c 0e 00 00    	add    $0xe2c,%esp
40896b:	c3                   	ret
40896c:	85 c0                	test   %eax,%eax
40896e:	75 15                	jne    0x408985
408970:	f6 c3 40             	test   $0x40,%bl
408973:	74 10                	je     0x408985
408975:	6a 2c                	push   $0x2c
408977:	8d 54 24 28          	lea    0x28(%esp),%edx