515691:	ff 37                	push   (%edi)
515693:	68 28 b2 6b 00       	push   $0x6bb228
515698:	ff 75 f8             	push   -0x8(%ebp)
51569b:	e8 c0 db 00 00       	call   0x523260
5156a0:	83 c4 0c             	add    $0xc,%esp
5156a3:	6a 00                	push   $0x0
5156a5:	ff 77 0c             	push   0xc(%edi)
5156a8:	56                   	push   %esi
5156a9:	e8 32 6b 02 00       	call   0x53c1e0
5156ae:	89 43 14             	mov    %eax,0x14(%ebx)
5156b1:	b9 01 00 00 00       	mov    $0x1,%ecx
5156b6:	0f b7 77 2a          	movzwl 0x2a(%edi),%esi
5156ba:	83 c8 ff             	or     $0xffffffff,%eax
5156bd:	66 89 47 2a          	mov    %ax,0x2a(%edi)
5156c1:	8b 45 08             	mov    0x8(%ebp),%eax
5156c4:	66 89 48 14          	mov    %cx,0x14(%eax)
5156c8:	ff 73 14             	push   0x14(%ebx)
5156cb:	50                   	push   %eax
5156cc:	e8 1f a7 03 00       	call   0x54fdf0
5156d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
5156d4:	83 c4 14             	add    $0x14,%esp
5156d7:	8a 45 ff             	mov    -0x1(%ebp),%al
5156da:	0f b6 c0             	movzbl %al,%eax
5156dd:	66 89 41 14          	mov    %ax,0x14(%ecx)
5156e1:	66 89 77 2a          	mov    %si,0x2a(%edi)
5156e5:	8b f1                	mov    %ecx,%esi
5156e7:	8b 7d dc             	mov    -0x24(%ebp),%edi
5156ea:	53                   	push   %ebx
5156eb:	ff 75 f8             	push   -0x8(%ebp)
5156ee:	e8 cd 89 01 00       	call   0x52e0c0
5156f3:	83 c4 08             	add    $0x8,%esp
5156f6:	85 c0                	test   %eax,%eax
5156f8:	0f 85 cc fe ff ff    	jne    0x5155ca
5156fe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
515701:	47                   	inc    %edi
515702:	83 c3 48             	add    $0x48,%ebx
515705:	89 7d dc             	mov    %edi,-0x24(%ebp)
515708:	3b 39                	cmp    (%ecx),%edi
51570a:	0f 8c 70 fe ff ff    	jl     0x515580
515710:	8b 55 f4             	mov    -0xc(%ebp),%edx
515713:	8b 5d f8             	mov    -0x8(%ebp),%ebx
515716:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
51571a:	0f 85 aa fe ff ff    	jne    0x5155ca
515720:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
515724:	0f 85 a0 fe ff ff    	jne    0x5155ca
51572a:	8b 75 0c             	mov    0xc(%ebp),%esi
51572d:	56                   	push   %esi
51572e:	53                   	push   %ebx
51572f:	e8 bc 1d 04 00       	call   0x5574f0
515734:	83 c4 08             	add    $0x8,%esp
515737:	85 c0                	test   %eax,%eax
515739:	0f 85 8b fe ff ff    	jne    0x5155ca
51573f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
515742:	33 d2                	xor    %edx,%edx
515744:	8b 39                	mov    (%ecx),%edi
515746:	85 ff                	test   %edi,%edi
515748:	7e 31                	jle    0x51577b
51574a:	8d 71 04             	lea    0x4(%ecx),%esi
51574d:	33 db                	xor    %ebx,%ebx
51574f:	90                   	nop
515750:	8b 0e                	mov    (%esi),%ecx
515752:	8a 01                	mov    (%ecx),%al
515754:	3c b1                	cmp    $0xb1,%al
515756:	74 17                	je     0x51576f
515758:	3c 8b                	cmp    $0x8b,%al
51575a:	75 08                	jne    0x515764
51575c:	8b 41 10             	mov    0x10(%ecx),%eax
51575f:	80 38 b1             	cmpb   $0xb1,(%eax)
515762:	74 0b                	je     0x51576f
515764:	0b 59 04             	or     0x4(%ecx),%ebx
515767:	42                   	inc    %edx
515768:	83 c6 14             	add    $0x14,%esi
51576b:	3b d7                	cmp    %edi,%edx
51576d:	7c e1                	jl     0x515750
51576f:	8b 75 0c             	mov    0xc(%ebp),%esi
515772:	8b 4d cc             	mov    -0x34(%ebp),%ecx
515775:	89 5d d8             	mov    %ebx,-0x28(%ebp)
515778:	8b 5d f8             	mov    -0x8(%ebp),%ebx
51577b:	3b d7                	cmp    %edi,%edx
51577d:	0f 8d 75 07 00 00    	jge    0x515ef8
515783:	8b 03                	mov    (%ebx),%eax
515785:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
51578c:	8b 40 20             	mov    0x20(%eax),%eax
51578f:	83 e0 44             	and    $0x44,%eax
515792:	89 45 c8             	mov    %eax,-0x38(%ebp)
515795:	33 c0                	xor    %eax,%eax
515797:	89 45 b8             	mov    %eax,-0x48(%ebp)
51579a:	85 ff                	test   %edi,%edi
51579c:	0f 8e 41 07 00 00    	jle    0x515ee3
5157a2:	8d 04 80             	lea    (%eax,%eax,4),%eax
5157a5:	8d 34 81             	lea    (%ecx,%eax,4),%esi
5157a8:	8b 45 d8             	mov    -0x28(%ebp),%eax
5157ab:	8b 4e 04             	mov    0x4(%esi),%ecx
5157ae:	0b 41 04             	or     0x4(%ecx),%eax
5157b1:	8a 11                	mov    (%ecx),%dl
5157b3:	89 45 d8             	mov    %eax,-0x28(%ebp)
5157b6:	80 fa b1             	cmp    $0xb1,%dl
5157b9:	74 7c                	je     0x515837
5157bb:	80 fa 8b             	cmp    $0x8b,%dl
5157be:	75 08                	jne    0x5157c8
5157c0:	8b 41 10             	mov    0x10(%ecx),%eax
5157c3:	80 38 b1             	cmpb   $0xb1,(%eax)
5157c6:	74 6f                	je     0x515837
5157c8:	8b 45 e8             	mov    -0x18(%ebp),%eax
5157cb:	51                   	push   %ecx
5157cc:	50                   	push   %eax
5157cd:	53                   	push   %ebx
5157ce:	e8 ad 1d 01 00       	call   0x527580
5157d3:	8b f8                	mov    %eax,%edi
5157d5:	83 c4 0c             	add    $0xc,%esp
5157d8:	89 7d e8             	mov    %edi,-0x18(%ebp)
5157db:	85 ff                	test   %edi,%edi
5157dd:	74 27                	je     0x515806
5157df:	8b 0f                	mov    (%edi),%ecx
5157e1:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5157e4:	8b 4e 08             	mov    0x8(%esi),%ecx
5157e7:	89 4c 97 f4          	mov    %ecx,-0xc(%edi,%edx,4)
5157eb:	8b 0f                	mov    (%edi),%ecx
5157ed:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
5157f0:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
5157f3:	8b 46 10             	mov    0x10(%esi),%eax
5157f6:	33 41 fc             	xor    -0x4(%ecx),%eax
5157f9:	83 e0 03             	and    $0x3,%eax
5157fc:	31 41 fc             	xor    %eax,-0x4(%ecx)
5157ff:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
515806:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
51580d:	e9 bc 06 00 00       	jmp    0x515ece
515812:	ff 37                	push   (%edi)
515814:	68 e0 b1 6b 00       	push   $0x6bb1e0
515819:	ff 75 f8             	push   -0x8(%ebp)
51581c:	e8 3f da 00 00       	call   0x523260
515821:	83 c4 0c             	add    $0xc,%esp
515824:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
51582b:	b8 02 00 00 00       	mov    $0x2,%eax
515830:	5f                   	pop    %edi
515831:	5e                   	pop    %esi
515832:	5b                   	pop    %ebx
515833:	8b e5                	mov    %ebp,%esp
515835:	5d                   	pop    %ebp
515836:	c3                   	ret
515837:	33 c0                	xor    %eax,%eax
515839:	89 45 bc             	mov    %eax,-0x44(%ebp)
51583c:	89 45 ec             	mov    %eax,-0x14(%ebp)
51583f:	80 fa 8b             	cmp    $0x8b,%dl
515842:	75 0b                	jne    0x51584f
515844:	8b 41 0c             	mov    0xc(%ecx),%eax
515847:	8b 48 08             	mov    0x8(%eax),%ecx
51584a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
51584d:	eb 02                	jmp    0x515851
51584f:	33 c9                	xor    %ecx,%ecx
515851:	8b 55 f0             	mov    -0x10(%ebp),%edx
515854:	8b 45 b4             	mov    -0x4c(%ebp),%eax
515857:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
51585e:	89 45 d0             	mov    %eax,-0x30(%ebp)
515861:	83 3a 00             	cmpl   $0x0,(%edx)
515864:	0f 8e 3e 06 00 00    	jle    0x515ea8
51586a:	eb 07                	jmp    0x515873
51586c:	0f 1f 40 00          	nopl   0x0(%eax)
515870:	8b 4d ec             	mov    -0x14(%ebp),%ecx
515873:	8b 58 10             	mov    0x10(%eax),%ebx
515876:	8b 50 14             	mov    0x14(%eax),%edx
515879:	8b 40 0c             	mov    0xc(%eax),%eax
51587c:	89 5d a8             	mov    %ebx,-0x58(%ebp)
51587f:	89 55 dc             	mov    %edx,-0x24(%ebp)
515882:	89 45 e4             	mov    %eax,-0x1c(%ebp)
515885:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
51588c:	85 c0                	test   %eax,%eax
51588e:	75 05                	jne    0x515895
515890:	8b 03                	mov    (%ebx),%eax
515892:	89 45 e4             	mov    %eax,-0x1c(%ebp)
515895:	8b 75 f4             	mov    -0xc(%ebp),%esi
515898:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
51589c:	0f 85 fc 05 00 00    	jne    0x515e9e
5158a2:	85 d2                	test   %edx,%edx
5158a4:	74 09                	je     0x5158af
5158a6:	f7 42 04 00 08 00 00 	testl  $0x800,0x4(%edx)
5158ad:	75 70                	jne    0x51591f
5158af:	33 d2                	xor    %edx,%edx
5158b1:	89 55 dc             	mov    %edx,-0x24(%ebp)
5158b4:	85 c9                	test   %ecx,%ecx
5158b6:	74 1a                	je     0x5158d2
5158b8:	8b f8                	mov    %eax,%edi
5158ba:	8b d1                	mov    %ecx,%edx
5158bc:	2b f9                	sub    %ecx,%edi
5158be:	66 90                	xchg   %ax,%ax
5158c0:	0f b6 02             	movzbl (%edx),%eax
5158c3:	0f b6 34 3a          	movzbl (%edx,%edi,1),%esi
5158c7:	3b c6                	cmp    %esi,%eax
5158c9:	75 31                	jne    0x5158fc
5158cb:	85 c0                	test   %eax,%eax
5158cd:	75 43                	jne    0x515912
5158cf:	8b 75 f4             	mov    -0xc(%ebp),%esi
5158d2:	8b 53 48             	mov    0x48(%ebx),%edx
5158d5:	85 d2                	test   %edx,%edx
5158d7:	74 3c                	je     0x515915
5158d9:	8b 76 10             	mov    0x10(%esi),%esi
5158dc:	33 c9                	xor    %ecx,%ecx
5158de:	39 56 0c             	cmp    %edx,0xc(%esi)
5158e1:	8d 46 0c             	lea    0xc(%esi),%eax
5158e4:	74 0c                	je     0x5158f2
5158e6:	8d 40 10             	lea    0x10(%eax),%eax
5158e9:	41                   	inc    %ecx
5158ea:	39 10                	cmp    %edx,(%eax)
5158ec:	75 f8                	jne    0x5158e6
5158ee:	85 c9                	test   %ecx,%ecx
5158f0:	78 23                	js     0x515915
5158f2:	03 c9                	add    %ecx,%ecx
5158f4:	8b 04 ce             	mov    (%esi,%ecx,8),%eax
5158f7:	89 45 e0             	mov    %eax,-0x20(%ebp)
5158fa:	eb 20                	jmp    0x51591c
5158fc:	0f b6 88 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%ecx
515903:	0f b6 86 20 2a 6b 00 	movzbl 0x6b2a20(%esi),%eax
51590a:	2b c8                	sub    %eax,%ecx
51590c:	0f 85 71 05 00 00    	jne    0x515e83
515912:	42                   	inc    %edx
515913:	eb ab                	jmp    0x5158c0
515915:	c7 45 e0 e0 c8 6a 00 	movl   $0x6ac8e0,-0x20(%ebp)
51591c:	8b 55 dc             	mov    -0x24(%ebp),%edx
51591f:	33 c9                	xor    %ecx,%ecx
515921:	33 c0                	xor    %eax,%eax
515923:	89 4d c0             	mov    %ecx,-0x40(%ebp)
515926:	66 3b 43 2a          	cmp    0x2a(%ebx),%ax
51592a:	0f 8d 53 05 00 00    	jge    0x515e83
515930:	8b 7b 04             	mov    0x4(%ebx),%edi
515933:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
515936:	8b 45 ec             	mov    -0x14(%ebp),%eax
515939:	c1 e1 02             	shl    $0x2,%ecx
51593c:	03 f9                	add    %ecx,%edi
51593e:	89 4d b0             	mov    %ecx,-0x50(%ebp)
515941:	8b 1f                	mov    (%edi),%ebx
515943:	89 5d 08             	mov    %ebx,0x8(%ebp)
515946:	85 c0                	test   %eax,%eax
515948:	74 76                	je     0x5159c0
51594a:	85 d2                	test   %edx,%edx
51594c:	74 72                	je     0x5159c0
51594e:	8b 52 1c             	mov    0x1c(%edx),%edx
515951:	8b 44 0a 10          	mov    0x10(%edx,%ecx,1),%eax
515955:	24 03                	and    $0x3,%al
515957:	3c 02                	cmp    $0x2,%al
515959:	0f 85 0b 05 00 00    	jne    0x515e6a
51595f:	8b 54 0a 08          	mov    0x8(%edx,%ecx,1),%edx
515963:	33 c9                	xor    %ecx,%ecx
515965:	38 0a                	cmp    %cl,(%edx)
515967:	74 14                	je     0x51597d
515969:	8a 02                	mov    (%edx),%al
51596b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
515970:	3c 2e                	cmp    $0x2e,%al
515972:	74 09                	je     0x51597d
515974:	8a 44 11 01          	mov    0x1(%ecx,%edx,1),%al
515978:	41                   	inc    %ecx
515979:	84 c0                	test   %al,%al
51597b:	75 f3                	jne    0x515970
51597d:	41                   	inc    %ecx
51597e:	33 f6                	xor    %esi,%esi
515980:	03 ca                	add    %edx,%ecx
515982:	80 39 00             	cmpb   $0x0,(%ecx)
515985:	74 16                	je     0x51599d
515987:	8a 01                	mov    (%ecx),%al
515989:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
515990:	3c 2e                	cmp    $0x2e,%al
515992:	74 09                	je     0x51599d
515994:	8a 44 0e 01          	mov    0x1(%esi,%ecx,1),%al
515998:	46                   	inc    %esi
515999:	84 c0                	test   %al,%al
51599b:	75 f3                	jne    0x515990
51599d:	8b 45 ec             	mov    -0x14(%ebp),%eax
5159a0:	56                   	push   %esi
5159a1:	50                   	push   %eax
5159a2:	51                   	push   %ecx
5159a3:	e8 b8 a1 fc ff       	call   0x4dfb60
5159a8:	83 c4 0c             	add    $0xc,%esp
5159ab:	85 c0                	test   %eax,%eax
5159ad:	0f 85 b7 04 00 00    	jne    0x515e6a
5159b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
5159b6:	80 3c 06 00          	cmpb   $0x0,(%esi,%eax,1)
5159ba:	0f 85 aa 04 00 00    	jne    0x515e6a
5159c0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5159c3:	f7 41 04 00 00 02 00 	testl  $0x20000,0x4(%ecx)
5159ca:	75 0a                	jne    0x5159d6
5159cc:	f6 47 10 02          	testb  $0x2,0x10(%edi)
5159d0:	0f 85 94 04 00 00    	jne    0x515e6a
5159d6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5159d9:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
5159e0:	85 c9                	test   %ecx,%ecx
5159e2:	7e 3a                	jle    0x515a1e
5159e4:	85 c0                	test   %eax,%eax
5159e6:	75 36                	jne    0x515a1e
5159e8:	8b 75 d0             	mov    -0x30(%ebp),%esi
5159eb:	f6 46 24 04          	testb  $0x4,0x24(%esi)
5159ef:	74 19                	je     0x515a0a
5159f1:	6a 01                	push   $0x1
5159f3:	50                   	push   %eax
5159f4:	50                   	push   %eax
5159f5:	53                   	push   %ebx
5159f6:	51                   	push   %ecx
5159f7:	ff 75 f0             	push   -0x10(%ebp)
5159fa:	e8 f1 29 04 00       	call   0x5583f0
5159ff:	83 c4 18             	add    $0x18,%esp
515a02:	85 c0                	test   %eax,%eax
515a04:	0f 85 60 04 00 00    	jne    0x515e6a
515a0a:	53                   	push   %ebx
515a0b:	ff 76 34             	push   0x34(%esi)
515a0e:	e8 0d 85 01 00       	call   0x52df20
515a13:	83 c4 08             	add    $0x8,%esp
515a16:	85 c0                	test   %eax,%eax
515a18:	0f 89 4c 04 00 00    	jns    0x515e6a
515a1e:	85 db                	test   %ebx,%ebx
515a20:	75 04                	jne    0x515a26
515a22:	33 f6                	xor    %esi,%esi
515a24:	eb 19                	jmp    0x515a3f
515a26:	8b f3                	mov    %ebx,%esi
515a28:	8d 4e 01             	lea    0x1(%esi),%ecx
515a2b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
515a30:	8a 06                	mov    (%esi),%al
515a32:	46                   	inc    %esi
515a33:	84 c0                	test   %al,%al
515a35:	75 f9                	jne    0x515a30
515a37:	2b f1                	sub    %ecx,%esi
515a39:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
515a3f:	8d 7e 01             	lea    0x1(%esi),%edi
515a42:	8d 47 34             	lea    0x34(%edi),%eax
515a45:	6a 00                	push   $0x0
515a47:	50                   	push   %eax
515a48:	ff 75 f4             	push   -0xc(%ebp)
515a4b:	e8 90 b9 00 00       	call   0x5213e0
515a50:	8b d8                	mov    %eax,%ebx
515a52:	83 c4 0c             	add    $0xc,%esp
515a55:	85 db                	test   %ebx,%ebx
515a57:	74 4c                	je     0x515aa5
515a59:	6a 34                	push   $0x34
515a5b:	6a 00                	push   $0x0
515a5d:	53                   	push   %ebx
515a5e:	e8 9d df 0c 00       	call   0x5e3a00
515a63:	83 c8 ff             	or     $0xffffffff,%eax
515a66:	c6 03 3b             	movb   $0x3b,(%ebx)
515a69:	83 c4 0c             	add    $0xc,%esp
515a6c:	66 89 43 22          	mov    %ax,0x22(%ebx)
515a70:	85 ff                	test   %edi,%edi
515a72:	75 0c                	jne    0x515a80
515a74:	81 4b 04 00 04 80 20 	orl    $0x20800400,0x4(%ebx)
515a7b:	89 7b 08             	mov    %edi,0x8(%ebx)
515a7e:	eb 1e                	jmp    0x515a9e
515a80:	8d 43 34             	lea    0x34(%ebx),%eax
515a83:	89 43 08             	mov    %eax,0x8(%ebx)
515a86:	85 f6                	test   %esi,%esi
515a88:	74 0d                	je     0x515a97
515a8a:	56                   	push   %esi
515a8b:	ff 75 08             	push   0x8(%ebp)
515a8e:	50                   	push   %eax
515a8f:	e8 6c d4 0c 00       	call   0x5e2f00