40547f:	cc                   	int3
405480:	8b 44 24 08          	mov    0x8(%esp),%eax
405484:	56                   	push   %esi
405485:	8b 74 24 08          	mov    0x8(%esp),%esi
405489:	6a 00                	push   $0x0
40548b:	50                   	push   %eax
40548c:	e8 2f fe ff ff       	call   0x4052c0
405491:	83 c4 08             	add    $0x8,%esp
405494:	5e                   	pop    %esi
405495:	c3                   	ret
405496:	cc                   	int3
405497:	cc                   	int3
405498:	cc                   	int3
405499:	cc                   	int3
40549a:	cc                   	int3
40549b:	cc                   	int3
40549c:	cc                   	int3
40549d:	cc                   	int3
40549e:	cc                   	int3
40549f:	cc                   	int3
4054a0:	8b 44 24 04          	mov    0x4(%esp),%eax
4054a4:	c2 04 00             	ret    $0x4
4054a7:	cc                   	int3
4054a8:	cc                   	int3
4054a9:	cc                   	int3
4054aa:	cc                   	int3
4054ab:	cc                   	int3
4054ac:	cc                   	int3
4054ad:	cc                   	int3
4054ae:	cc                   	int3
4054af:	cc                   	int3
4054b0:	81 ec d0 02 00 00    	sub    $0x2d0,%esp
4054b6:	8d 04 24             	lea    (%esp),%eax
4054b9:	50                   	push   %eax
4054ba:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
4054c1:	00
4054c2:	e8 49 d6 ff ff       	call   0x402b10
4054c7:	83 c4 04             	add    $0x4,%esp
4054ca:	81 3c 24 8c 00 00 00 	cmpl   $0x8c,(%esp)
4054d1:	72 09                	jb     0x4054dc
4054d3:	33 c0                	xor    %eax,%eax
4054d5:	81 c4 d0 02 00 00    	add    $0x2d0,%esp
4054db:	c3                   	ret
4054dc:	83 3d 54 07 47 00 00 	cmpl   $0x0,0x470754
4054e3:	75 50                	jne    0x405535
4054e5:	56                   	push   %esi
4054e6:	6a 00                	push   $0x0
4054e8:	6a 04                	push   $0x4
4054ea:	6a 00                	push   $0x0
4054ec:	68 a0 54 40 00       	push   $0x4054a0
4054f1:	6a 00                	push   $0x0
4054f3:	6a 00                	push   $0x0
4054f5:	ff 15 94 34 47 00    	call   *0x473494
4054fb:	8b f0                	mov    %eax,%esi
4054fd:	85 f6                	test   %esi,%esi
4054ff:	74 33                	je     0x405534
405501:	8d 4c 24 08          	lea    0x8(%esp),%ecx
405505:	51                   	push   %ecx
405506:	56                   	push   %esi
405507:	c7 44 24 10 07 00 01 	movl   $0x10007,0x10(%esp)
40550e:	00
40550f:	ff 15 90 34 47 00    	call   *0x473490
405515:	85 c0                	test   %eax,%eax
405517:	74 0d                	je     0x405526
405519:	8b 94 24 c0 00 00 00 	mov    0xc0(%esp),%edx
405520:	89 15 54 07 47 00    	mov    %edx,0x470754
405526:	56                   	push   %esi
405527:	ff 15 8c 34 47 00    	call   *0x47348c
40552d:	56                   	push   %esi
40552e:	ff 15 2c 34 47 00    	call   *0x47342c
405534:	5e                   	pop    %esi
405535:	a1 54 07 47 00       	mov    0x470754,%eax
40553a:	81 c4 d0 02 00 00    	add    $0x2d0,%esp
405540:	c3                   	ret
405541:	cc                   	int3
405542:	cc                   	int3
405543:	cc                   	int3
405544:	cc                   	int3
405545:	cc                   	int3
405546:	cc                   	int3
405547:	cc                   	int3
405548:	cc                   	int3
405549:	cc                   	int3
40554a:	cc                   	int3
40554b:	cc                   	int3
40554c:	cc                   	int3
40554d:	cc                   	int3
40554e:	cc                   	int3
40554f:	cc                   	int3
405550:	81 ec 1c 03 00 00    	sub    $0x31c,%esp
405556:	53                   	push   %ebx
405557:	55                   	push   %ebp
405558:	8b ac 24 38 03 00 00 	mov    0x338(%esp),%ebp
40555f:	33 c0                	xor    %eax,%eax
405561:	57                   	push   %edi
405562:	33 db                	xor    %ebx,%ebx
405564:	68 c8 02 00 00       	push   $0x2c8
405569:	89 44 24 24          	mov    %eax,0x24(%esp)
40556d:	89 44 24 28          	mov    %eax,0x28(%esp)
405571:	89 44 24 2c          	mov    %eax,0x2c(%esp)
405575:	89 44 24 30          	mov    %eax,0x30(%esp)
405579:	8d 44 24 64          	lea    0x64(%esp),%eax
40557d:	53                   	push   %ebx
40557e:	50                   	push   %eax
40557f:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
405583:	89 5c 24 28          	mov    %ebx,0x28(%esp)
405587:	89 5c 24 68          	mov    %ebx,0x68(%esp)
40558b:	e8 e0 b5 02 00       	call   0x430b70
405590:	8b 8c 24 3c 03 00 00 	mov    0x33c(%esp),%ecx
405597:	56                   	push   %esi
405598:	89 5c 24 24          	mov    %ebx,0x24(%esp)
40559c:	89 5c 24 28          	mov    %ebx,0x28(%esp)
4055a0:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
4055a4:	e8 17 d7 ff ff       	call   0x402cc0
4055a9:	83 c4 10             	add    $0x10,%esp
4055ac:	8b f8                	mov    %eax,%edi
4055ae:	39 1d 50 07 47 00    	cmp    %ebx,0x470750
4055b4:	75 24                	jne    0x4055da
4055b6:	68 00 c9 45 00       	push   $0x45c900
4055bb:	68 b4 be 45 00       	push   $0x45beb4
4055c0:	ff 15 38 34 47 00    	call   *0x473438
4055c6:	50                   	push   %eax
4055c7:	ff 15 34 34 47 00    	call   *0x473434
4055cd:	a3 50 07 47 00       	mov    %eax,0x470750
4055d2:	3b c3                	cmp    %ebx,%eax
4055d4:	0f 84 90 02 00 00    	je     0x40586a
4055da:	8d 54 24 14          	lea    0x14(%esp),%edx
4055de:	52                   	push   %edx
4055df:	53                   	push   %ebx
4055e0:	53                   	push   %ebx
4055e1:	53                   	push   %ebx
4055e2:	53                   	push   %ebx
4055e3:	6a 04                	push   $0x4
4055e5:	6a 06                	push   $0x6
4055e7:	56                   	push   %esi
4055e8:	ff 15 a4 33 47 00    	call   *0x4733a4
4055ee:	8b 44 24 14          	mov    0x14(%esp),%eax
4055f2:	6a 04                	push   $0x4
4055f4:	68 00 20 00 00       	push   $0x2000
4055f9:	8d 8d 00 f0 ff ff    	lea    -0x1000(%ebp),%ecx
4055ff:	51                   	push   %ecx
405600:	53                   	push   %ebx
405601:	56                   	push   %esi
405602:	c7 44 24 4c 18 00 00 	movl   $0x18,0x4c(%esp)
405609:	00
40560a:	89 5c 24 50          	mov    %ebx,0x50(%esp)
40560e:	c7 44 24 58 40 00 00 	movl   $0x40,0x58(%esp)
405615:	00
405616:	89 5c 24 54          	mov    %ebx,0x54(%esp)
40561a:	89 44 24 5c          	mov    %eax,0x5c(%esp)
40561e:	89 5c 24 60          	mov    %ebx,0x60(%esp)
405622:	ff 15 a4 34 47 00    	call   *0x4734a4
405628:	8b 8c 24 50 03 00 00 	mov    0x350(%esp),%ecx
40562f:	89 44 24 2c          	mov    %eax,0x2c(%esp)
405633:	3b cb                	cmp    %ebx,%ecx
405635:	74 02                	je     0x405639
405637:	89 01                	mov    %eax,(%ecx)
405639:	3b c3                	cmp    %ebx,%eax
40563b:	0f 84 4c 02 00 00    	je     0x40588d
405641:	05 00 10 00 00       	add    $0x1000,%eax
405646:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40564a:	8d 84 28 00 e0 ff ff 	lea    -0x2000(%eax,%ebp,1),%eax
405651:	89 44 24 24          	mov    %eax,0x24(%esp)
405655:	3b fb                	cmp    %ebx,%edi
405657:	74 09                	je     0x405662
405659:	2d 00 10 00 00       	sub    $0x1000,%eax
40565e:	89 44 24 24          	mov    %eax,0x24(%esp)
405662:	8b 8c 24 40 03 00 00 	mov    0x340(%esp),%ecx
405669:	8b d0                	mov    %eax,%edx
40566b:	2b d1                	sub    %ecx,%edx
40566d:	81 c1 00 10 00 00    	add    $0x1000,%ecx
405673:	2b c1                	sub    %ecx,%eax
405675:	89 54 24 28          	mov    %edx,0x28(%esp)
405679:	3b fb                	cmp    %ebx,%edi
40567b:	74 06                	je     0x405683
40567d:	81 c1 00 10 00 00    	add    $0x1000,%ecx
405683:	6a 04                	push   $0x4
405685:	68 00 10 00 00       	push   $0x1000
40568a:	51                   	push   %ecx
40568b:	50                   	push   %eax
40568c:	56                   	push   %esi
40568d:	ff 15 a4 34 47 00    	call   *0x4734a4
405693:	3b c3                	cmp    %ebx,%eax
405695:	0f 84 cf 01 00 00    	je     0x40586a
40569b:	8d 4c 24 50          	lea    0x50(%esp),%ecx
40569f:	51                   	push   %ecx
4056a0:	68 04 01 00 00       	push   $0x104
4056a5:	68 00 10 00 00       	push   $0x1000
4056aa:	50                   	push   %eax
4056ab:	56                   	push   %esi
4056ac:	ff 15 a0 34 47 00    	call   *0x4734a0
4056b2:	85 c0                	test   %eax,%eax
4056b4:	0f 84 b0 01 00 00    	je     0x40586a
4056ba:	8d 54 24 18          	lea    0x18(%esp),%edx
4056be:	52                   	push   %edx
4056bf:	e8 4c d4 ff ff       	call   0x402b10
4056c4:	83 c4 04             	add    $0x4,%esp
4056c7:	8d 44 24 5c          	lea    0x5c(%esp),%eax
4056cb:	50                   	push   %eax
4056cc:	c7 44 24 60 07 00 01 	movl   $0x10007,0x60(%esp)
4056d3:	00
4056d4:	ff 15 48 34 47 00    	call   *0x473448
4056da:	50                   	push   %eax
4056db:	ff 15 90 34 47 00    	call   *0x473490
4056e1:	8b 44 24 24          	mov    0x24(%esp),%eax
4056e5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4056e9:	8b e8                	mov    %eax,%ebp
4056eb:	89 ac 24 20 01 00 00 	mov    %ebp,0x120(%esp)
4056f2:	81 f9 8c 00 00 00    	cmp    $0x8c,%ecx
4056f8:	72 0a                	jb     0x405704
4056fa:	8d 68 c8             	lea    -0x38(%eax),%ebp
4056fd:	89 ac 24 20 01 00 00 	mov    %ebp,0x120(%esp)
405704:	8b 94 24 34 03 00 00 	mov    0x334(%esp),%edx
40570b:	3b d3                	cmp    %ebx,%edx
40570d:	74 71                	je     0x405780
40570f:	3b fb                	cmp    %ebx,%edi
405711:	74 11                	je     0x405724
405713:	8b ac 24 38 03 00 00 	mov    0x338(%esp),%ebp
40571a:	2b c5                	sub    %ebp,%eax
40571c:	8d b8 00 10 00 00    	lea    0x1000(%eax),%edi
405722:	eb 25                	jmp    0x405749
405724:	8b 8c 24 38 03 00 00 	mov    0x338(%esp),%ecx
40572b:	83 c1 0f             	add    $0xf,%ecx
40572e:	83 e1 f0             	and    $0xfffffff0,%ecx
405731:	2b e9                	sub    %ecx,%ebp
405733:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
405737:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40573b:	89 ac 24 20 01 00 00 	mov    %ebp,0x120(%esp)
405742:	8b ac 24 38 03 00 00 	mov    0x338(%esp),%ebp
405749:	8d 44 24 0c          	lea    0xc(%esp),%eax
40574d:	50                   	push   %eax
40574e:	55                   	push   %ebp
40574f:	52                   	push   %edx
405750:	57                   	push   %edi
405751:	56                   	push   %esi
405752:	ff 15 9c 34 47 00    	call   *0x47349c
405758:	85 c0                	test   %eax,%eax
40575a:	0f 84 0a 01 00 00    	je     0x40586a
405760:	39 6c 24 0c          	cmp    %ebp,0xc(%esp)
405764:	0f 85 00 01 00 00    	jne    0x40586a
40576a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40576e:	81 f9 8c 00 00 00    	cmp    $0x8c,%ecx
405774:	72 0e                	jb     0x405784
405776:	83 ac 24 20 01 00 00 	subl   $0x38,0x120(%esp)
40577d:	38
40577e:	eb 04                	jmp    0x405784
405780:	8b 7c 24 0c          	mov    0xc(%esp),%edi
405784:	38 9c 24 4c 03 00 00 	cmp    %bl,0x34c(%esp)
40578b:	74 44                	je     0x4057d1
40578d:	81 f9 8c 00 00 00    	cmp    $0x8c,%ecx
405793:	72 19                	jb     0x4057ae
405795:	68 ec c8 45 00       	push   $0x45c8ec
40579a:	68 b4 be 45 00       	push   $0x45beb4
40579f:	ff 15 38 34 47 00    	call   *0x473438
4057a5:	50                   	push   %eax
4057a6:	ff 15 34 34 47 00    	call   *0x473434
4057ac:	eb 05                	jmp    0x4057b3
4057ae:	e8 fd fc ff ff       	call   0x4054b0
4057b3:	8b 8c 24 2c 03 00 00 	mov    0x32c(%esp),%ecx
4057ba:	89 84 24 14 01 00 00 	mov    %eax,0x114(%esp)
4057c1:	89 8c 24 0c 01 00 00 	mov    %ecx,0x10c(%esp)
4057c8:	89 bc 24 00 01 00 00 	mov    %edi,0x100(%esp)
4057cf:	eb 46                	jmp    0x405817
4057d1:	8b 94 24 2c 03 00 00 	mov    0x32c(%esp),%edx
4057d8:	8b 84 24 20 01 00 00 	mov    0x120(%esp),%eax
4057df:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4057e3:	51                   	push   %ecx
4057e4:	6a 08                	push   $0x8
4057e6:	89 94 24 1c 01 00 00 	mov    %edx,0x11c(%esp)
4057ed:	8d 54 24 38          	lea    0x38(%esp),%edx
4057f1:	83 e8 08             	sub    $0x8,%eax
4057f4:	52                   	push   %edx
4057f5:	50                   	push   %eax
4057f6:	56                   	push   %esi
4057f7:	89 84 24 34 01 00 00 	mov    %eax,0x134(%esp)
4057fe:	89 7c 24 48          	mov    %edi,0x48(%esp)
405802:	89 5c 24 44          	mov    %ebx,0x44(%esp)
405806:	ff 15 9c 34 47 00    	call   *0x47349c
40580c:	85 c0                	test   %eax,%eax
40580e:	74 5a                	je     0x40586a
405810:	83 7c 24 0c 08       	cmpl   $0x8,0xc(%esp)
405815:	75 53                	jne    0x40586a
405817:	39 9c 24 14 01 00 00 	cmp    %ebx,0x114(%esp)
40581e:	74 4a                	je     0x40586a
405820:	38 9c 24 44 03 00 00 	cmp    %bl,0x344(%esp)
405827:	8d 54 24 1c          	lea    0x1c(%esp),%edx
40582b:	0f 95 c0             	setne  %al
40582e:	0f b6 c8             	movzbl %al,%ecx
405831:	51                   	push   %ecx
405832:	52                   	push   %edx
405833:	8d 44 24 64          	lea    0x64(%esp),%eax
405837:	50                   	push   %eax
405838:	8d 4c 24 60          	lea    0x60(%esp),%ecx
40583c:	51                   	push   %ecx
40583d:	56                   	push   %esi
40583e:	8d 54 24 4c          	lea    0x4c(%esp),%edx
405842:	52                   	push   %edx
405843:	68 ff 03 1f 00       	push   $0x1f03ff
405848:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40584c:	50                   	push   %eax
40584d:	ff 15 50 07 47 00    	call   *0x470750
405853:	85 c0                	test   %eax,%eax
405855:	78 13                	js     0x40586a
405857:	8b 84 24 48 03 00 00 	mov    0x348(%esp),%eax
40585e:	3b c3                	cmp    %ebx,%eax
405860:	74 2f                	je     0x405891
405862:	8b 4c 24 58          	mov    0x58(%esp),%ecx
405866:	89 08                	mov    %ecx,(%eax)
405868:	eb 27                	jmp    0x405891
40586a:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40586e:	3b c3                	cmp    %ebx,%eax
405870:	74 1b                	je     0x40588d
405872:	68 00 80 00 00       	push   $0x8000
405877:	53                   	push   %ebx
405878:	50                   	push   %eax
405879:	56                   	push   %esi
40587a:	ff 15 98 34 47 00    	call   *0x473498
405880:	8b 84 24 50 03 00 00 	mov    0x350(%esp),%eax
405887:	3b c3                	cmp    %ebx,%eax
405889:	74 02                	je     0x40588d
40588b:	89 18                	mov    %ebx,(%eax)
40588d:	89 5c 24 10          	mov    %ebx,0x10(%esp)
405891:	8b 44 24 14          	mov    0x14(%esp),%eax
405895:	5f                   	pop    %edi
405896:	5d                   	pop    %ebp
405897:	3b c3                	cmp    %ebx,%eax
405899:	5b                   	pop    %ebx
40589a:	74 07                	je     0x4058a3
40589c:	50                   	push   %eax
40589d:	ff 15 60 34 47 00    	call   *0x473460
4058a3:	8b 44 24 04          	mov    0x4(%esp),%eax
4058a7:	81 c4 1c 03 00 00    	add    $0x31c,%esp
4058ad:	c3                   	ret
4058ae:	cc                   	int3
4058af:	cc                   	int3
4058b0:	56                   	push   %esi
4058b1:	8b 74 24 08          	mov    0x8(%esp),%esi
4058b5:	85 c9                	test   %ecx,%ecx
4058b7:	74 06                	je     0x4058bf
4058b9:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4058bf:	a8 01                	test   $0x1,%al
4058c1:	74 2d                	je     0x4058f0
4058c3:	51                   	push   %ecx
4058c4:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4058c8:	d1 e8                	shr    $1,%eax
4058ca:	24 01                	and    $0x1,%al
4058cc:	0f b6 c0             	movzbl %al,%eax
4058cf:	50                   	push   %eax
4058d0:	8b 44 24 14          	mov    0x14(%esp),%eax
4058d4:	6a 00                	push   $0x0