508719:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
508720:	5e                   	pop    %esi
508721:	5b                   	pop    %ebx
508722:	5f                   	pop    %edi
508723:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508726:	33 cd                	xor    %ebp,%ecx
508728:	e8 ad 8d 0d 00       	call   0x5e14da
50872d:	8b e5                	mov    %ebp,%esp
50872f:	5d                   	pop    %ebp
508730:	c3                   	ret
508731:	8a c1                	mov    %cl,%al
508733:	88 47 15             	mov    %al,0x15(%edi)
508736:	8b 45 f0             	mov    -0x10(%ebp),%eax
508739:	5e                   	pop    %esi
50873a:	89 5f 0c             	mov    %ebx,0xc(%edi)
50873d:	89 47 2c             	mov    %eax,0x2c(%edi)
508740:	33 c0                	xor    %eax,%eax
508742:	5b                   	pop    %ebx
508743:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508746:	33 cd                	xor    %ebp,%ecx
508748:	5f                   	pop    %edi
508749:	e8 8c 8d 0d 00       	call   0x5e14da
50874e:	8b e5                	mov    %ebp,%esp
508750:	5d                   	pop    %ebp
508751:	c3                   	ret
508752:	cc                   	int3
508753:	cc                   	int3
508754:	cc                   	int3
508755:	cc                   	int3
508756:	cc                   	int3
508757:	cc                   	int3
508758:	cc                   	int3
508759:	cc                   	int3
50875a:	cc                   	int3
50875b:	cc                   	int3
50875c:	cc                   	int3
50875d:	cc                   	int3
50875e:	cc                   	int3
50875f:	cc                   	int3
508760:	55                   	push   %ebp
508761:	8b ec                	mov    %esp,%ebp
508763:	83 ec 38             	sub    $0x38,%esp
508766:	8b 55 1c             	mov    0x1c(%ebp),%edx
508769:	33 c0                	xor    %eax,%eax
50876b:	53                   	push   %ebx
50876c:	8b 5d 08             	mov    0x8(%ebp),%ebx
50876f:	b9 a4 00 00 00       	mov    $0xa4,%ecx
508774:	56                   	push   %esi
508775:	8b 75 0c             	mov    0xc(%ebp),%esi
508778:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50877b:	8b 03                	mov    (%ebx),%eax
50877d:	57                   	push   %edi
50877e:	33 ff                	xor    %edi,%edi
508780:	89 45 e8             	mov    %eax,-0x18(%ebp)
508783:	8b 45 18             	mov    0x18(%ebp),%eax
508786:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
50878d:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
508794:	89 7d fc             	mov    %edi,-0x4(%ebp)
508797:	89 45 d8             	mov    %eax,-0x28(%ebp)
50879a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
50879d:	89 4d dc             	mov    %ecx,-0x24(%ebp)
5087a0:	c7 42 1c ff ff ff ff 	movl   $0xffffffff,0x1c(%edx)
5087a7:	85 f6                	test   %esi,%esi
5087a9:	74 53                	je     0x5087fe
5087ab:	f6 40 18 06          	testb  $0x6,0x18(%eax)
5087af:	74 05                	je     0x5087b6
5087b1:	89 7d 0c             	mov    %edi,0xc(%ebp)
5087b4:	eb 48                	jmp    0x5087fe
5087b6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5087b9:	33 db                	xor    %ebx,%ebx
5087bb:	39 59 14             	cmp    %ebx,0x14(%ecx)
5087be:	7e 3e                	jle    0x5087fe
5087c0:	8b 49 10             	mov    0x10(%ecx),%ecx
5087c3:	8b c1                	mov    %ecx,%eax
5087c5:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5087c8:	8b 10                	mov    (%eax),%edx
5087ca:	8b fe                	mov    %esi,%edi
5087cc:	2b fa                	sub    %edx,%edi
5087ce:	66 90                	xchg   %ax,%ax
5087d0:	0f b6 02             	movzbl (%edx),%eax
5087d3:	0f b6 34 17          	movzbl (%edi,%edx,1),%esi
5087d7:	3b c6                	cmp    %esi,%eax
5087d9:	0f 85 af 00 00 00    	jne    0x50888e
5087df:	85 c0                	test   %eax,%eax
5087e1:	0f 85 b9 00 00 00    	jne    0x5088a0
5087e7:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5087ea:	03 db                	add    %ebx,%ebx
5087ec:	8b 41 10             	mov    0x10(%ecx),%eax
5087ef:	8b 44 d8 0c          	mov    0xc(%eax,%ebx,8),%eax
5087f3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5087f6:	8b 45 18             	mov    0x18(%ebp),%eax
5087f9:	33 ff                	xor    %edi,%edi
5087fb:	8b 55 1c             	mov    0x1c(%ebp),%edx
5087fe:	8b 4d 10             	mov    0x10(%ebp),%ecx
508801:	8b 40 04             	mov    0x4(%eax),%eax
508804:	89 45 cc             	mov    %eax,-0x34(%ebp)
508807:	85 c0                	test   %eax,%eax
508809:	0f 84 31 02 00 00    	je     0x508a40
50880f:	33 c9                	xor    %ecx,%ecx
508811:	8d 70 08             	lea    0x8(%eax),%esi
508814:	89 4d ec             	mov    %ecx,-0x14(%ebp)
508817:	89 75 f8             	mov    %esi,-0x8(%ebp)
50881a:	39 08                	cmp    %ecx,(%eax)
50881c:	0f 8e f8 01 00 00    	jle    0x508a1a
508822:	8b 46 14             	mov    0x14(%esi),%eax
508825:	8b 5e 10             	mov    0x10(%esi),%ebx
508828:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50882b:	85 c0                	test   %eax,%eax
50882d:	0f 84 ba 00 00 00    	je     0x5088ed
508833:	f7 40 04 00 08 00 00 	testl  $0x800,0x4(%eax)
50883a:	0f 84 ad 00 00 00    	je     0x5088ed
508840:	8b 58 1c             	mov    0x1c(%eax),%ebx
508843:	33 f6                	xor    %esi,%esi
508845:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
50884c:	39 33                	cmp    %esi,(%ebx)
50884e:	0f 8e 86 00 00 00    	jle    0x5088da
508854:	8d 7b 04             	lea    0x4(%ebx),%edi
508857:	ff 75 0c             	push   0xc(%ebp)
50885a:	ff 75 10             	push   0x10(%ebp)
50885d:	ff 75 14             	push   0x14(%ebp)
508860:	57                   	push   %edi
508861:	e8 6a 88 02 00       	call   0x5310d0
508866:	83 c4 10             	add    $0x10,%esp
508869:	85 c0                	test   %eax,%eax
50886b:	74 57                	je     0x5088c4
50886d:	8b 45 f8             	mov    -0x8(%ebp),%eax
508870:	ff 45 f4             	incl   -0xc(%ebp)
508873:	89 45 fc             	mov    %eax,-0x4(%ebp)
508876:	8b 45 1c             	mov    0x1c(%ebp),%eax
508879:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
508880:	66 89 70 20          	mov    %si,0x20(%eax)
508884:	b8 01 00 00 00       	mov    $0x1,%eax
508889:	89 45 d0             	mov    %eax,-0x30(%ebp)
50888c:	eb 39                	jmp    0x5088c7
50888e:	0f b6 88 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%ecx
508895:	0f b6 86 20 2a 6b 00 	movzbl 0x6b2a20(%esi),%eax
50889c:	2b c8                	sub    %eax,%ecx
50889e:	75 06                	jne    0x5088a6
5088a0:	42                   	inc    %edx
5088a1:	e9 2a ff ff ff       	jmp    0x5087d0
5088a6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5088a9:	43                   	inc    %ebx
5088aa:	8b 45 e0             	mov    -0x20(%ebp),%eax
5088ad:	83 c0 10             	add    $0x10,%eax
5088b0:	89 45 e0             	mov    %eax,-0x20(%ebp)
5088b3:	3b 59 14             	cmp    0x14(%ecx),%ebx
5088b6:	0f 8d 3a ff ff ff    	jge    0x5087f6
5088bc:	8b 75 0c             	mov    0xc(%ebp),%esi
5088bf:	e9 04 ff ff ff       	jmp    0x5087c8
5088c4:	8b 45 d0             	mov    -0x30(%ebp),%eax
5088c7:	46                   	inc    %esi
5088c8:	83 c7 14             	add    $0x14,%edi
5088cb:	3b 33                	cmp    (%ebx),%esi
5088cd:	7c 88                	jl     0x508857
5088cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5088d2:	85 c0                	test   %eax,%eax
5088d4:	0f 85 22 01 00 00    	jne    0x5089fc
5088da:	8b 45 10             	mov    0x10(%ebp),%eax
5088dd:	8b 75 f8             	mov    -0x8(%ebp),%esi
5088e0:	85 c0                	test   %eax,%eax
5088e2:	0f 84 17 01 00 00    	je     0x5089ff
5088e8:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5088eb:	eb 03                	jmp    0x5088f0
5088ed:	8b 45 10             	mov    0x10(%ebp),%eax
5088f0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5088f4:	74 0c                	je     0x508902
5088f6:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5088f9:	39 53 48             	cmp    %edx,0x48(%ebx)
5088fc:	0f 85 fd 00 00 00    	jne    0x5089ff
508902:	85 c0                	test   %eax,%eax
508904:	0f 84 72 00 00 00    	je     0x50897c
50890a:	8b 7e 0c             	mov    0xc(%esi),%edi
50890d:	8b d7                	mov    %edi,%edx
50890f:	85 ff                	test   %edi,%edi
508911:	75 02                	jne    0x508915
508913:	8b 13                	mov    (%ebx),%edx
508915:	8b f0                	mov    %eax,%esi
508917:	2b f2                	sub    %edx,%esi
508919:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
508920:	0f b6 0a             	movzbl (%edx),%ecx
508923:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508927:	3b c8                	cmp    %eax,%ecx
508929:	75 32                	jne    0x50895d
50892b:	85 c9                	test   %ecx,%ecx
50892d:	75 44                	jne    0x508973
50892f:	8b 45 08             	mov    0x8(%ebp),%eax
508932:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
508939:	72 41                	jb     0x50897c
50893b:	85 ff                	test   %edi,%edi
50893d:	74 3d                	je     0x50897c
50893f:	8b 80 10 01 00 00    	mov    0x110(%eax),%eax
508945:	85 c0                	test   %eax,%eax
508947:	74 33                	je     0x50897c
508949:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
50894c:	83 c1 2c             	add    $0x2c,%ecx
50894f:	90                   	nop
508950:	39 08                	cmp    %ecx,(%eax)
508952:	74 22                	je     0x508976
508954:	8b 40 0c             	mov    0xc(%eax),%eax
508957:	85 c0                	test   %eax,%eax
508959:	75 f5                	jne    0x508950
50895b:	eb 1f                	jmp    0x50897c
50895d:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508964:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
50896b:	2b c8                	sub    %eax,%ecx
50896d:	0f 85 86 00 00 00    	jne    0x5089f9
508973:	42                   	inc    %edx
508974:	eb aa                	jmp    0x508920
508976:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
50897c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50897f:	8b c1                	mov    %ecx,%eax
508981:	41                   	inc    %ecx
508982:	89 4d f0             	mov    %ecx,-0x10(%ebp)
508985:	85 c0                	test   %eax,%eax
508987:	75 06                	jne    0x50898f
508989:	8b 45 f8             	mov    -0x8(%ebp),%eax
50898c:	89 45 fc             	mov    %eax,-0x4(%ebp)
50898f:	8b 45 e0             	mov    -0x20(%ebp),%eax
508992:	33 ff                	xor    %edi,%edi
508994:	8b 5b 04             	mov    0x4(%ebx),%ebx
508997:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
50899b:	85 c0                	test   %eax,%eax
50899d:	7e 5a                	jle    0x5089f9
50899f:	90                   	nop
5089a0:	8b 75 14             	mov    0x14(%ebp),%esi
5089a3:	8b 13                	mov    (%ebx),%edx
5089a5:	2b f2                	sub    %edx,%esi
5089a7:	0f b6 02             	movzbl (%edx),%eax
5089aa:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
5089ae:	3b c1                	cmp    %ecx,%eax
5089b0:	0f 85 f3 00 00 00    	jne    0x508aa9
5089b6:	85 c0                	test   %eax,%eax
5089b8:	0f 85 01 01 00 00    	jne    0x508abf
5089be:	8b 75 f4             	mov    -0xc(%ebp),%esi
5089c1:	83 fe 01             	cmp    $0x1,%esi
5089c4:	0f 85 fb 00 00 00    	jne    0x508ac5
5089ca:	8b 45 f8             	mov    -0x8(%ebp),%eax
5089cd:	f6 40 24 04          	testb  $0x4,0x24(%eax)
5089d1:	75 17                	jne    0x5089ea
5089d3:	8b 4d 14             	mov    0x14(%ebp),%ecx
5089d6:	51                   	push   %ecx
5089d7:	ff 70 34             	push   0x34(%eax)
5089da:	e8 d1 2d 00 00       	call   0x50b7b0
5089df:	83 c4 08             	add    $0x8,%esp
5089e2:	85 c0                	test   %eax,%eax
5089e4:	0f 84 db 00 00 00    	je     0x508ac5
5089ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5089ed:	47                   	inc    %edi
5089ee:	83 c3 14             	add    $0x14,%ebx
5089f1:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
5089f5:	3b f8                	cmp    %eax,%edi
5089f7:	7c a7                	jl     0x5089a0
5089f9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5089fc:	8b 75 f8             	mov    -0x8(%ebp),%esi
5089ff:	8b 55 1c             	mov    0x1c(%ebp),%edx
508a02:	8b 45 cc             	mov    -0x34(%ebp),%eax
508a05:	41                   	inc    %ecx
508a06:	83 c6 48             	add    $0x48,%esi
508a09:	89 4d ec             	mov    %ecx,-0x14(%ebp)
508a0c:	89 75 f8             	mov    %esi,-0x8(%ebp)
508a0f:	3b 08                	cmp    (%eax),%ecx
508a11:	0f 8c 0b fe ff ff    	jl     0x508822
508a17:	8b 7d fc             	mov    -0x4(%ebp),%edi
508a1a:	85 ff                	test   %edi,%edi
508a1c:	74 1f                	je     0x508a3d
508a1e:	8b 47 2c             	mov    0x2c(%edi),%eax
508a21:	89 42 1c             	mov    %eax,0x1c(%edx)
508a24:	8b 47 10             	mov    0x10(%edi),%eax
508a27:	89 42 2c             	mov    %eax,0x2c(%edx)
508a2a:	f6 47 24 08          	testb  $0x8,0x24(%edi)
508a2e:	74 07                	je     0x508a37
508a30:	81 4a 04 00 00 10 00 	orl    $0x100000,0x4(%edx)
508a37:	8b 40 48             	mov    0x48(%eax),%eax
508a3a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
508a3d:	8b 4d 10             	mov    0x10(%ebp),%ecx
508a40:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
508a44:	8b 75 f0             	mov    -0x10(%ebp),%esi
508a47:	0f 85 32 03 00 00    	jne    0x508d7f
508a4d:	85 c9                	test   %ecx,%ecx
508a4f:	0f 84 2a 03 00 00    	je     0x508d7f
508a55:	85 f6                	test   %esi,%esi
508a57:	0f 85 22 03 00 00    	jne    0x508d7f
508a5d:	8b 45 08             	mov    0x8(%ebp),%eax
508a60:	33 db                	xor    %ebx,%ebx
508a62:	89 5d ec             	mov    %ebx,-0x14(%ebp)
508a65:	39 58 78             	cmp    %ebx,0x78(%eax)
508a68:	0f 84 e8 00 00 00    	je     0x508b56
508a6e:	0f b6 b8 90 00 00 00 	movzbl 0x90(%eax),%edi
508a75:	83 ff 7e             	cmp    $0x7e,%edi
508a78:	0f 84 a1 00 00 00    	je     0x508b1f
508a7e:	ba 1c 8c 6b 00       	mov    $0x6b8c1c,%edx
508a83:	8b f1                	mov    %ecx,%esi
508a85:	2b f2                	sub    %edx,%esi
508a87:	0f b6 0a             	movzbl (%edx),%ecx
508a8a:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508a8e:	3b c8                	cmp    %eax,%ecx
508a90:	75 72                	jne    0x508b04
508a92:	85 c9                	test   %ecx,%ecx
508a94:	0f 85 7c 00 00 00    	jne    0x508b16
508a9a:	8b 45 1c             	mov    0x1c(%ebp),%eax
508a9d:	c7 40 1c 01 00 00 00 	movl   $0x1,0x1c(%eax)
508aa4:	e9 a4 00 00 00       	jmp    0x508b4d
508aa9:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508ab0:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508ab7:	2b c1                	sub    %ecx,%eax
508ab9:	0f 85 2b ff ff ff    	jne    0x5089ea
508abf:	42                   	inc    %edx
508ac0:	e9 e2 fe ff ff       	jmp    0x5089a7
508ac5:	8b 45 f8             	mov    -0x8(%ebp),%eax
508ac8:	46                   	inc    %esi
508ac9:	89 45 fc             	mov    %eax,-0x4(%ebp)
508acc:	8b 45 e0             	mov    -0x20(%ebp),%eax
508acf:	89 75 f4             	mov    %esi,-0xc(%ebp)
508ad2:	0f bf 40 28          	movswl 0x28(%eax),%eax
508ad6:	3b f8                	cmp    %eax,%edi
508ad8:	75 15                	jne    0x508aef
508ada:	8b 55 1c             	mov    0x1c(%ebp),%edx
508add:	83 c8 ff             	or     $0xffffffff,%eax
508ae0:	8b 75 f8             	mov    -0x8(%ebp),%esi
508ae3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
508ae6:	66 89 42 20          	mov    %ax,0x20(%edx)
508aea:	e9 13 ff ff ff       	jmp    0x508a02
508aef:	8b 55 1c             	mov    0x1c(%ebp),%edx
508af2:	8b 75 f8             	mov    -0x8(%ebp),%esi
508af5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
508af8:	0f bf c7             	movswl %di,%eax
508afb:	66 89 42 20          	mov    %ax,0x20(%edx)
508aff:	e9 fe fe ff ff       	jmp    0x508a02
508b04:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508b0b:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508b12:	2b c8                	sub    %eax,%ecx
508b14:	75 06                	jne    0x508b1c
508b16:	42                   	inc    %edx
508b17:	e9 6b ff ff ff       	jmp    0x508a87
508b1c:	8b 4d 10             	mov    0x10(%ebp),%ecx
508b1f:	83 ff 7d             	cmp    $0x7d,%edi
508b22:	74 32                	je     0x508b56
508b24:	ba 20 8c 6b 00       	mov    $0x6b8c20,%edx
508b29:	8b f1                	mov    %ecx,%esi
508b2b:	2b f2                	sub    %edx,%esi
508b2d:	0f 1f 00             	nopl   (%eax)
508b30:	0f b6 0a             	movzbl (%edx),%ecx
508b33:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508b37:	3b c8                	cmp    %eax,%ecx
508b39:	0f 85 bd 00 00 00    	jne    0x508bfc
508b3f:	85 c9                	test   %ecx,%ecx
508b41:	0f 85 cb 00 00 00    	jne    0x508c12
508b47:	8b 45 1c             	mov    0x1c(%ebp),%eax
508b4a:	89 58 1c             	mov    %ebx,0x1c(%eax)
508b4d:	8b 5d 08             	mov    0x8(%ebp),%ebx