405578:	8b 45 f4             	mov    -0xc(%ebp),%eax
40557b:	8d 04 83             	lea    (%ebx,%eax,4),%eax
40557e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405581:	8b d6                	mov    %esi,%edx
405583:	e8 88 fe ff ff       	call   0x405410
405588:	ff 45 f4             	incl   -0xc(%ebp)
40558b:	4f                   	dec    %edi
40558c:	75 e6                	jne    0x405574
40558e:	8b 45 fc             	mov    -0x4(%ebp),%eax
405591:	89 18                	mov    %ebx,(%eax)
405593:	5f                   	pop    %edi
405594:	5e                   	pop    %esi
405595:	5b                   	pop    %ebx
405596:	8b e5                	mov    %ebp,%esp
405598:	5d                   	pop    %ebp
405599:	c2 04 00             	ret    $0x4
40559c:	54                   	push   %esp
40559d:	83 04 24 04          	addl   $0x4,(%esp)
4055a1:	e8 6a fe ff ff       	call   0x405410
4055a6:	c3                   	ret
4055a7:	90                   	nop
4055a8:	53                   	push   %ebx
4055a9:	85 c0                	test   %eax,%eax
4055ab:	74 12                	je     0x4055bf
4055ad:	8b d8                	mov    %eax,%ebx
4055af:	83 eb 04             	sub    $0x4,%ebx
4055b2:	8b 1b                	mov    (%ebx),%ebx
4055b4:	53                   	push   %ebx
4055b5:	51                   	push   %ecx
4055b6:	33 c9                	xor    %ecx,%ecx
4055b8:	e8 0b 00 00 00       	call   0x4055c8
4055bd:	5b                   	pop    %ebx
4055be:	c3                   	ret
4055bf:	8b c1                	mov    %ecx,%eax
4055c1:	e8 f6 00 00 00       	call   0x4056bc
4055c6:	5b                   	pop    %ebx
4055c7:	c3                   	ret
4055c8:	55                   	push   %ebp
4055c9:	8b ec                	mov    %esp,%ebp
4055cb:	83 c4 f0             	add    $0xfffffff0,%esp
4055ce:	53                   	push   %ebx
4055cf:	56                   	push   %esi
4055d0:	57                   	push   %edi
4055d1:	8b f9                	mov    %ecx,%edi
4055d3:	89 55 f8             	mov    %edx,-0x8(%ebp)
4055d6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4055d9:	8b 75 0c             	mov    0xc(%ebp),%esi
4055dc:	33 db                	xor    %ebx,%ebx
4055de:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4055e2:	0f 84 ba 00 00 00    	je     0x4056a2
4055e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4055eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4055ee:	85 ff                	test   %edi,%edi
4055f0:	7d 04                	jge    0x4055f6
4055f2:	03 f7                	add    %edi,%esi
4055f4:	33 ff                	xor    %edi,%edi
4055f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4055f9:	83 e8 04             	sub    $0x4,%eax
4055fc:	8b 00                	mov    (%eax),%eax
4055fe:	3b c7                	cmp    %edi,%eax
405600:	7d 02                	jge    0x405604
405602:	8b f8                	mov    %eax,%edi
405604:	8b d0                	mov    %eax,%edx
405606:	2b d7                	sub    %edi,%edx
405608:	3b f2                	cmp    %edx,%esi
40560a:	7e 02                	jle    0x40560e
40560c:	8b f2                	mov    %edx,%esi
40560e:	85 f6                	test   %esi,%esi
405610:	7d 02                	jge    0x405614
405612:	33 f6                	xor    %esi,%esi
405614:	85 f6                	test   %esi,%esi
405616:	0f 8e 86 00 00 00    	jle    0x4056a2
40561c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40561f:	0f b6 40 01          	movzbl 0x1(%eax),%eax
405623:	01 45 f0             	add    %eax,-0x10(%ebp)
405626:	8b 45 f0             	mov    -0x10(%ebp),%eax
405629:	8b 40 02             	mov    0x2(%eax),%eax
40562c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40562f:	8b 45 f0             	mov    -0x10(%ebp),%eax
405632:	8b 40 06             	mov    0x6(%eax),%eax
405635:	85 c0                	test   %eax,%eax
405637:	74 07                	je     0x405640
405639:	8b 00                	mov    (%eax),%eax
40563b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40563e:	eb 05                	jmp    0x405645
405640:	33 c0                	xor    %eax,%eax
405642:	89 45 f0             	mov    %eax,-0x10(%ebp)
405645:	8b c6                	mov    %esi,%eax
405647:	f7 6d f4             	imull  -0xc(%ebp)
40564a:	83 c0 08             	add    $0x8,%eax
40564d:	e8 26 d1 ff ff       	call   0x402778
405652:	8b d8                	mov    %eax,%ebx
405654:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40565a:	83 c3 04             	add    $0x4,%ebx
40565d:	89 33                	mov    %esi,(%ebx)
40565f:	83 c3 04             	add    $0x4,%ebx
405662:	0f af 7d f4          	imul   -0xc(%ebp),%edi
405666:	01 7d fc             	add    %edi,-0x4(%ebp)
405669:	85 f6                	test   %esi,%esi
40566b:	7e 35                	jle    0x4056a2
40566d:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
405671:	74 1f                	je     0x405692
405673:	8b d6                	mov    %esi,%edx
405675:	0f af 55 f4          	imul   -0xc(%ebp),%edx
405679:	8b c3                	mov    %ebx,%eax
40567b:	33 c9                	xor    %ecx,%ecx
40567d:	e8 ea d6 ff ff       	call   0x402d6c
405682:	56                   	push   %esi
405683:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405686:	8b 55 fc             	mov    -0x4(%ebp),%edx
405689:	8b c3                	mov    %ebx,%eax
40568b:	e8 60 fd ff ff       	call   0x4053f0
405690:	eb 10                	jmp    0x4056a2
405692:	8b ce                	mov    %esi,%ecx
405694:	0f af 4d f4          	imul   -0xc(%ebp),%ecx
405698:	8b d3                	mov    %ebx,%edx
40569a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40569d:	e8 d2 d2 ff ff       	call   0x402974
4056a2:	8b 45 08             	mov    0x8(%ebp),%eax
4056a5:	8b 55 f8             	mov    -0x8(%ebp),%edx
4056a8:	e8 5b fd ff ff       	call   0x405408
4056ad:	8b 45 08             	mov    0x8(%ebp),%eax
4056b0:	89 18                	mov    %ebx,(%eax)
4056b2:	5f                   	pop    %edi
4056b3:	5e                   	pop    %esi
4056b4:	5b                   	pop    %ebx
4056b5:	8b e5                	mov    %ebp,%esp
4056b7:	5d                   	pop    %ebp
4056b8:	c2 08 00             	ret    $0x8
4056bb:	90                   	nop
4056bc:	8b 08                	mov    (%eax),%ecx
4056be:	85 c9                	test   %ecx,%ecx
4056c0:	74 33                	je     0x4056f5
4056c2:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4056c8:	f0 ff 49 f8          	lock decl -0x8(%ecx)
4056cc:	75 27                	jne    0x4056f5
4056ce:	50                   	push   %eax
4056cf:	89 c8                	mov    %ecx,%eax
4056d1:	31 c9                	xor    %ecx,%ecx
4056d3:	8a 4a 01             	mov    0x1(%edx),%cl
4056d6:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
4056da:	85 d2                	test   %edx,%edx
4056dc:	74 0e                	je     0x4056ec
4056de:	8b 48 fc             	mov    -0x4(%eax),%ecx
4056e1:	85 c9                	test   %ecx,%ecx
4056e3:	74 07                	je     0x4056ec
4056e5:	8b 12                	mov    (%edx),%edx
4056e7:	e8 2c f5 ff ff       	call   0x404c18
4056ec:	83 e8 08             	sub    $0x8,%eax
4056ef:	e8 a4 d0 ff ff       	call   0x402798
4056f4:	58                   	pop    %eax
4056f5:	c3                   	ret
4056f6:	8b c0                	mov    %eax,%eax
4056f8:	53                   	push   %ebx
4056f9:	8b 18                	mov    (%eax),%ebx
4056fb:	85 d2                	test   %edx,%edx
4056fd:	74 04                	je     0x405703
4056ff:	f0 ff 42 f8          	lock incl -0x8(%edx)
405703:	85 db                	test   %ebx,%ebx
405705:	74 14                	je     0x40571b
405707:	f0 ff 4b f8          	lock decl -0x8(%ebx)
40570b:	75 0e                	jne    0x40571b
40570d:	50                   	push   %eax
40570e:	52                   	push   %edx
40570f:	89 ca                	mov    %ecx,%edx
405711:	ff 43 f8             	incl   -0x8(%ebx)
405714:	e8 a3 ff ff ff       	call   0x4056bc
405719:	5a                   	pop    %edx
40571a:	58                   	pop    %eax
40571b:	89 10                	mov    %edx,(%eax)
40571d:	5b                   	pop    %ebx
40571e:	c3                   	ret
40571f:	90                   	nop
405720:	85 c0                	test   %eax,%eax
405722:	74 04                	je     0x405728
405724:	f0 ff 40 f8          	lock incl -0x8(%eax)
405728:	c3                   	ret
405729:	8d 40 00             	lea    0x0(%eax),%eax
40572c:	83 c4 e4             	add    $0xffffffe4,%esp
40572f:	6a 1c                	push   $0x1c
405731:	8d 54 24 04          	lea    0x4(%esp),%edx
405735:	52                   	push   %edx
405736:	50                   	push   %eax
405737:	e8 4c bc ff ff       	call   0x401388
40573c:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
405743:	00
405744:	75 06                	jne    0x40574c
405746:	8b 44 24 04          	mov    0x4(%esp),%eax
40574a:	eb 02                	jmp    0x40574e
40574c:	33 c0                	xor    %eax,%eax
40574e:	83 c4 1c             	add    $0x1c,%esp
405751:	c3                   	ret
405752:	8b c0                	mov    %eax,%eax
405754:	e8 d3 ff ff ff       	call   0x40572c
405759:	c3                   	ret
40575a:	8b c0                	mov    %eax,%eax
40575c:	53                   	push   %ebx
40575d:	56                   	push   %esi
40575e:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
405764:	8b d8                	mov    %eax,%ebx
405766:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
40576a:	75 2b                	jne    0x405797
40576c:	68 05 01 00 00       	push   $0x105
405771:	8d 44 24 04          	lea    0x4(%esp),%eax
405775:	50                   	push   %eax
405776:	8b 43 04             	mov    0x4(%ebx),%eax
405779:	50                   	push   %eax
40577a:	e8 99 bb ff ff       	call   0x401318
40577f:	8b c4                	mov    %esp,%eax
405781:	b2 01                	mov    $0x1,%dl
405783:	e8 10 02 00 00       	call   0x405998
405788:	8b f0                	mov    %eax,%esi
40578a:	89 73 10             	mov    %esi,0x10(%ebx)
40578d:	85 f6                	test   %esi,%esi
40578f:	75 06                	jne    0x405797
405791:	8b 43 04             	mov    0x4(%ebx),%eax
405794:	89 43 10             	mov    %eax,0x10(%ebx)
405797:	8b 43 10             	mov    0x10(%ebx),%eax
40579a:	81 c4 08 01 00 00    	add    $0x108,%esp
4057a0:	5e                   	pop    %esi
4057a1:	5b                   	pop    %ebx
4057a2:	c3                   	ret
4057a3:	90                   	nop
4057a4:	8b 15 34 d0 48 00    	mov    0x48d034,%edx
4057aa:	85 d2                	test   %edx,%edx
4057ac:	74 1d                	je     0x4057cb
4057ae:	3b 42 04             	cmp    0x4(%edx),%eax
4057b1:	74 0a                	je     0x4057bd
4057b3:	3b 42 08             	cmp    0x8(%edx),%eax
4057b6:	74 05                	je     0x4057bd
4057b8:	3b 42 0c             	cmp    0xc(%edx),%eax
4057bb:	75 08                	jne    0x4057c5
4057bd:	8b c2                	mov    %edx,%eax
4057bf:	e8 98 ff ff ff       	call   0x40575c
4057c4:	c3                   	ret
4057c5:	8b 12                	mov    (%edx),%edx
4057c7:	85 d2                	test   %edx,%edx
4057c9:	75 e3                	jne    0x4057ae
4057cb:	c3                   	ret
4057cc:	eb 06                	jmp    0x4057d4
4057ce:	50                   	push   %eax
4057cf:	e8 04 bb ff ff       	call   0x4012d8
4057d4:	8a 10                	mov    (%eax),%dl
4057d6:	84 d2                	test   %dl,%dl
4057d8:	74 05                	je     0x4057df
4057da:	80 fa 5c             	cmp    $0x5c,%dl
4057dd:	75 ef                	jne    0x4057ce
4057df:	c3                   	ret
4057e0:	55                   	push   %ebp
4057e1:	8b ec                	mov    %esp,%ebp
4057e3:	81 c4 b0 fd ff ff    	add    $0xfffffdb0,%esp
4057e9:	53                   	push   %ebx
4057ea:	56                   	push   %esi
4057eb:	57                   	push   %edi
4057ec:	89 55 f8             	mov    %edx,-0x8(%ebp)
4057ef:	89 45 fc             	mov    %eax,-0x4(%ebp)
4057f2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4057f5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4057f8:	68 74 59 40 00       	push   $0x405974
4057fd:	e8 1e bb ff ff       	call   0x401320
405802:	8b f0                	mov    %eax,%esi
405804:	85 f6                	test   %esi,%esi
405806:	74 40                	je     0x405848
405808:	68 84 59 40 00       	push   $0x405984
40580d:	56                   	push   %esi
40580e:	e8 15 bb ff ff       	call   0x401328
405813:	89 c3                	mov    %eax,%ebx
405815:	85 db                	test   %ebx,%ebx
405817:	74 2f                	je     0x405848
405819:	68 05 01 00 00       	push   $0x105
40581e:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
405824:	50                   	push   %eax
405825:	8b 45 fc             	mov    -0x4(%ebp),%eax
405828:	50                   	push   %eax
405829:	ff d3                	call   *%ebx
40582b:	85 c0                	test   %eax,%eax
40582d:	74 19                	je     0x405848
40582f:	8b 45 f8             	mov    -0x8(%ebp),%eax
405832:	50                   	push   %eax
405833:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
405839:	50                   	push   %eax
40583a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40583d:	50                   	push   %eax
40583e:	e8 0d bb ff ff       	call   0x401350
405843:	e9 22 01 00 00       	jmp    0x40596a
405848:	8b 45 fc             	mov    -0x4(%ebp),%eax
40584b:	80 38 5c             	cmpb   $0x5c,(%eax)
40584e:	75 38                	jne    0x405888
405850:	8b 45 fc             	mov    -0x4(%ebp),%eax
405853:	80 78 01 5c          	cmpb   $0x5c,0x1(%eax)
405857:	0f 85 0d 01 00 00    	jne    0x40596a
40585d:	8b 45 fc             	mov    -0x4(%ebp),%eax
405860:	83 c0 02             	add    $0x2,%eax
405863:	e8 64 ff ff ff       	call   0x4057cc
405868:	8b f0                	mov    %eax,%esi
40586a:	80 3e 00             	cmpb   $0x0,(%esi)
40586d:	0f 84 f7 00 00 00    	je     0x40596a
405873:	8d 46 01             	lea    0x1(%esi),%eax
405876:	e8 51 ff ff ff       	call   0x4057cc
40587b:	8b f0                	mov    %eax,%esi
40587d:	80 3e 00             	cmpb   $0x0,(%esi)
405880:	0f 84 e4 00 00 00    	je     0x40596a
405886:	eb 06                	jmp    0x40588e
405888:	8b 75 fc             	mov    -0x4(%ebp),%esi
40588b:	83 c6 02             	add    $0x2,%esi
40588e:	8b de                	mov    %esi,%ebx
405890:	2b 5d fc             	sub    -0x4(%ebp),%ebx
405893:	8d 43 01             	lea    0x1(%ebx),%eax
405896:	50                   	push   %eax
405897:	8b 45 fc             	mov    -0x4(%ebp),%eax
40589a:	50                   	push   %eax
40589b:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4058a1:	50                   	push   %eax
4058a2:	e8 a9 ba ff ff       	call   0x401350
4058a7:	e9 a1 00 00 00       	jmp    0x40594d
4058ac:	8d 46 01             	lea    0x1(%esi),%eax
4058af:	e8 18 ff ff ff       	call   0x4057cc
4058b4:	8b f8                	mov    %eax,%edi
4058b6:	8b c7                	mov    %edi,%eax
4058b8:	2b c6                	sub    %esi,%eax
4058ba:	8b d0                	mov    %eax,%edx
4058bc:	03 d3                	add    %ebx,%edx
4058be:	42                   	inc    %edx
4058bf:	81 fa 05 01 00 00    	cmp    $0x105,%edx
4058c5:	0f 8f 9f 00 00 00    	jg     0x40596a
4058cb:	40                   	inc    %eax
4058cc:	50                   	push   %eax
4058cd:	56                   	push   %esi
4058ce:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4058d4:	03 c3                	add    %ebx,%eax
4058d6:	50                   	push   %eax
4058d7:	e8 74 ba ff ff       	call   0x401350
4058dc:	8d 85 b6 fe ff ff    	lea    -0x14a(%ebp),%eax
4058e2:	50                   	push   %eax
4058e3:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4058e9:	50                   	push   %eax
4058ea:	e8 09 ba ff ff       	call   0x4012f8
4058ef:	8b f0                	mov    %eax,%esi
4058f1:	83 fe ff             	cmp    $0xffffffff,%esi
4058f4:	74 74                	je     0x40596a
4058f6:	56                   	push   %esi
4058f7:	e8 f4 b9 ff ff       	call   0x4012f0
4058fc:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
405902:	50                   	push   %eax
405903:	e8 50 ba ff ff       	call   0x401358
405908:	8d 53 01             	lea    0x1(%ebx),%edx
40590b:	03 c2                	add    %edx,%eax
40590d:	40                   	inc    %eax
40590e:	3d 05 01 00 00       	cmp    $0x105,%eax
405913:	7f 55                	jg     0x40596a