40b52b:	74 c9                	je     0x40b4f6
40b52d:	39 5d 14             	cmp    %ebx,0x14(%ebp)
40b530:	74 c4                	je     0x40b4f6
40b532:	38 1f                	cmp    %bl,(%edi)
40b534:	75 0c                	jne    0x40b542
40b536:	e8 c0 38 00 00       	call   0x40edfb
40b53b:	6a 16                	push   $0x16
40b53d:	5e                   	pop    %esi
40b53e:	89 30                	mov    %esi,(%eax)
40b540:	eb c3                	jmp    0x40b505
40b542:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40b545:	ff 75 14             	push   0x14(%ebp)
40b548:	e8 39 02 00 00       	call   0x40b786
40b54d:	59                   	pop    %ecx
40b54e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b551:	8b 45 14             	mov    0x14(%ebp),%eax
40b554:	8b 40 0c             	mov    0xc(%eax),%eax
40b557:	90                   	nop
40b558:	c1 e8 0d             	shr    $0xd,%eax
40b55b:	a8 01                	test   $0x1,%al
40b55d:	74 09                	je     0x40b568
40b55f:	ff 75 14             	push   0x14(%ebp)
40b562:	e8 32 1c 00 00       	call   0x40d199
40b567:	59                   	pop    %ecx
40b568:	8b 45 14             	mov    0x14(%ebp),%eax
40b56b:	89 18                	mov    %ebx,(%eax)
40b56d:	8b 45 14             	mov    0x14(%ebp),%eax
40b570:	89 58 04             	mov    %ebx,0x4(%eax)
40b573:	8b 45 14             	mov    0x14(%ebp),%eax
40b576:	89 58 08             	mov    %ebx,0x8(%eax)
40b579:	33 c9                	xor    %ecx,%ecx
40b57b:	8b 45 14             	mov    0x14(%ebp),%eax
40b57e:	83 c0 0c             	add    $0xc,%eax
40b581:	f0 21 08             	lock and %ecx,(%eax)
40b584:	b9 00 20 00 00       	mov    $0x2000,%ecx
40b589:	8b 45 14             	mov    0x14(%ebp),%eax
40b58c:	83 c0 0c             	add    $0xc,%eax
40b58f:	f0 09 08             	lock or %ecx,(%eax)
40b592:	ff 75 14             	push   0x14(%ebp)
40b595:	ff 75 18             	push   0x18(%ebp)
40b598:	ff 75 10             	push   0x10(%ebp)
40b59b:	57                   	push   %edi
40b59c:	e8 02 7b 00 00       	call   0x4130a3
40b5a1:	83 c4 10             	add    $0x10,%esp
40b5a4:	89 06                	mov    %eax,(%esi)
40b5a6:	85 c0                	test   %eax,%eax
40b5a8:	75 18                	jne    0x40b5c2
40b5aa:	b9 ff df ff ff       	mov    $0xffffdfff,%ecx
40b5af:	8b 45 14             	mov    0x14(%ebp),%eax
40b5b2:	83 c0 0c             	add    $0xc,%eax
40b5b5:	f0 21 08             	lock and %ecx,(%eax)
40b5b8:	e8 3e 38 00 00       	call   0x40edfb
40b5bd:	8b 00                	mov    (%eax),%eax
40b5bf:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b5c2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40b5c9:	e8 13 00 00 00       	call   0x40b5e1
40b5ce:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40b5d1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b5d4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b5db:	59                   	pop    %ecx
40b5dc:	5f                   	pop    %edi
40b5dd:	5e                   	pop    %esi
40b5de:	5b                   	pop    %ebx
40b5df:	c9                   	leave
40b5e0:	c3                   	ret
40b5e1:	ff 75 14             	push   0x14(%ebp)
40b5e4:	e8 b1 01 00 00       	call   0x40b79a
40b5e9:	59                   	pop    %ecx
40b5ea:	c3                   	ret
40b5eb:	8b ff                	mov    %edi,%edi
40b5ed:	55                   	push   %ebp
40b5ee:	8b ec                	mov    %esp,%ebp
40b5f0:	51                   	push   %ecx
40b5f1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b5f5:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b5f8:	6a 40                	push   $0x40
40b5fa:	ff 75 10             	push   0x10(%ebp)
40b5fd:	ff 75 0c             	push   0xc(%ebp)
40b600:	ff 75 08             	push   0x8(%ebp)
40b603:	50                   	push   %eax
40b604:	e8 da fe ff ff       	call   0x40b4e3
40b609:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b60c:	83 c4 14             	add    $0x14,%esp
40b60f:	c9                   	leave
40b610:	c3                   	ret
40b611:	8b ff                	mov    %edi,%edi
40b613:	55                   	push   %ebp
40b614:	8b ec                	mov    %esp,%ebp
40b616:	5d                   	pop    %ebp
40b617:	e9 92 7a 00 00       	jmp    0x4130ae
40b61c:	a1 14 46 43 00       	mov    0x434614,%eax
40b621:	56                   	push   %esi
40b622:	6a 03                	push   $0x3
40b624:	5e                   	pop    %esi
40b625:	85 c0                	test   %eax,%eax
40b627:	75 07                	jne    0x40b630
40b629:	b8 00 02 00 00       	mov    $0x200,%eax
40b62e:	eb 06                	jmp    0x40b636
40b630:	3b c6                	cmp    %esi,%eax
40b632:	7d 07                	jge    0x40b63b
40b634:	8b c6                	mov    %esi,%eax
40b636:	a3 14 46 43 00       	mov    %eax,0x434614
40b63b:	6a 04                	push   $0x4
40b63d:	50                   	push   %eax
40b63e:	e8 6b 7a 00 00       	call   0x4130ae
40b643:	6a 00                	push   $0x0
40b645:	a3 18 46 43 00       	mov    %eax,0x434618
40b64a:	e8 bc 7a 00 00       	call   0x41310b
40b64f:	83 c4 0c             	add    $0xc,%esp
40b652:	83 3d 18 46 43 00 00 	cmpl   $0x0,0x434618
40b659:	75 2b                	jne    0x40b686
40b65b:	6a 04                	push   $0x4
40b65d:	56                   	push   %esi
40b65e:	89 35 14 46 43 00    	mov    %esi,0x434614
40b664:	e8 45 7a 00 00       	call   0x4130ae
40b669:	6a 00                	push   $0x0
40b66b:	a3 18 46 43 00       	mov    %eax,0x434618
40b670:	e8 96 7a 00 00       	call   0x41310b
40b675:	83 c4 0c             	add    $0xc,%esp
40b678:	83 3d 18 46 43 00 00 	cmpl   $0x0,0x434618
40b67f:	75 05                	jne    0x40b686
40b681:	83 c8 ff             	or     $0xffffffff,%eax
40b684:	5e                   	pop    %esi
40b685:	c3                   	ret
40b686:	57                   	push   %edi
40b687:	33 ff                	xor    %edi,%edi
40b689:	be 60 30 43 00       	mov    $0x433060,%esi
40b68e:	6a 00                	push   $0x0
40b690:	68 a0 0f 00 00       	push   $0xfa0
40b695:	8d 46 20             	lea    0x20(%esi),%eax
40b698:	50                   	push   %eax
40b699:	e8 f4 7f 00 00       	call   0x413692
40b69e:	a1 18 46 43 00       	mov    0x434618,%eax
40b6a3:	8b d7                	mov    %edi,%edx
40b6a5:	c1 fa 06             	sar    $0x6,%edx
40b6a8:	89 34 b8             	mov    %esi,(%eax,%edi,4)
40b6ab:	8b c7                	mov    %edi,%eax
40b6ad:	83 e0 3f             	and    $0x3f,%eax
40b6b0:	6b c8 38             	imul   $0x38,%eax,%ecx
40b6b3:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
40b6ba:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40b6be:	83 f8 ff             	cmp    $0xffffffff,%eax
40b6c1:	74 09                	je     0x40b6cc
40b6c3:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b6c6:	74 04                	je     0x40b6cc
40b6c8:	85 c0                	test   %eax,%eax
40b6ca:	75 07                	jne    0x40b6d3
40b6cc:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
40b6d3:	83 c6 38             	add    $0x38,%esi
40b6d6:	47                   	inc    %edi
40b6d7:	81 fe 08 31 43 00    	cmp    $0x433108,%esi
40b6dd:	75 af                	jne    0x40b68e
40b6df:	5f                   	pop    %edi
40b6e0:	33 c0                	xor    %eax,%eax
40b6e2:	5e                   	pop    %esi
40b6e3:	c3                   	ret
40b6e4:	8b ff                	mov    %edi,%edi
40b6e6:	55                   	push   %ebp
40b6e7:	8b ec                	mov    %esp,%ebp
40b6e9:	6b 45 08 38          	imul   $0x38,0x8(%ebp),%eax
40b6ed:	05 60 30 43 00       	add    $0x433060,%eax
40b6f2:	5d                   	pop    %ebp
40b6f3:	c3                   	ret
40b6f4:	8b ff                	mov    %edi,%edi
40b6f6:	56                   	push   %esi
40b6f7:	e8 82 1e 00 00       	call   0x40d57e
40b6fc:	e8 84 81 00 00       	call   0x413885
40b701:	33 f6                	xor    %esi,%esi
40b703:	a1 18 46 43 00       	mov    0x434618,%eax
40b708:	ff 34 06             	push   (%esi,%eax,1)
40b70b:	e8 20 82 00 00       	call   0x413930
40b710:	a1 18 46 43 00       	mov    0x434618,%eax
40b715:	59                   	pop    %ecx
40b716:	8b 04 06             	mov    (%esi,%eax,1),%eax
40b719:	83 c0 20             	add    $0x20,%eax
40b71c:	50                   	push   %eax
40b71d:	ff 15 44 40 42 00    	call   *0x424044
40b723:	83 c6 04             	add    $0x4,%esi
40b726:	83 fe 0c             	cmp    $0xc,%esi
40b729:	75 d8                	jne    0x40b703
40b72b:	ff 35 18 46 43 00    	push   0x434618
40b731:	e8 d5 79 00 00       	call   0x41310b
40b736:	83 25 18 46 43 00 00 	andl   $0x0,0x434618
40b73d:	59                   	pop    %ecx
40b73e:	5e                   	pop    %esi
40b73f:	c3                   	ret
40b740:	8b ff                	mov    %edi,%edi
40b742:	55                   	push   %ebp
40b743:	8b ec                	mov    %esp,%ebp
40b745:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b748:	85 c9                	test   %ecx,%ecx
40b74a:	75 15                	jne    0x40b761
40b74c:	e8 aa 36 00 00       	call   0x40edfb
40b751:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40b757:	e8 25 19 00 00       	call   0x40d081
40b75c:	6a 16                	push   $0x16
40b75e:	58                   	pop    %eax
40b75f:	5d                   	pop    %ebp
40b760:	c3                   	ret
40b761:	8b 55 0c             	mov    0xc(%ebp),%edx
40b764:	85 d2                	test   %edx,%edx
40b766:	74 05                	je     0x40b76d
40b768:	8d 41 04             	lea    0x4(%ecx),%eax
40b76b:	89 02                	mov    %eax,(%edx)
40b76d:	8b 45 10             	mov    0x10(%ebp),%eax
40b770:	85 c0                	test   %eax,%eax
40b772:	74 02                	je     0x40b776
40b774:	89 08                	mov    %ecx,(%eax)
40b776:	8b 55 14             	mov    0x14(%ebp),%edx
40b779:	85 d2                	test   %edx,%edx
40b77b:	74 05                	je     0x40b782
40b77d:	8d 41 08             	lea    0x8(%ecx),%eax
40b780:	89 02                	mov    %eax,(%edx)
40b782:	33 c0                	xor    %eax,%eax
40b784:	5d                   	pop    %ebp
40b785:	c3                   	ret
40b786:	8b ff                	mov    %edi,%edi
40b788:	55                   	push   %ebp
40b789:	8b ec                	mov    %esp,%ebp
40b78b:	8b 45 08             	mov    0x8(%ebp),%eax
40b78e:	83 c0 20             	add    $0x20,%eax
40b791:	50                   	push   %eax
40b792:	ff 15 38 40 42 00    	call   *0x424038
40b798:	5d                   	pop    %ebp
40b799:	c3                   	ret
40b79a:	8b ff                	mov    %edi,%edi
40b79c:	55                   	push   %ebp
40b79d:	8b ec                	mov    %esp,%ebp
40b79f:	8b 45 08             	mov    0x8(%ebp),%eax
40b7a2:	83 c0 20             	add    $0x20,%eax
40b7a5:	50                   	push   %eax
40b7a6:	ff 15 3c 40 42 00    	call   *0x42403c
40b7ac:	5d                   	pop    %ebp
40b7ad:	c3                   	ret
40b7ae:	cc                   	int3
40b7af:	cc                   	int3
40b7b0:	55                   	push   %ebp
40b7b1:	8b ec                	mov    %esp,%ebp
40b7b3:	56                   	push   %esi
40b7b4:	33 c0                	xor    %eax,%eax
40b7b6:	50                   	push   %eax
40b7b7:	50                   	push   %eax
40b7b8:	50                   	push   %eax
40b7b9:	50                   	push   %eax
40b7ba:	50                   	push   %eax
40b7bb:	50                   	push   %eax
40b7bc:	50                   	push   %eax
40b7bd:	50                   	push   %eax
40b7be:	8b 55 0c             	mov    0xc(%ebp),%edx
40b7c1:	8d 49 00             	lea    0x0(%ecx),%ecx
40b7c4:	8a 02                	mov    (%edx),%al
40b7c6:	0a c0                	or     %al,%al
40b7c8:	74 09                	je     0x40b7d3
40b7ca:	83 c2 01             	add    $0x1,%edx
40b7cd:	0f ab 04 24          	bts    %eax,(%esp)
40b7d1:	eb f1                	jmp    0x40b7c4
40b7d3:	8b 75 08             	mov    0x8(%ebp),%esi
40b7d6:	83 c9 ff             	or     $0xffffffff,%ecx
40b7d9:	8d 49 00             	lea    0x0(%ecx),%ecx
40b7dc:	83 c1 01             	add    $0x1,%ecx
40b7df:	8a 06                	mov    (%esi),%al
40b7e1:	0a c0                	or     %al,%al
40b7e3:	74 09                	je     0x40b7ee
40b7e5:	83 c6 01             	add    $0x1,%esi
40b7e8:	0f a3 04 24          	bt     %eax,(%esp)
40b7ec:	73 ee                	jae    0x40b7dc
40b7ee:	8b c1                	mov    %ecx,%eax
40b7f0:	83 c4 20             	add    $0x20,%esp
40b7f3:	5e                   	pop    %esi
40b7f4:	c9                   	leave
40b7f5:	c3                   	ret
40b7f6:	8b ff                	mov    %edi,%edi
40b7f8:	55                   	push   %ebp
40b7f9:	8b ec                	mov    %esp,%ebp
40b7fb:	81 ec 84 04 00 00    	sub    $0x484,%esp
40b801:	a1 14 30 43 00       	mov    0x433014,%eax
40b806:	33 c5                	xor    %ebp,%eax
40b808:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b80b:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40b80f:	8b 45 10             	mov    0x10(%ebp),%eax
40b812:	53                   	push   %ebx
40b813:	8b 5d 14             	mov    0x14(%ebp),%ebx
40b816:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40b81c:	75 18                	jne    0x40b836
40b81e:	e8 d8 35 00 00       	call   0x40edfb
40b823:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40b829:	e8 53 18 00 00       	call   0x40d081
40b82e:	83 c8 ff             	or     $0xffffffff,%eax
40b831:	e9 15 01 00 00       	jmp    0x40b94b
40b836:	85 db                	test   %ebx,%ebx
40b838:	74 04                	je     0x40b83e
40b83a:	85 c0                	test   %eax,%eax
40b83c:	74 e0                	je     0x40b81e
40b83e:	56                   	push   %esi
40b83f:	57                   	push   %edi
40b840:	ff 75 1c             	push   0x1c(%ebp)
40b843:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40b849:	e8 30 04 00 00       	call   0x40bc7e
40b84e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b851:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40b857:	33 c0                	xor    %eax,%eax
40b859:	33 d2                	xor    %edx,%edx
40b85b:	ab                   	stos   %eax,%es:(%edi)
40b85c:	ab                   	stos   %eax,%es:(%edi)
40b85d:	ab                   	stos   %eax,%es:(%edi)
40b85e:	ab                   	stos   %eax,%es:(%edi)
40b85f:	8b c1                	mov    %ecx,%eax
40b861:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40b867:	83 e0 02             	and    $0x2,%eax
40b86a:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40b870:	0b c2                	or     %edx,%eax
40b872:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40b878:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
40b87e:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40b884:	75 0a                	jne    0x40b890
40b886:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
40b88c:	85 ff                	test   %edi,%edi
40b88e:	75 07                	jne    0x40b897
40b890:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40b897:	ff 75 20             	push   0x20(%ebp)
40b89a:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
40b8a0:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40b8a6:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40b8ac:	50                   	push   %eax
40b8ad:	ff 75 18             	push   0x18(%ebp)
40b8b0:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40b8b6:	ff 75 0c             	push   0xc(%ebp)
40b8b9:	51                   	push   %ecx
40b8ba:	50                   	push   %eax
40b8bb:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40b8c1:	e8 7c 03 00 00       	call   0x40bc42
40b8c6:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40b8ca:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40b8d0:	e8 17 06 00 00       	call   0x40beec
40b8d5:	8b f0                	mov    %eax,%esi
40b8d7:	85 ff                	test   %edi,%edi
40b8d9:	74 4b                	je     0x40b926
40b8db:	8b 45 08             	mov    0x8(%ebp),%eax
40b8de:	33 c9                	xor    %ecx,%ecx
40b8e0:	83 e0 01             	and    $0x1,%eax
40b8e3:	0b c1                	or     %ecx,%eax
40b8e5:	74 1c                	je     0x40b903
40b8e7:	85 db                	test   %ebx,%ebx
40b8e9:	75 04                	jne    0x40b8ef
40b8eb:	85 f6                	test   %esi,%esi
40b8ed:	75 6d                	jne    0x40b95c
40b8ef:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40b8f5:	3b c3                	cmp    %ebx,%eax
40b8f7:	75 2a                	jne    0x40b923
40b8f9:	85 f6                	test   %esi,%esi