5006f5:	34 02                	xor    $0x2,%al
5006f7:	04 36                	add    $0x36,%al
5006f9:	88 03                	mov    %al,(%ebx)
5006fb:	33 c0                	xor    %eax,%eax
5006fd:	5b                   	pop    %ebx
5006fe:	5d                   	pop    %ebp
5006ff:	c3                   	ret
500700:	55                   	push   %ebp
500701:	8b ec                	mov    %esp,%ebp
500703:	83 ec 08             	sub    $0x8,%esp
500706:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50070b:	33 c5                	xor    %ebp,%eax
50070d:	89 45 fc             	mov    %eax,-0x4(%ebp)
500710:	8b 45 10             	mov    0x10(%ebp),%eax
500713:	56                   	push   %esi
500714:	8b 75 08             	mov    0x8(%ebp),%esi
500717:	57                   	push   %edi
500718:	33 ff                	xor    %edi,%edi
50071a:	89 7d f8             	mov    %edi,-0x8(%ebp)
50071d:	85 c0                	test   %eax,%eax
50071f:	0f 84 1a 01 00 00    	je     0x50083f
500725:	57                   	push   %edi
500726:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500729:	51                   	push   %ecx
50072a:	6a 41                	push   $0x41
50072c:	6a 01                	push   $0x1
50072e:	50                   	push   %eax
50072f:	ff 36                	push   (%esi)
500731:	e8 6a 90 05 00       	call   0x5597a0
500736:	83 c4 18             	add    $0x18,%esp
500739:	39 7d f8             	cmp    %edi,-0x8(%ebp)
50073c:	0f 84 fd 00 00 00    	je     0x50083f
500742:	8b 45 0c             	mov    0xc(%ebp),%eax
500745:	8b 56 08             	mov    0x8(%esi),%edx
500748:	53                   	push   %ebx
500749:	0f bf 58 20          	movswl 0x20(%eax),%ebx
50074d:	83 fb 20             	cmp    $0x20,%ebx
500750:	7c 0c                	jl     0x50075e
500752:	81 8a d4 00 00 00 00 	orl    $0x80000000,0xd4(%edx)
500759:	00 00 80
50075c:	eb 12                	jmp    0x500770
50075e:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
500764:	8d 43 ff             	lea    -0x1(%ebx),%eax
500767:	0f ab c1             	bts    %eax,%ecx
50076a:	89 8a d4 00 00 00    	mov    %ecx,0xd4(%edx)
500770:	8b 96 dc 00 00 00    	mov    0xdc(%esi),%edx
500776:	85 d2                	test   %edx,%edx
500778:	74 6b                	je     0x5007e5
50077a:	8b 42 64             	mov    0x64(%edx),%eax
50077d:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx
500780:	8d 5b fb             	lea    -0x5(%ebx),%ebx
500783:	f6 44 d8 08 01       	testb  $0x1,0x8(%eax,%ebx,8)
500788:	8d 1c d8             	lea    (%eax,%ebx,8),%ebx
50078b:	75 58                	jne    0x5007e5
50078d:	ff 32                	push   (%edx)
50078f:	e8 1c 11 04 00       	call   0x5418b0
500794:	8b f0                	mov    %eax,%esi
500796:	83 c4 04             	add    $0x4,%esp
500799:	85 f6                	test   %esi,%esi
50079b:	74 4a                	je     0x5007e7
50079d:	53                   	push   %ebx
50079e:	56                   	push   %esi
50079f:	e8 6c ab 04 00       	call   0x54b310
5007a4:	6a 01                	push   $0x1
5007a6:	6a 41                	push   $0x41
5007a8:	56                   	push   %esi
5007a9:	e8 32 33 ff ff       	call   0x4f3ae0
5007ae:	83 c4 14             	add    $0x14,%esp
5007b1:	85 f6                	test   %esi,%esi
5007b3:	74 32                	je     0x5007e7
5007b5:	0f b7 46 08          	movzwl 0x8(%esi),%eax
5007b9:	83 e0 3f             	and    $0x3f,%eax
5007bc:	80 b8 68 30 6b 00 03 	cmpb   $0x3,0x6b3068(%eax)
5007c3:	75 09                	jne    0x5007ce
5007c5:	56                   	push   %esi
5007c6:	e8 75 1e fe ff       	call   0x4e2640
5007cb:	83 c4 04             	add    $0x4,%esp
5007ce:	6a 00                	push   $0x0
5007d0:	ff 75 f8             	push   -0x8(%ebp)
5007d3:	56                   	push   %esi
5007d4:	e8 f7 0a 03 00       	call   0x5312d0
5007d9:	83 c4 0c             	add    $0xc,%esp
5007dc:	8b f8                	mov    %eax,%edi
5007de:	f7 df                	neg    %edi
5007e0:	1b ff                	sbb    %edi,%edi
5007e2:	47                   	inc    %edi
5007e3:	eb 02                	jmp    0x5007e7
5007e5:	33 f6                	xor    %esi,%esi
5007e7:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5007ea:	b8 00 24 00 00       	mov    $0x2400,%eax
5007ef:	85 db                	test   %ebx,%ebx
5007f1:	74 26                	je     0x500819
5007f3:	66 85 43 08          	test   %ax,0x8(%ebx)
5007f7:	75 06                	jne    0x5007ff
5007f9:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
5007fd:	74 09                	je     0x500808
5007ff:	53                   	push   %ebx
500800:	e8 0b a6 05 00       	call   0x55ae10
500805:	83 c4 04             	add    $0x4,%esp
500808:	53                   	push   %ebx
500809:	ff 73 20             	push   0x20(%ebx)
50080c:	e8 5f 0b 02 00       	call   0x521370
500811:	83 c4 08             	add    $0x8,%esp
500814:	b8 00 24 00 00       	mov    $0x2400,%eax
500819:	5b                   	pop    %ebx
50081a:	85 f6                	test   %esi,%esi
50081c:	74 21                	je     0x50083f
50081e:	66 85 46 08          	test   %ax,0x8(%esi)
500822:	75 06                	jne    0x50082a
500824:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
500828:	74 09                	je     0x500833
50082a:	56                   	push   %esi
50082b:	e8 e0 a5 05 00       	call   0x55ae10
500830:	83 c4 04             	add    $0x4,%esp
500833:	56                   	push   %esi
500834:	ff 76 20             	push   0x20(%esi)
500837:	e8 34 0b 02 00       	call   0x521370
50083c:	83 c4 08             	add    $0x8,%esp
50083f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
500842:	8b c7                	mov    %edi,%eax
500844:	5f                   	pop    %edi
500845:	33 cd                	xor    %ebp,%ecx
500847:	5e                   	pop    %esi
500848:	e8 8d 0c 0e 00       	call   0x5e14da
50084d:	8b e5                	mov    %ebp,%esp
50084f:	5d                   	pop    %ebp
500850:	c3                   	ret
500851:	cc                   	int3
500852:	cc                   	int3
500853:	cc                   	int3
500854:	cc                   	int3
500855:	cc                   	int3
500856:	cc                   	int3
500857:	cc                   	int3
500858:	cc                   	int3
500859:	cc                   	int3
50085a:	cc                   	int3
50085b:	cc                   	int3
50085c:	cc                   	int3
50085d:	cc                   	int3
50085e:	cc                   	int3
50085f:	cc                   	int3
500860:	55                   	push   %ebp
500861:	8b ec                	mov    %esp,%ebp
500863:	83 ec 24             	sub    $0x24,%esp
500866:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50086b:	33 c5                	xor    %ebp,%eax
50086d:	89 45 fc             	mov    %eax,-0x4(%ebp)
500870:	8b 45 08             	mov    0x8(%ebp),%eax
500873:	53                   	push   %ebx
500874:	8b 5d 10             	mov    0x10(%ebp),%ebx
500877:	56                   	push   %esi
500878:	89 45 f4             	mov    %eax,-0xc(%ebp)
50087b:	8b 45 14             	mov    0x14(%ebp),%eax
50087e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
500881:	89 45 dc             	mov    %eax,-0x24(%ebp)
500884:	57                   	push   %edi
500885:	8b 7d 0c             	mov    0xc(%ebp),%edi
500888:	85 c0                	test   %eax,%eax
50088a:	74 0b                	je     0x500897
50088c:	8b 30                	mov    (%eax),%esi
50088e:	c7 45 e4 00 00 00 08 	movl   $0x8000000,-0x1c(%ebp)
500895:	eb 4b                	jmp    0x5008e2
500897:	33 c0                	xor    %eax,%eax
500899:	85 ff                	test   %edi,%edi
50089b:	74 2e                	je     0x5008cb
50089d:	53                   	push   %ebx
50089e:	57                   	push   %edi
50089f:	e8 4c dd ff ff       	call   0x4fe5f0
5008a4:	83 c4 08             	add    $0x8,%esp
5008a7:	89 45 ec             	mov    %eax,-0x14(%ebp)
5008aa:	f6 c3 01             	test   $0x1,%bl
5008ad:	74 1c                	je     0x5008cb
5008af:	53                   	push   %ebx
5008b0:	ff 77 10             	push   0x10(%edi)
5008b3:	e8 a8 dd ff ff       	call   0x4fe660
5008b8:	53                   	push   %ebx
5008b9:	ff 77 0c             	push   0xc(%edi)
5008bc:	8b f0                	mov    %eax,%esi
5008be:	e8 9d dd ff ff       	call   0x4fe660
5008c3:	03 45 ec             	add    -0x14(%ebp),%eax
5008c6:	83 c4 10             	add    $0x10,%esp
5008c9:	03 c6                	add    %esi,%eax
5008cb:	99                   	cltd
5008cc:	52                   	push   %edx
5008cd:	50                   	push   %eax
5008ce:	ff 75 f4             	push   -0xc(%ebp)
5008d1:	e8 0a 0b 02 00       	call   0x5213e0
5008d6:	83 c4 0c             	add    $0xc,%esp
5008d9:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
5008e0:	8b f0                	mov    %eax,%esi
5008e2:	89 75 f8             	mov    %esi,-0x8(%ebp)
5008e5:	85 f6                	test   %esi,%esi
5008e7:	0f 84 1a 02 00 00    	je     0x500b07
5008ed:	85 db                	test   %ebx,%ebx
5008ef:	74 28                	je     0x500919
5008f1:	80 3f af             	cmpb   $0xaf,(%edi)
5008f4:	74 23                	je     0x500919
5008f6:	f7 47 04 00 00 00 01 	testl  $0x1000000,0x4(%edi)
5008fd:	75 1a                	jne    0x500919
5008ff:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
500903:	75 0d                	jne    0x500912
500905:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
500909:	75 07                	jne    0x500912
50090b:	b8 0c 40 00 00       	mov    $0x400c,%eax
500910:	eb 0c                	jmp    0x50091e
500912:	b8 1c 20 00 00       	mov    $0x201c,%eax
500917:	eb 05                	jmp    0x50091e
500919:	b8 34 00 00 00       	mov    $0x34,%eax
50091e:	8b 5f 04             	mov    0x4(%edi),%ebx
500921:	89 45 e8             	mov    %eax,-0x18(%ebp)
500924:	25 ff 0f 00 00       	and    $0xfff,%eax
500929:	89 45 ec             	mov    %eax,-0x14(%ebp)
50092c:	f7 c3 00 04 00 00    	test   $0x400,%ebx
500932:	75 26                	jne    0x50095a
500934:	8b 4f 08             	mov    0x8(%edi),%ecx
500937:	85 c9                	test   %ecx,%ecx
500939:	74 1f                	je     0x50095a
50093b:	8d 51 01             	lea    0x1(%ecx),%edx
50093e:	66 90                	xchg   %ax,%ax
500940:	8a 01                	mov    (%ecx),%al
500942:	41                   	inc    %ecx
500943:	84 c0                	test   %al,%al
500945:	75 f9                	jne    0x500940
500947:	2b ca                	sub    %edx,%ecx
500949:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
50094f:	8d 41 01             	lea    0x1(%ecx),%eax
500952:	89 45 e0             	mov    %eax,-0x20(%ebp)
500955:	8b 45 ec             	mov    -0x14(%ebp),%eax
500958:	eb 07                	jmp    0x500961
50095a:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
500961:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
500965:	74 0a                	je     0x500971
500967:	50                   	push   %eax
500968:	57                   	push   %edi
500969:	56                   	push   %esi
50096a:	e8 91 25 0e 00       	call   0x5e2f00
50096f:	eb 44                	jmp    0x5009b5
500971:	f7 c3 00 40 00 00    	test   $0x4000,%ebx
500977:	74 07                	je     0x500980
500979:	bb 0c 00 00 00       	mov    $0xc,%ebx
50097e:	eb 10                	jmp    0x500990
500980:	81 e3 00 20 00 00    	and    $0x2000,%ebx
500986:	f7 db                	neg    %ebx
500988:	1b db                	sbb    %ebx,%ebx
50098a:	83 e3 e8             	and    $0xffffffe8,%ebx
50098d:	83 c3 34             	add    $0x34,%ebx
500990:	53                   	push   %ebx
500991:	57                   	push   %edi
500992:	56                   	push   %esi
500993:	e8 68 25 0e 00       	call   0x5e2f00
500998:	83 c4 0c             	add    $0xc,%esp
50099b:	83 fb 34             	cmp    $0x34,%ebx
50099e:	73 18                	jae    0x5009b8
5009a0:	b8 34 00 00 00       	mov    $0x34,%eax
5009a5:	2b c3                	sub    %ebx,%eax
5009a7:	50                   	push   %eax
5009a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009ab:	03 c3                	add    %ebx,%eax
5009ad:	6a 00                	push   $0x0
5009af:	50                   	push   %eax
5009b0:	e8 4b 30 0e 00       	call   0x5e3a00
5009b5:	83 c4 0c             	add    $0xc,%esp
5009b8:	8b 46 04             	mov    0x4(%esi),%eax
5009bb:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5009be:	25 ff 9f fe f7       	and    $0xf7fe9fff,%eax
5009c3:	81 e1 00 60 00 00    	and    $0x6000,%ecx
5009c9:	0b c8                	or     %eax,%ecx
5009cb:	0b 4d e4             	or     -0x1c(%ebp),%ecx
5009ce:	89 4e 04             	mov    %ecx,0x4(%esi)
5009d1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5009d4:	85 c9                	test   %ecx,%ecx
5009d6:	74 16                	je     0x5009ee
5009d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009db:	03 45 ec             	add    -0x14(%ebp),%eax
5009de:	51                   	push   %ecx
5009df:	89 46 08             	mov    %eax,0x8(%esi)
5009e2:	ff 77 08             	push   0x8(%edi)
5009e5:	50                   	push   %eax
5009e6:	e8 15 25 0e 00       	call   0x5e2f00
5009eb:	83 c4 0c             	add    $0xc,%esp
5009ee:	8b 46 04             	mov    0x4(%esi),%eax
5009f1:	8b 4f 04             	mov    0x4(%edi),%ecx
5009f4:	0b c1                	or     %ecx,%eax
5009f6:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5009f9:	a9 00 40 80 00       	test   $0x804000,%eax
5009fe:	75 21                	jne    0x500a21
500a00:	53                   	push   %ebx
500a01:	ff 77 14             	push   0x14(%edi)
500a04:	ff 75 f4             	push   -0xc(%ebp)
500a07:	f7 c1 00 08 00 00    	test   $0x800,%ecx
500a0d:	74 07                	je     0x500a16
500a0f:	e8 cc b7 03 00       	call   0x53c1e0
500a14:	eb 05                	jmp    0x500a1b
500a16:	e8 a5 6e 02 00       	call   0x5278c0
500a1b:	89 46 14             	mov    %eax,0x14(%esi)
500a1e:	83 c4 0c             	add    $0xc,%esp
500a21:	f7 46 04 00 60 00 01 	testl  $0x1006000,0x4(%esi)
500a28:	0f 84 8f 00 00 00    	je     0x500abd
500a2e:	53                   	push   %ebx
500a2f:	57                   	push   %edi
500a30:	e8 bb db ff ff       	call   0x4fe5f0
500a35:	01 45 f8             	add    %eax,-0x8(%ebp)
500a38:	83 c4 08             	add    $0x8,%esp
500a3b:	f7 46 04 00 40 80 00 	testl  $0x804000,0x4(%esi)
500a42:	75 3f                	jne    0x500a83
500a44:	8b 47 0c             	mov    0xc(%edi),%eax
500a47:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500a4a:	85 c0                	test   %eax,%eax
500a4c:	74 12                	je     0x500a60
500a4e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500a51:	51                   	push   %ecx
500a52:	6a 01                	push   $0x1
500a54:	50                   	push   %eax
500a55:	53                   	push   %ebx
500a56:	e8 05 fe ff ff       	call   0x500860
500a5b:	83 c4 10             	add    $0x10,%esp
500a5e:	eb 02                	jmp    0x500a62
500a60:	33 c0                	xor    %eax,%eax
500a62:	89 46 0c             	mov    %eax,0xc(%esi)
500a65:	8b 47 10             	mov    0x10(%edi),%eax
500a68:	85 c0                	test   %eax,%eax
500a6a:	74 12                	je     0x500a7e
500a6c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500a6f:	51                   	push   %ecx
500a70:	6a 01                	push   $0x1
500a72:	50                   	push   %eax
500a73:	53                   	push   %ebx
500a74:	e8 e7 fd ff ff       	call   0x500860
500a79:	83 c4 10             	add    $0x10,%esp
500a7c:	eb 02                	jmp    0x500a80
500a7e:	33 c0                	xor    %eax,%eax
500a80:	89 46 10             	mov    %eax,0x10(%esi)
500a83:	f7 47 04 00 00 00 01 	testl  $0x1000000,0x4(%edi)
500a8a:	74 12                	je     0x500a9e
500a8c:	ff 77 2c             	push   0x2c(%edi)
500a8f:	56                   	push   %esi
500a90:	ff 75 f4             	push   -0xc(%ebp)
500a93:	e8 18 51 05 00       	call   0x555bb0
500a98:	83 c4 0c             	add    $0xc,%esp
500a9b:	89 46 2c             	mov    %eax,0x2c(%esi)
500a9e:	8b 45 dc             	mov    -0x24(%ebp),%eax
500aa1:	85 c0                	test   %eax,%eax
500aa3:	74 62                	je     0x500b07
500aa5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
500aa8:	5f                   	pop    %edi
500aa9:	89 08                	mov    %ecx,(%eax)
500aab:	8b c6                	mov    %esi,%eax
500aad:	5e                   	pop    %esi
500aae:	5b                   	pop    %ebx