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
515a94:	83 c4 0c             	add    $0xc,%esp
515a97:	8b 43 08             	mov    0x8(%ebx),%eax
515a9a:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
515a9e:	c7 43 18 01 00 00 00 	movl   $0x1,0x18(%ebx)
515aa5:	33 c0                	xor    %eax,%eax
515aa7:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
515aab:	89 45 c4             	mov    %eax,-0x3c(%ebp)
515aae:	74 0c                	je     0x515abc
515ab0:	8b 45 f0             	mov    -0x10(%ebp),%eax
515ab3:	83 38 01             	cmpl   $0x1,(%eax)
515ab6:	0f 8e 63 01 00 00    	jle    0x515c1f
515abc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
515abf:	85 c0                	test   %eax,%eax
515ac1:	75 04                	jne    0x515ac7
515ac3:	33 f6                	xor    %esi,%esi
515ac5:	eb 18                	jmp    0x515adf
515ac7:	8b f0                	mov    %eax,%esi
515ac9:	8d 4e 01             	lea    0x1(%esi),%ecx
515acc:	0f 1f 40 00          	nopl   0x0(%eax)
515ad0:	8a 06                	mov    (%esi),%al
515ad2:	46                   	inc    %esi
515ad3:	84 c0                	test   %al,%al
515ad5:	75 f9                	jne    0x515ad0
515ad7:	2b f1                	sub    %ecx,%esi
515ad9:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
515adf:	8d 46 35             	lea    0x35(%esi),%eax
515ae2:	6a 00                	push   $0x0
515ae4:	50                   	push   %eax
515ae5:	ff 75 f4             	push   -0xc(%ebp)
515ae8:	e8 f3 b8 00 00       	call   0x5213e0
515aed:	8b f8                	mov    %eax,%edi
515aef:	83 c4 0c             	add    $0xc,%esp
515af2:	85 ff                	test   %edi,%edi
515af4:	74 4f                	je     0x515b45
515af6:	6a 34                	push   $0x34
515af8:	6a 00                	push   $0x0
515afa:	57                   	push   %edi
515afb:	e8 00 df 0c 00       	call   0x5e3a00
515b00:	83 c8 ff             	or     $0xffffffff,%eax
515b03:	c6 07 3b             	movb   $0x3b,(%edi)
515b06:	66 89 47 22          	mov    %ax,0x22(%edi)
515b0a:	83 c4 0c             	add    $0xc,%esp
515b0d:	8d 46 01             	lea    0x1(%esi),%eax
515b10:	85 c0                	test   %eax,%eax
515b12:	75 0c                	jne    0x515b20
515b14:	81 4f 04 00 04 80 20 	orl    $0x20800400,0x4(%edi)
515b1b:	89 47 08             	mov    %eax,0x8(%edi)
515b1e:	eb 1e                	jmp    0x515b3e
515b20:	8d 47 34             	lea    0x34(%edi),%eax
515b23:	89 47 08             	mov    %eax,0x8(%edi)
515b26:	85 f6                	test   %esi,%esi
515b28:	74 0d                	je     0x515b37
515b2a:	56                   	push   %esi
515b2b:	ff 75 e4             	push   -0x1c(%ebp)
515b2e:	50                   	push   %eax
515b2f:	e8 cc d3 0c 00       	call   0x5e2f00
515b34:	83 c4 0c             	add    $0xc,%esp
515b37:	8b 47 08             	mov    0x8(%edi),%eax
515b3a:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
515b3e:	c7 47 18 01 00 00 00 	movl   $0x1,0x18(%edi)
515b45:	53                   	push   %ebx
515b46:	57                   	push   %edi
515b47:	68 8b 00 00 00       	push   $0x8b
515b4c:	ff 75 f8             	push   -0x8(%ebp)
515b4f:	e8 bc c4 01 00       	call   0x532010
515b54:	8b d8                	mov    %eax,%ebx
515b56:	83 c4 10             	add    $0x10,%esp
515b59:	8b 45 e0             	mov    -0x20(%ebp),%eax
515b5c:	85 c0                	test   %eax,%eax
515b5e:	0f 84 95 00 00 00    	je     0x515bf9
515b64:	8b f0                	mov    %eax,%esi
515b66:	8d 4e 01             	lea    0x1(%esi),%ecx
515b69:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
515b70:	8a 06                	mov    (%esi),%al
515b72:	46                   	inc    %esi
515b73:	84 c0                	test   %al,%al
515b75:	75 f9                	jne    0x515b70
515b77:	2b f1                	sub    %ecx,%esi
515b79:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
515b7f:	6a 00                	push   $0x0
515b81:	8d 46 35             	lea    0x35(%esi),%eax
515b84:	50                   	push   %eax
515b85:	ff 75 f4             	push   -0xc(%ebp)
515b88:	e8 53 b8 00 00       	call   0x5213e0
515b8d:	8b f8                	mov    %eax,%edi
515b8f:	83 c4 0c             	add    $0xc,%esp
515b92:	85 ff                	test   %edi,%edi
515b94:	74 4f                	je     0x515be5
515b96:	6a 34                	push   $0x34
515b98:	6a 00                	push   $0x0
515b9a:	57                   	push   %edi
515b9b:	e8 60 de 0c 00       	call   0x5e3a00
515ba0:	83 c8 ff             	or     $0xffffffff,%eax
515ba3:	c6 07 3b             	movb   $0x3b,(%edi)
515ba6:	66 89 47 22          	mov    %ax,0x22(%edi)
515baa:	83 c4 0c             	add    $0xc,%esp
515bad:	8d 46 01             	lea    0x1(%esi),%eax
515bb0:	85 c0                	test   %eax,%eax
515bb2:	75 0c                	jne    0x515bc0
515bb4:	81 4f 04 00 04 80 20 	orl    $0x20800400,0x4(%edi)
515bbb:	89 47 08             	mov    %eax,0x8(%edi)
515bbe:	eb 1e                	jmp    0x515bde
515bc0:	8d 47 34             	lea    0x34(%edi),%eax
515bc3:	89 47 08             	mov    %eax,0x8(%edi)
515bc6:	85 f6                	test   %esi,%esi
515bc8:	74 0d                	je     0x515bd7
515bca:	56                   	push   %esi
515bcb:	ff 75 e0             	push   -0x20(%ebp)
515bce:	50                   	push   %eax
515bcf:	e8 2c d3 0c 00       	call   0x5e2f00
515bd4:	83 c4 0c             	add    $0xc,%esp
515bd7:	8b 47 08             	mov    0x8(%edi),%eax
515bda:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
515bde:	c7 47 18 01 00 00 00 	movl   $0x1,0x18(%edi)
515be5:	53                   	push   %ebx
515be6:	57                   	push   %edi
515be7:	68 8b 00 00 00       	push   $0x8b
515bec:	ff 75 f8             	push   -0x8(%ebp)
515bef:	e8 1c c4 01 00       	call   0x532010
515bf4:	83 c4 10             	add    $0x10,%esp
515bf7:	8b d8                	mov    %eax,%ebx
515bf9:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
515bfd:	75 20                	jne    0x515c1f
515bff:	ff 75 08             	push   0x8(%ebp)
515c02:	ff 75 e4             	push   -0x1c(%ebp)
515c05:	68 24 9d 6b 00       	push   $0x6b9d24
515c0a:	ff 75 f4             	push   -0xc(%ebp)
515c0d:	e8 2e b3 01 00       	call   0x530f40
515c12:	8b f8                	mov    %eax,%edi
515c14:	83 c4 10             	add    $0x10,%esp
515c17:	89 7d 08             	mov    %edi,0x8(%ebp)
515c1a:	89 7d c4             	mov    %edi,-0x3c(%ebp)
515c1d:	eb 03                	jmp    0x515c22
515c1f:	8b 7d 08             	mov    0x8(%ebp),%edi
515c22:	8b 45 e8             	mov    -0x18(%ebp),%eax
515c25:	53                   	push   %ebx
515c26:	50                   	push   %eax
515c27:	ff 75 f8             	push   -0x8(%ebp)
515c2a:	e8 51 19 01 00       	call   0x527580
515c2f:	83 c4 0c             	add    $0xc,%esp
515c32:	89 7d a0             	mov    %edi,-0x60(%ebp)
515c35:	8b d0                	mov    %eax,%edx
515c37:	89 55 e8             	mov    %edx,-0x18(%ebp)
515c3a:	85 ff                	test   %edi,%edi
515c3c:	75 04                	jne    0x515c42
515c3e:	33 f6                	xor    %esi,%esi
515c40:	eb 14                	jmp    0x515c56
515c42:	8b f7                	mov    %edi,%esi
515c44:	8d 4e 01             	lea    0x1(%esi),%ecx
515c47:	8a 06                	mov    (%esi),%al
515c49:	46                   	inc    %esi
515c4a:	84 c0                	test   %al,%al
515c4c:	75 f9                	jne    0x515c47
515c4e:	2b f1                	sub    %ecx,%esi
515c50:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
515c56:	89 75 a4             	mov    %esi,-0x5c(%ebp)
515c59:	85 d2                	test   %edx,%edx
515c5b:	0f 84 56 01 00 00    	je     0x515db7
515c61:	8b 02                	mov    (%edx),%eax
515c63:	33 c9                	xor    %ecx,%ecx
515c65:	8d 04 80             	lea    (%eax,%eax,4),%eax
515c68:	8d 1c 82             	lea    (%edx,%eax,4),%ebx
515c6b:	85 ff                	test   %edi,%edi
515c6d:	74 2d                	je     0x515c9c
515c6f:	8b c6                	mov    %esi,%eax
515c71:	83 c0 01             	add    $0x1,%eax
515c74:	13 c9                	adc    %ecx,%ecx
515c76:	51                   	push   %ecx
515c77:	50                   	push   %eax
515c78:	8b 45 f8             	mov    -0x8(%ebp),%eax
515c7b:	ff 30                	push   (%eax)
515c7d:	e8 5e b7 00 00       	call   0x5213e0
515c82:	8b f8                	mov    %eax,%edi
515c84:	83 c4 0c             	add    $0xc,%esp
515c87:	85 ff                	test   %edi,%edi