525a42:	83 c6 04             	add    $0x4,%esi
525a45:	83 f8 20             	cmp    $0x20,%eax
525a48:	7d 26                	jge    0x525a70
525a4a:	ff 36                	push   (%esi)
525a4c:	e8 0f 19 00 00       	call   0x527360
525a51:	83 c4 04             	add    $0x4,%esp
525a54:	85 c0                	test   %eax,%eax
525a56:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
525a5c:	74 0f                	je     0x525a6d
525a5e:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
525a64:	0f ab c1             	bts    %eax,%ecx
525a67:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
525a6d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
525a70:	f6 47 04 20          	testb  $0x20,0x4(%edi)
525a74:	74 23                	je     0x525a99
525a76:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%ebp)
525a7d:	75 1a                	jne    0x525a99
525a7f:	ff 36                	push   (%esi)
525a81:	53                   	push   %ebx
525a82:	e8 59 08 00 00       	call   0x5262e0
525a87:	8b 4d 88             	mov    -0x78(%ebp),%ecx
525a8a:	83 c4 08             	add    $0x8,%esp
525a8d:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
525a93:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
525a99:	40                   	inc    %eax
525a9a:	83 c6 14             	add    $0x14,%esi
525a9d:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
525aa3:	3b c1                	cmp    %ecx,%eax
525aa5:	7c 9e                	jl     0x525a45
525aa7:	8b 7d 90             	mov    -0x70(%ebp),%edi
525aaa:	8b 75 84             	mov    -0x7c(%ebp),%esi
525aad:	8b 95 74 ff ff ff    	mov    -0x8c(%ebp),%edx
525ab3:	85 d2                	test   %edx,%edx
525ab5:	74 76                	je     0x525b2d
525ab7:	83 bd 78 ff ff ff 00 	cmpl   $0x0,-0x88(%ebp)
525abe:	74 13                	je     0x525ad3
525ac0:	8b 43 2c             	mov    0x2c(%ebx),%eax
525ac3:	8d 50 01             	lea    0x1(%eax),%edx
525ac6:	03 c1                	add    %ecx,%eax
525ac8:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
525ace:	89 43 2c             	mov    %eax,0x2c(%ebx)
525ad1:	eb 12                	jmp    0x525ae5
525ad3:	51                   	push   %ecx
525ad4:	53                   	push   %ebx
525ad5:	e8 46 74 00 00       	call   0x52cf20
525ada:	83 c4 08             	add    $0x8,%esp
525add:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
525ae3:	8b d0                	mov    %eax,%edx
525ae5:	8b 45 8c             	mov    -0x74(%ebp),%eax
525ae8:	f6 40 04 c0          	testb  $0xc0,0x4(%eax)
525aec:	74 23                	je     0x525b11
525aee:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
525af4:	8b 49 04             	mov    0x4(%ecx),%ecx
525af7:	89 4d 90             	mov    %ecx,-0x70(%ebp)
525afa:	8a 09                	mov    (%ecx),%cl
525afc:	80 f9 a4             	cmp    $0xa4,%cl
525aff:	74 05                	je     0x525b06
525b01:	80 f9 a6             	cmp    $0xa6,%cl
525b04:	75 0b                	jne    0x525b11
525b06:	8a 40 04             	mov    0x4(%eax),%al
525b09:	8b 4d 90             	mov    -0x70(%ebp),%ecx
525b0c:	24 c0                	and    $0xc0,%al
525b0e:	88 41 02             	mov    %al,0x2(%ecx)
525b11:	6a 03                	push   $0x3
525b13:	6a 00                	push   $0x0
525b15:	52                   	push   %edx
525b16:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
525b1c:	53                   	push   %ebx
525b1d:	e8 ae e1 ff ff       	call   0x523cd0
525b22:	8b 95 74 ff ff ff    	mov    -0x8c(%ebp),%edx
525b28:	83 c4 14             	add    $0x14,%esp
525b2b:	eb 0a                	jmp    0x525b37
525b2d:	c7 85 7c ff ff ff 00 	movl   $0x0,-0x84(%ebp)
525b34:	00 00 00
525b37:	8b 45 88             	mov    -0x78(%ebp),%eax
525b3a:	83 f8 02             	cmp    $0x2,%eax
525b3d:	7c 1d                	jl     0x525b5c
525b3f:	f6 47 04 80          	testb  $0x80,0x4(%edi)
525b43:	74 17                	je     0x525b5c
525b45:	ff 72 18             	push   0x18(%edx)
525b48:	50                   	push   %eax
525b49:	ff 75 8c             	push   -0x74(%ebp)
525b4c:	ff 75 80             	push   -0x80(%ebp)
525b4f:	e8 ec 8d 02 00       	call   0x54e940
525b54:	83 c4 10             	add    $0x10,%esp
525b57:	89 45 8c             	mov    %eax,-0x74(%ebp)
525b5a:	eb 0c                	jmp    0x525b68
525b5c:	85 c0                	test   %eax,%eax
525b5e:	7e 05                	jle    0x525b65
525b60:	ff 72 04             	push   0x4(%edx)
525b63:	eb e3                	jmp    0x525b48
525b65:	8b 45 8c             	mov    -0x74(%ebp),%eax
525b68:	f6 40 04 20          	testb  $0x20,0x4(%eax)
525b6c:	74 24                	je     0x525b92
525b6e:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
525b74:	85 c0                	test   %eax,%eax
525b76:	75 06                	jne    0x525b7e
525b78:	8b 45 80             	mov    -0x80(%ebp),%eax
525b7b:	8b 40 08             	mov    0x8(%eax),%eax
525b7e:	6a fe                	push   $0xfffffffe
525b80:	50                   	push   %eax
525b81:	6a 00                	push   $0x0
525b83:	6a 00                	push   $0x0
525b85:	6a 00                	push   $0x0
525b87:	6a 51                	push   $0x51
525b89:	56                   	push   %esi
525b8a:	e8 01 c0 01 00       	call   0x541b90
525b8f:	83 c4 1c             	add    $0x1c,%esp
525b92:	0f b6 47 02          	movzbl 0x2(%edi),%eax
525b96:	8b 7d 88             	mov    -0x78(%ebp),%edi
525b99:	8b 75 10             	mov    0x10(%ebp),%esi
525b9c:	50                   	push   %eax
525b9d:	ff 75 8c             	push   -0x74(%ebp)
525ba0:	57                   	push   %edi
525ba1:	56                   	push   %esi
525ba2:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
525ba8:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
525bae:	53                   	push   %ebx
525baf:	e8 cc bd 01 00       	call   0x541980
525bb4:	83 c4 1c             	add    $0x1c,%esp
525bb7:	85 ff                	test   %edi,%edi
525bb9:	74 19                	je     0x525bd4
525bbb:	83 bd 78 ff ff ff 00 	cmpl   $0x0,-0x88(%ebp)
525bc2:	75 10                	jne    0x525bd4
525bc4:	57                   	push   %edi
525bc5:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
525bcb:	53                   	push   %ebx
525bcc:	e8 7f 21 01 00       	call   0x537d50
525bd1:	83 c4 0c             	add    $0xc,%esp
525bd4:	5f                   	pop    %edi
525bd5:	8b c6                	mov    %esi,%eax
525bd7:	5e                   	pop    %esi
525bd8:	5b                   	pop    %ebx
525bd9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525bdc:	33 cd                	xor    %ebp,%ecx
525bde:	e8 f7 b8 0b 00       	call   0x5e14da
525be3:	8b e5                	mov    %ebp,%esp
525be5:	5d                   	pop    %ebp
525be6:	c3                   	ret
525be7:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
525bed:	68 64 92 6b 00       	push   $0x6b9264
525bf2:	53                   	push   %ebx
525bf3:	e8 68 d6 ff ff       	call   0x523260
525bf8:	8b 45 10             	mov    0x10(%ebp),%eax
525bfb:	83 c4 0c             	add    $0xc,%esp
525bfe:	5f                   	pop    %edi
525bff:	5e                   	pop    %esi
525c00:	5b                   	pop    %ebx
525c01:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525c04:	33 cd                	xor    %ebp,%ecx
525c06:	e8 cf b8 0b 00       	call   0x5e14da
525c0b:	8b e5                	mov    %ebp,%esp
525c0d:	5d                   	pop    %ebp
525c0e:	c3                   	ret
525c0f:	81 fa 88 00 00 00    	cmp    $0x88,%edx
525c15:	75 2d                	jne    0x525c44
525c17:	8b 47 14             	mov    0x14(%edi),%eax
525c1a:	8b 40 1c             	mov    0x1c(%eax),%eax
525c1d:	8b 00                	mov    (%eax),%eax
525c1f:	83 f8 01             	cmp    $0x1,%eax
525c22:	74 20                	je     0x525c44
525c24:	6a 01                	push   $0x1
525c26:	50                   	push   %eax
525c27:	53                   	push   %ebx
525c28:	e8 e3 80 01 00       	call   0x53dd10
525c2d:	8b 45 10             	mov    0x10(%ebp),%eax
525c30:	83 c4 0c             	add    $0xc,%esp
525c33:	5f                   	pop    %edi
525c34:	5e                   	pop    %esi
525c35:	5b                   	pop    %ebx
525c36:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525c39:	33 cd                	xor    %ebp,%ecx
525c3b:	e8 9a b8 0b 00       	call   0x5e14da
525c40:	8b e5                	mov    %ebp,%esp
525c42:	5d                   	pop    %ebp
525c43:	c3                   	ret
525c44:	57                   	push   %edi
525c45:	53                   	push   %ebx
525c46:	e8 e5 92 ff ff       	call   0x51ef30
525c4b:	83 c4 08             	add    $0x8,%esp
525c4e:	5f                   	pop    %edi
525c4f:	5e                   	pop    %esi
525c50:	5b                   	pop    %ebx
525c51:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525c54:	33 cd                	xor    %ebp,%ecx
525c56:	e8 7f b8 0b 00       	call   0x5e14da
525c5b:	8b e5                	mov    %ebp,%esp
525c5d:	5d                   	pop    %ebp
525c5e:	c3                   	ret
525c5f:	8b 47 0c             	mov    0xc(%edi),%eax
525c62:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
525c66:	75 10                	jne    0x525c78
525c68:	50                   	push   %eax
525c69:	53                   	push   %ebx
525c6a:	e8 c1 92 ff ff       	call   0x51ef30
525c6f:	8b 4f 0c             	mov    0xc(%edi),%ecx
525c72:	83 c4 08             	add    $0x8,%esp
525c75:	89 41 1c             	mov    %eax,0x1c(%ecx)
525c78:	8b 57 1c             	mov    0x1c(%edi),%edx
525c7b:	85 d2                	test   %edx,%edx
525c7d:	74 1f                	je     0x525c9e
525c7f:	ff 77 0c             	push   0xc(%edi)
525c82:	e8 c9 21 00 00       	call   0x527e50
525c87:	83 c4 04             	add    $0x4,%esp
525c8a:	3b d0                	cmp    %eax,%edx
525c8c:	74 10                	je     0x525c9e
525c8e:	50                   	push   %eax
525c8f:	52                   	push   %edx
525c90:	68 dc 90 6b 00       	push   $0x6b90dc
525c95:	53                   	push   %ebx
525c96:	e8 c5 d5 ff ff       	call   0x523260
525c9b:	83 c4 10             	add    $0x10,%esp
525c9e:	0f bf 47 20          	movswl 0x20(%edi),%eax
525ca2:	8b 4f 0c             	mov    0xc(%edi),%ecx
525ca5:	5f                   	pop    %edi
525ca6:	5e                   	pop    %esi
525ca7:	5b                   	pop    %ebx
525ca8:	03 41 1c             	add    0x1c(%ecx),%eax
525cab:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525cae:	33 cd                	xor    %ebp,%ecx
525cb0:	e8 25 b8 0b 00       	call   0x5e14da
525cb5:	8b e5                	mov    %ebp,%esp
525cb7:	5d                   	pop    %ebp
525cb8:	c3                   	ret
525cb9:	8b 73 38             	mov    0x38(%ebx),%esi
525cbc:	ff 75 10             	push   0x10(%ebp)
525cbf:	4e                   	dec    %esi
525cc0:	6a 00                	push   $0x0
525cc2:	6a 48                	push   $0x48
525cc4:	ff 75 84             	push   -0x7c(%ebp)
525cc7:	8d 7e ff             	lea    -0x1(%esi),%edi
525cca:	89 7b 38             	mov    %edi,0x38(%ebx)
525ccd:	e8 0e be 01 00       	call   0x541ae0
525cd2:	57                   	push   %edi
525cd3:	56                   	push   %esi
525cd4:	ff 75 90             	push   -0x70(%ebp)
525cd7:	53                   	push   %ebx
525cd8:	e8 33 e5 ff ff       	call   0x524210
525cdd:	8b 5d 10             	mov    0x10(%ebp),%ebx
525ce0:	53                   	push   %ebx
525ce1:	6a 01                	push   $0x1
525ce3:	6a 45                	push   $0x45
525ce5:	ff 75 84             	push   -0x7c(%ebp)
525ce8:	e8 f3 bd 01 00       	call   0x541ae0
525ced:	56                   	push   %esi
525cee:	8b 75 84             	mov    -0x7c(%ebp),%esi
525cf1:	56                   	push   %esi
525cf2:	e8 d9 6f 02 00       	call   0x54ccd0
525cf7:	6a 00                	push   $0x0
525cf9:	53                   	push   %ebx
525cfa:	6a 52                	push   $0x52
525cfc:	56                   	push   %esi
525cfd:	e8 de bd 01 00       	call   0x541ae0
525d02:	83 c4 48             	add    $0x48,%esp
525d05:	57                   	push   %edi
525d06:	56                   	push   %esi
525d07:	e8 c4 6f 02 00       	call   0x54ccd0
525d0c:	83 c4 08             	add    $0x8,%esp
525d0f:	8b c3                	mov    %ebx,%eax
525d11:	5f                   	pop    %edi
525d12:	5e                   	pop    %esi
525d13:	5b                   	pop    %ebx
525d14:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525d17:	33 cd                	xor    %ebp,%ecx
525d19:	e8 bc b7 0b 00       	call   0x5e14da
525d1e:	8b e5                	mov    %ebp,%esp
525d20:	5d                   	pop    %ebp
525d21:	c3                   	ret
525d22:	8b 75 10             	mov    0x10(%ebp),%esi
525d25:	6a 00                	push   $0x0
525d27:	6a 00                	push   $0x0
525d29:	56                   	push   %esi
525d2a:	57                   	push   %edi
525d2b:	53                   	push   %ebx
525d2c:	e8 5f a5 fd ff       	call   0x500290
525d31:	83 c4 14             	add    $0x14,%esp
525d34:	8b c6                	mov    %esi,%eax
525d36:	5f                   	pop    %edi
525d37:	5e                   	pop    %esi
525d38:	5b                   	pop    %ebx
525d39:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525d3c:	33 cd                	xor    %ebp,%ecx
525d3e:	e8 97 b7 0b 00       	call   0x5e14da
525d43:	8b e5                	mov    %ebp,%esp
525d45:	5d                   	pop    %ebp
525d46:	c3                   	ret
525d47:	0f bf 47 20          	movswl 0x20(%edi),%eax
525d4b:	8b 5d 10             	mov    0x10(%ebp),%ebx
525d4e:	8b 4f 2c             	mov    0x2c(%edi),%ecx
525d51:	53                   	push   %ebx
525d52:	50                   	push   %eax
525d53:	51                   	push   %ecx
525d54:	89 4d 90             	mov    %ecx,-0x70(%ebp)
525d57:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
525d5d:	e8 ee 80 01 00       	call   0x53de50
525d62:	0f bf c8             	movswl %ax,%ecx
525d65:	83 c4 08             	add    $0x8,%esp
525d68:	8b 45 90             	mov    -0x70(%ebp),%eax
525d6b:	41                   	inc    %ecx
525d6c:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
525d70:	40                   	inc    %eax
525d71:	0f af 47 1c          	imul   0x1c(%edi),%eax
525d75:	03 c1                	add    %ecx,%eax
525d77:	50                   	push   %eax
525d78:	68 94 00 00 00       	push   $0x94
525d7d:	56                   	push   %esi
525d7e:	e8 5d bd 01 00       	call   0x541ae0
525d83:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
525d89:	83 c4 10             	add    $0x10,%esp
525d8c:	85 c0                	test   %eax,%eax
525d8e:	0f 88 ea 02 00 00    	js     0x52607e
525d94:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
525d97:	8b 45 90             	mov    -0x70(%ebp),%eax
525d9a:	8b 40 04             	mov    0x4(%eax),%eax
525d9d:	80 7c 88 0d 45       	cmpb   $0x45,0xd(%eax,%ecx,4)
525da2:	0f 85 d6 02 00 00    	jne    0x52607e
525da8:	53                   	push   %ebx
525da9:	6a 53                	push   $0x53
525dab:	56                   	push   %esi
525dac:	e8 cf bc 01 00       	call   0x541a80
525db1:	83 c4 0c             	add    $0xc,%esp
525db4:	8b c3                	mov    %ebx,%eax
525db6:	5f                   	pop    %edi
525db7:	5e                   	pop    %esi
525db8:	5b                   	pop    %ebx
525db9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525dbc:	33 cd                	xor    %ebp,%ecx
525dbe:	e8 17 b7 0b 00       	call   0x5e14da
525dc3:	8b e5                	mov    %ebp,%esp
525dc5:	5d                   	pop    %ebp
525dc6:	c3                   	ret
525dc7:	68 78 8c 6b 00       	push   $0x6b8c78
525dcc:	53                   	push   %ebx
525dcd:	e8 8e d4 ff ff       	call   0x523260
525dd2:	8b 45 10             	mov    0x10(%ebp),%eax
525dd5:	83 c4 08             	add    $0x8,%esp
525dd8:	5f                   	pop    %edi
525dd9:	5e                   	pop    %esi
525dda:	5b                   	pop    %ebx
525ddb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525dde:	33 cd                	xor    %ebp,%ecx
525de0:	e8 f5 b6 0b 00       	call   0x5e14da
525de5:	8b e5                	mov    %ebp,%esp
525de7:	5d                   	pop    %ebp
525de8:	c3                   	ret
525de9:	ff 77 1c             	push   0x1c(%edi)
525dec:	8a 5b 17             	mov    0x17(%ebx),%bl
525def:	6a 15                	push   $0x15
525df1:	56                   	push   %esi
525df2:	e8 89 bc 01 00       	call   0x541a80